This white paper describes five practical steps that you can take to make your development process more predictable and reliable. By following his five steps, Paul maintains that you can build better software more quickly with less cost and less risk.
SOFTWARE DEVELOPMENT
SURVIVAL GUIDE
Five Steps from Chaos to Control
By Paul Conte Picante SoftwareSOFTWARE DEVELOPMENT SURVIVAL GUIDE Five Steps from Chaos to Controlby Paul ContePicante Software
CONTENTS
Introduction .......................................................................................2
How Well are You Doing?.............................................................2
Software Management Goals
Reducing Risk
Continuous Process Improvement
Software Management Checklist.................................................6
Five Steps from Chaos to Control ..............................................8
Step 1: Make the Case
Step 2: Adopt a Change Management Process
Step 3: Adopt a QA Process
Step 4: Adopt an Incremental and IterativeDevelopment Process
Step 5: Continually Assess and Refine Processes
Summary .........................................................................................12
Appendix A: Where to Learn More..........................................13
Figure 1: Software Development Process ..............................3Maturity Levels
Figure 2: Software Management Core Areas .........................7
1SOFTWARE DEVELOPMENT SURVIVAL GUIDEFive Steps from Chaos to Control by Paul Conte Picante Software
INTRODUCTION espite advances in information technology - or perhaps Dbecause of them - software development remains achallenging and often unpredictable process. Even talenteddevelopment groups all too frequently embark on maintenance ornew development projects as "one-of-a-kind" endeavors withoutcomes that are hard to foresee. As a result, projects - whethermaintenance or new development - often take too long, cost toomuch, don't deliver what the user wants, and result in systems thatare expensive to support and maintain. Of course, different groupsapproach software development in different ways and their projectoutcomes vary. For some development groups, chaos characterizesmost projects, while other development groups maintain effectivecontrol over the process. This paper provides a concise guide toassess how you're doing and explains five basic steps to gain bettercontrol over your software projects.
HOW WELL ARE YOU DOING? he software development process has been extensively studiedTfor decades. This research has produced a widely acceptedmodel you can use to assess how your own organization is doing.Figure 1 summarizes the "Capability Maturity Model" (CMM)developed by the federally funded Software Engineering Institute(www.sei.cmu.edu). Organizations operating at Level 1 suffermany of the problems caused by poorly defined processes. At thislevel, life is chaotic for developers, IT managers, and the rest ofthe organization that depends on IT.As an organization improves its development process andmoves to higher maturity levels, projects become more predictableand successful. As a rule of thumb, the steps to reach Level 3(Defined) are significantly easier to implement than thoserequired to reach Levels 4 and 5. Level 3 is a suitable target formost in-house development groups and is the focus of this paper.Figure 1 lists some of the key practices for Levels 2 and 3. If yourdevelopment process doesn't incorporate most of the listed items,you probably have a great opportunity to improve the process andgain more control over your projects.Levels 4 and 5 could be dubbed the "empirical" and "closingthe loop" levels because they include quantifying results andproactively changing the process to reduce variability and
2SOFTWARE DEVELOPMENT SURVIVAL GUIDE
improve organizational performance on a continuing basis. Theselevels require significant discipline, process automation, andresources. Don't be overwhelmed thinking you have to reacheither of these levels to derive substantial benefits. (On the otherhand, over time you may decide to incorporate some Level 4 and5 practices into your own development process.) The SEI Website explains CMM in more detail and is a good place to continueyour quest for increased control.
FIGURE 1. SOFTWARE DEVELOPMENT PROCESS MATURITY LEVELSFrom the Software Engineering Institute's "Capability Maturity Model" (CMM)
1. Initial. The software process is characterized as ad hoc, andoccasionally even chaotic. Few processes are defined, and successdepends on individua... [download for more]