I’m a big fan of Steve McConnell’s Rapid Development book. Although the title suggests that it covers a new trendy method of software development, in reality it provides plenty of tips and suggestions for any method of development. In the book Steve lists 36 classic mistakes made during software development that will adversely affect the delivery of the project. Often these mistakes are made in an attempt to reduce timescale or bring back the delivery date, but they make matters worse.
I’ve picked from Steve’s list and my own to produce the 36 Common Software Development Mistakes:
People
- Undermined motivation
- Weak personnel
- Uncontrolled problem employees
- Heroics
- Adding people to a project
- Poor office environment
- Relationship between developers and “customers”
- Unrealistic expectations
- Lack of project sponsorship and buy in
- Lack of user input
- Politics over substance
- Wishful thinking and blind optimism
Process
- Over optimistic schedules
- Insufficient risk management
- Third-party failure
- Planning failures
- Wasted time during the “fuzzy” front end
- Skipped or inadequate requirements and design
- Inadequate testing
- Insufficient management controls
- Missing tasks from estimates
- Catch-up later
- Code like hell programming
- Insufficient coding standards and development process documentation
- Insufficient code reviews
- No defect tracking tool
Product
- Requirements gold-plating
- Feature creep
- Developer gold-plating
- Push-me, pull-me negotiation
- Bleeding edge development
Technology
- Silver-bullet syndrome
- Overanticipated savings from new tools
- Switching tool mid project
- Lack of source control
- Lack of automated build process and tool
Over the coming weeks I’ll be looking at each of these in detail.