You need your development team to be able to deliver what you need, when you need it, and to be able to respond to changes of all kinds on demand, write Ross Hamilton, director, and Joe Morrison, managing consultant, at Lab49 consultants.
Why do changes of direction have such a huge impact on project delivery times and quality? Why does it sometimes seem like your development teams are not responsive to business needs? Why can't they just get the job done?
Part of the problem is that financial and technology markets are continuously innovating and adapting, meaning that your priorites change constantly. If change is constant, the engineering team needs to be able to respond quickly. But software design influences which types of change are easy and which are not. The engineering team should not make key design decisions behind the scenes without your input.
Software can be built to your exact specifications if that's what you want. But there may be significant benefits if you can engage the technical experts in discussing innovative, alternative ways of approaching business problems. You need to collaborate with the technical team and allow them to understand the nature and dynamics of your business. They can then provide you with their insights into what the core or infrastructural needs should be for the system over time. If you are not available, developers may be forced to make important decisions concerning the scope or prioritisation of features. These may be decisions that they should not be making, but which may be invisible to you.
Iterative development techniques deliver production-quality increments of software on a frequent basis by embracing changes in requirements and priorities, promoting close collaboration, providing continuous feedback and risk management controls, and allowing transparency into the development process.
However, even these techniques need one thing - you. Fundamentally, it is critical for the business stakeholder to be actively and directly engaged in the system development process. In fact, with techniques such as Scrum and XP, the dependency on you actually increases.
But buyer beware. All of this does not mean that you now have a license to get involved in all the details of implementation. A balance needs to be struck between collaborating with your engineering team and intruding in their space. You know your business. Your software team knows technology. You know what you want. Your software team knows how to design and build a quality product. The best results come from keeping these lines clean and leveraging each other's areas of expertise.
Five top tips for being a better IT customer:
- Understand that change is constant
- Be open minded and forward thinking, and actively engage and collaborate with the development team
- Focus on defining and articulating your requirements and priorities
- Let the technical team define how it gets done
- Respect each other and let the results define success