Which Development Method Is Right for Your Project?

[article]
Summary:

We can debate the pros and cons of one development process over another until we're blue in the face, but the simple fact is that we will never declare a true winner. There simply is no silver bullet development process that will help every development team deliver every product on time and on budget. This article provides a brief overview of three development processes and when they are most appropriate.

Trendy development processes come and go, but the debate over which software development process is “best” never seems to end. At almost any industry conference today, you’re sure to hear someone condemning the waterfall process, proclaiming that design is dead, or wondering if process is even relevant considering today’s compressed project timelines. In my opinion, you can gain a lot more from retiring the “Which development process (if any) is best?” question forever, and replacing it with a slightly different one: “Which development process is best for my project?” 
 
We can debate the pros and cons of one development process over another until we’re blue in the face, but the simple fact is that we will never declare a true winner. Why? Because different processes have different strengths and weaknesses. There is no silver bullet development process that will help every development team deliver every product on time and on budget. Likewise, there is no “good for nothing” development process. Each development process is viable and useful, but each one works better in some situations than it does in others.  
 
Moreover, most companies (in my estimate, about eighty percent of them) do not really have any development process in place—even if they think they do. A development process that’s on paper is not sufficient. For a development process to be useful, it must be implemented and followed on a daily basis. But before you start worrying about which development process is best, you should implement some kind of defined, repeatable process in your organization. One thing is for certain: any development process is better than no development process.  
 
What Process Works Where? 
If you’re working on a somewhat traditional project (for instance, an accounting system) where the features are defined a priori and it’s possible to freeze the specification, the waterfall process is your best bet. The waterfall development process starts with one long design phase that defines the entire project and all of the product’s features; this phase typically includes requirements analysis. Once the design is set in stone, the implementation phase begins. After all features described in the design phase are implemented, they are integrated into a working product. Finally, the product is tested, and then it is shipped to customers. The flow of these phases is represented in Figure 1. 

XDD3152imagelistfilename1.jpg

Figure 1: The waterfall process moves through each phase of development until final release

Pages

About the author

TechWell Contributor's picture TechWell Contributor

The opinions and positions expressed within these guest posts are those of the author alone and do not represent those of the TechWell Community Sites. Guest authors represent that they have the right to distribute this content and that such content is not violating the legal rights of others. If you would like to contribute content to a TechWell Community Site, email editors@techwell.com.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!

Upcoming Events

Oct 12
Oct 15
Nov 09
Nov 09