Best Practices for Software Development Projects
Computerworld -
Most software projects fail. In fact, The Standish Group International Inc. reports that more than 80% are unsuccessful -- either because they are over budget, late, missing functions or a combination of all three.
Moreover, 30% of software projects are so poorly executed that they are canceled before completion. In my experience, software projects using modern technologies such as Java, Java 2 Enterprise Edition (J2EE), XML and Web services are no exception to this rule.
However, there is help out there. To vastly improve the success of any software development project, it's helpful to follow these 10 simple guidelines:
- Recruit skilled and experienced people. Today's environment is more complex that ever. Tools help, but in the end, inexperienced people produce mediocre results at best and, in most cases, fail because they don't understand good project management and the best ways to apply new technologies. An excellent project manager and architect or technical lead will provide joint leadership of the project. They set the tone and have a vast impact on its ultimate success.
- Use "leading-edge," not "bleeding-edge," technology. Many Fortune 500 companies have successfully used mature technologies, such as J2EE, for software projects that have had huge effects on the way they do business. In some cases, it's necessary to apply a bleeding-edge technology that helps gain a distinct advantage over the competition. However, there are risks with such a strategy, and in this case, it's even more important to have excellent people on the project. Because there are few people with this kind of experience, it's important to get outside help.
- Use the appropriate development process. The nature of modern software projects demands a spiral-based development process. A spiral process has multiple phases that successively decrease the project risk. At the end of each phase is a go or no-go decision. In the early phases, prototyping is used to explore new technologies for the team or a user interface.
- Provide the right tools. A software project needs the appropriate tools that provide productivity aids for the team. Tools include the right hardware as well as design, programming and test productivity aids. The cost justification of these tools is relatively easy. Training in the new tools or techniques is also essential to ensure that they are used to their full advantage.
- Use source-control management. Use a source-control management (SCM) system when the project begins. All documents, not just source code, should be under the version control of the SCM system. This allows the team to go back and view the history of the project and to retain copies of previous versions of all project-related documents such as use cases, architecture and design documents, and test scripts and plans.
![]() | |
| Mike Perks is a software architect for the IBM WebSphere team in Austin. Outside of delivering customer projects, his special interests include development methodologies, aspect-oriented software development, the Unified Modeling Language and model-driven architecture. His e-mail address is mperks@us.ibm.com. |
Development
Additional Resources



Learn the important issues you must consider before starting your next mobility initiative. Get your mobility white paper from IDC now, compliments of Sybase.
White Papers & Webcasts
Extend, Replace, or Convert; which is the best way forward for COBOL Applications?
Download this white paper, free, compliments of Micro Focus!
Southern Company
Download Now
Extending Client Refresh - 11 Steps to Maximize Savings
Register Now!
Defending Against the Storm
Download Now
Lower the Cost and Complexity of a Mobile Workforce through Automation
Download This Resource Now!
Share our Strength
Download Now
Managing Mobility: Improve Data Security, Compliance and Manageability
Download This Resource Now!
Consolidate Your Servers and Storage to Lower Costs with Oracle Database 11g
Register for this webcast!

