Title: Project Management effects on software dependability
1Project Management effects on software
dependability
- Brendan Murphy
- Microsoft Research
- Cambridge, UK
2Agenda
- Developing solutions.
- Exploring dependability
- Ignored areas of dependability.
- Program Management of Windows NT (brief overview).
3Achieving highly dependable software programs.
4What went wrong
Not tested in Production environment.
5Apply other engineering disciplines to software
(e.g. trains)!
- Original problem.
- People had there own trains.
- Many different track designs.
- Variations in train design.
- Solution - redefined the problem
- Standardization.
- People training.
- 150 year of trial and error.
- Result a dependable but inflexible process.
Red for danger L.C.Rolt
6Developing dependable systems.
- Solution.
- Develop specialized hardware.
- Write your own OS and applications.
- Employ highly trained users and operators.
- Problems
- Very expensive.
- Difficult to get staff.
- Comparison to commercial products.
7Dependability requirementsbugs/KLOC?
Problem. Dependability needs.
Safety Critical Predictability.
Business Process. Knowledge transfer.
Database development. Data integrity.
New product. Very little.
8Overlooked dependability issuesSystem Recovery
of OpenVMS systems.
9Knowledge affects dependability.OpenVMS
dependability improvement over time.
System Reliability Issues, FTC 1999 Murphy, Davies
10Project Management at Microsoft.
- Ideal
- A standard predictable process producing
dependable and secure software. - Reality
- No ideal process exists.
- Development teams have flexibility in their
development process. - System test and release a separate process.
- Continuous tool development.
- User Interface a separate group.
11Windows NT development.
Legacy applications
New applications
Development Teams (e.g. kernel)
Release Management System Test Development System
Verification
Responsible for Design Implement Testing
New hardware and drivers
Legacy computer
12NT Development
13Summary
- Understand product dependability from the end
user perspective. - Assume you will not reach perfection.
- Understand the preferences/dislikes of the
development team. - Then choose the development and program
management process.