Академический Документы
Профессиональный Документы
Культура Документы
CCPDS-R, TRW
How Microsoft Builds Software
Different development environments
Software development life cycle
Software project management
techniques
Common Subsystem
Primary missile warning system
Main installation : Cheyenne Mountain
Backup system : Offutt Air Force Base,
Nebraska
48-month software development schedule
355,000 SLOC
Ada : design & implementation language
6 builds were required
Completed successfully, on time within
budget to customer satisfaction
CCPDS-R Acquisition
Concept definition (CD), 12-month
schedule
5 major bidders, 2 contracts awarded
Full-scale development (FSD)
1 contract awarded to TRW
Contract award based on
performance in Software Engineering
Exercise
Vision
Analyze and specify the project requirements
Define and develop the top-level architecture
Plan FSD phase software development
activities
Configure the process and development
environment
Establish trust and win-win relationships
among the stakeholders
Software engineering exercise
IPDR Demonstration
Demonstrate defined capabilities at NORAD
Capabilities well understood by the
customer and TRW
37 evaluation criteria
Results were apt to change requirements,
plans and designs
31 satisfactory, 6 were not met
Required redesign and re-demonstration
Metrics
People factors
Core team concept
Leverage skills of a few experts
across the entire team
Avoid attrition
Profit sharing of award fees
Microsoft Competitive
Strategy
Identify mass markets quickly
Introduce products that are good
enough
Improve products by incrementally
evolving their features
Sell multiple product versions and
upgrades
Sell globally
Product Development
Philosophy
Utilize small parallel teams (3 to 8
developers)
Teams evolve features and products
incrementally
Occasionally introduce new concepts and
technologies
Synchronize changes frequently so product
components work together
Structured hacker-like approach
Synch-and-Stabilize
Continually synchronize what developers
are doing as individuals and team members
Stabilize the product in increments
Daily build
Continual testing
Testers work in parallel with developers (1
to 1)
Fix defect immediately if checked in code
breaks the daily build
Synch-and-Stabilize
Development Approach
Planning Phase
Development Phase
Stabilization Phase
Planning Phase
Vision statement
Product managers define goals for a new
product based on market research
Specification document written up by
Program manager
During development, feature set in
specification document may change by
30% or more
Schedule and feature team formation
Development Phase
Developers design, code, and debug
Testers pair with developers for continuous
testing
3 major milestones
Milestone 1 : first 1/3 of features (most
critical and shared components)
Milestone 2 : second third of features
Milestone 3 : final third of features (least
critical)
Stabilization Phase
Internal testing
External testing (beta sites
and users)
Release preparation
Conclusions
Stakeholders and type of software being
developed effect the software development
life cycle
CCPDS-R - more externally controlled
process
Microsoft market driven internally
controlled process geared towards
customer satisfaction and market share
Both cases illustrate extensive use of
modern software project management
techniques
Both cases show level 3 (defined) of CMM