16
Software Development Lifecycle & Release Management Scottie Cheng

Software development lifecycle_release_management

Embed Size (px)

Citation preview

Page 1: Software development lifecycle_release_management

Software Development Lifecycle & Release

Management

Scottie Cheng

Page 2: Software development lifecycle_release_management

Agenda

Experience Product Release Roles in Product Development Software Development Lifecycle

Page 3: Software development lifecycle_release_management

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

Page 4: Software development lifecycle_release_management

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.

Page 5: Software development lifecycle_release_management

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)

Page 6: Software development lifecycle_release_management

Definition

Project management Program management Product management

Page 7: Software development lifecycle_release_management

Software Release

Feature release

Service pack

Hotfix

Hotfix

B4

Service pack

Hotfix

Hotfix

B4

Feature release

Service pack

Hotfix

B4 B4

Hotfix

Service pack

Hotfix

Hotfix

Page 8: Software development lifecycle_release_management

Roles in Product Development

Product

Application Consultant

Corporate Application Engineer

R&D Engineer

QA Engineer

Software Engineeri

ngIntegration

support

Porting platform support

Software development tool

support

Process/Program management

Logistics

Release management

Technical publication

Page 9: Software development lifecycle_release_management

Software Development Lifecycle

Plan

Design

ImplementationTesting

Release

Page 10: Software development lifecycle_release_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

Page 11: Software development lifecycle_release_management

Design (R&D, CAE)

Design the new function to meet the requirement.

Ease of use. Functional specification

Page 12: Software development lifecycle_release_management

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

Page 13: Software development lifecycle_release_management

Testing

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

Automatic/regular Per project (R&D, QA, CAE, AC)

Page 14: Software development lifecycle_release_management

Release

Documentation User Guide Reference Manual Release Note Training materials

User feedback

Page 15: Software development lifecycle_release_management

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

Page 16: Software development lifecycle_release_management

You are developing a PRODUCT,

not writing CODE.