130 likes | 264 Views
Project Management effects on software dependability. Brendan Murphy Microsoft Research Cambridge, UK. Agenda. Developing solutions. Exploring ‘dependability’ Ignored areas of dependability. Program Management of Windows NT (brief overview). Problem. Solution. Business Man.
E N D
Project Management effects on software dependability Brendan Murphy Microsoft Research Cambridge, UK
Agenda • Developing solutions. • Exploring ‘dependability’ • Ignored areas of dependability. • Program Management of Windows NT (brief overview).
Problem Solution Business Man Software Architect Software Users Software Engineers Achieving highly dependable software programs.
Problem definition Understand concepts Exceptions? Knowledge of solution? Clear Responsibilities Ownership? Business Man Software Architect Problem Reduce costs De-skill Software Users Software Engineers Different Environments! System Manager de-motivated. What went wrong Not tested in Production environment.
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. Apply other engineering disciplines to software (e.g. trains)! Red for danger L.C.Rolt
Developing 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.
Single events can Induce periods of System instability. System Reliability Issues, FTC 1999 Murphy, Davies Overlooked dependability issuesSystem Recovery of OpenVMS systems.
Operating System behaviour improves with age? Few new patches are produced 6 months after the release of any version of the Operating System. Knowledge affects dependability.OpenVMS dependability improvement over time. System Reliability Issues, FTC 1999 Murphy, Davies
Project 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.
Software Windows 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
Summary • 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.