For any significant piece of work, you will have some kind of plan as to how you will deliver the work; and that plan will include some element of each of the following standard steps (plus effort estimates for each):
- Requirements capture
- Design
- Build
- Test
- Deploy
All too often the developers reluctantly agree to do less testing or provide less documentation, but are the developers (or project manager) the right people to make these decisions? In cases where there is no project manager, the sponsor/customer will often leave the decision to the development team.
Any software development team that operates in something better than chaos will have a template for how they go about their work, i.e. they will have a skeleton project plan that:
- itemises the products of the development work, e.g. design specification, unit specifications, build log, code, operations manual, user guide, developer testing report, peer review report, etc
- identifies the benefits of each product and the impact of not producing them
- allows estimation of the relative effort for each task
- can be provided to any project manager (or customer) who commissions some new development work from the development team
So, who should make the decision to reduce or remove development steps from the process? It certainly shouldn't be the developers in isolation. The developers can offer options to the project manager, but they shouldn't make decisions, i.e. they should be consulted, but they should be considered responsible for making the decisions. Perhaps the project manager is sufficiently empowered to make the decision, but if it's going to have a significant impact on what is being delivered, shouldn't the project manager involve the sponsor/customer in the decision-making process? After all, the sponsor/customer is doubtless expecting a system that meets her functional requirements, but she'll also be expecting a system that is reliable, robust and can be used on a day-to-day basis without requiring a huge army of operations and support staff. If the team is not going to deliver what the sponsor/customer expects, the sponsor/customer should be told and should be involved in the decisions about how the circle can be squared: it's the age-old issue of the relationship between scope, cost, time and human resources.
Of course, none of this is possible if the development team don't have a repeatable process that is encapsulated in a skeleton project plan with clear definitions of the products of each step (and their benefits, and impact of losing them). If your team doesn't already work to this level, you should have a good think about how you manage the inevitable trade-offs between scope, cost, time and human resources. Is the right information being given to the right people in order to make the right decisions?