180 likes | 361 Views
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
E N D
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