Software Development Lifecycle & Release Management
180 likes | 384 Vues
Software Development Lifecycle & Release Management. Scottie Cheng. Agenda. Experience Product Release Roles in Product Development Software Development Lifecycle. Army Logistic Command. Logistic information system Information Technology Officer Network management Server management
Software Development Lifecycle & Release Management
E N D
Presentation Transcript
Software Development Lifecycle & Release Management Scottie Cheng
Agenda • Experience • Product Release • Roles in Product Development • Software Development Lifecycle
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
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.
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)
Definition • Project management • Program management • Product management
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
Design (R&D, CAE) • Design the new function to meet the requirement. • Ease of use. • Functional specification
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
Testing Automatic/regular Per project (R&D, QA, CAE, AC) • Regression • Daily • Porting platform • Code quality • Purify/Valgrind • Purecov • Quantify • Coverity • Performance testing • Runtime • Memory • Unit test • Module-level • Command-level • Flow testing • Alpha/Beta testing
Release • Documentation • User Guide • Reference Manual • Release Note • Training materials • User feedback
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 vsone-man team • Communication ability is important. • Prototyping vs completeness