Software development lifecycle_release_management

561 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
561
On SlideShare
0
From Embeds
0
Number of Embeds
66
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Software development lifecycle_release_management

  1. 1. Software Development Lifecycle & Release Management Scottie Cheng
  2. 2. Agenda  Experience  Product Release  Roles in Product Development  Software Development Lifecycle
  3. 3. Army Logistic Command Logistic information system Information Technology Officer  Network management  Server management  Database management  Web development (ASP, Java)  Other skills (making slides, PC maintenance…) One-man development, no process control, no quality control. Contract with SI
  4. 4. Incentia Design Systems EDA software  Logic synthesis  STA  Physical synthesis (placement) R&D engineer, R&D manager  C/C++,  Multi-host, multi-process, multi-thread Coding + unit testing Process: Yes.
  5. 5. Synopsys EDA software  Physical verification Program Manager  Release process  Software quality  Coordination/Communication Big team (100+ R&D/QA) Different location/time zone  Taipei (Taiwan), Shanghai (China), Mountain View (CA), Durham (NC), Bangalore (India)
  6. 6. Definition Project management Program management Product management
  7. 7. Software ReleaseFeature release Feature release Service Service Service Service pack pack pack packHotfix Hotfix Hotfix Hotfix Hotfix Hotfix Hotfix Hotfix B4 B4 B4 B4
  8. 8. Roles in Product Development Software Product Logistics EngineeringApplication Consultant Integration support Release management Corporate Application Porting platform Engineer support Software development R&D Engineer tool support Technical publication Process/Program QA Engineer management
  9. 9. Software DevelopmentLifecycle
  10. 10. Planning (AC, CAE) Understand the issue, and identify the root cause. Users usually do not know what they want. Requirement specification  Input-Process-Output  Acceptance criteria Priority Schedule
  11. 11. Design (R&D, CAE) Design the new function to meet the requirement. Ease of use. Functional specification
  12. 12. Implementation (R&D) Coding best practice  Architecture/Design patterns  Reuse  De-coupling  Coding style  Code comment/documentation Keep in mind  Correctness always comes first.  Efficiency (performance)  Testability  Ease-of-debug
  13. 13. Testing Per projectAutomatic/regular (R&D, QA, CAE, AC) Regression  Daily  Unit test  Porting platform  Module-level Code quality  Purify/Valgrind  Command-level Purecov   Quantify  Flow testing  Coverity  Alpha/Beta testing Performance testing  Runtime  Memory
  14. 14. Release Documentation  User Guide  Reference Manual  Release Note  Training materials User feedback
  15. 15. Suggestions Technical basics  Algorithm, data structure, design pattern, database, network  Language is not the key. Master one or two language is enough. Domain knowledge  Software is nothing but a tool. Team work vs one-man team  Communication ability is important. Prototyping vs completeness
  16. 16. You are developing a PRODUCT, not writing CODE.

×