In any IT project, the biggest risk is the drift of user requirements. Functional drift, also known as goal drift, is common in most software projects, regardless of domain or methodology. And I doubt that this problem will disappear before long.
The drifting of the objectives has several consequences: budget overrun, delay or cancellation. I remember a recent software development project: the team purchased an industry-grade Agile tool and implemented an SOA solution. It felt like everything was done in the rules of art, in an exemplary way. But that was not the case.
The product manager had never tested his vision on the market. If he and his team had been really “Agile”, they would have created a prototype and tested it with customers right from the start, in the first month of development planning. Instead, the project exceeded its budget and had to be canceled. The cost of recovery was approximately $ 5 million.
At EBG Consulting, we sometimes come across development teams like this one; teams that have been hard at work for a while, but have not stopped to evaluate the progress of the project.
Two years ago, I helped a software services and publishing company set the roadmap for a product. Unfortunately, the company had not updated its plans for two years. But the world and the competition had changed in the meantime.
This company had lost sight of the value of the project, its future prospects and the benefits that the partners could derive from it. Even experienced teams fall into this trap. They do not take the time to re-evaluate their project and must then catch up.
Development by the Agile method is a question of balance.
It is important not to confuse drifting goals and intentional technical debt. Indeed, in the Agile projects, some teams voluntarily resort to “debt” when the placing on the market takes precedence over the quality or completeness of the solution. Developers need to produce something tangible because the competition already has a feature missing from their product.
However, they must not neglect the drifting objectives; it is to avoid it even in case of intentional technical debt. With a strategy in place, such as a timeline for future improvements, the team can move forward with relevant and realistic goals.
Agile development is a balance that must be managed by the champion or the owner of the product (to use the jargon of the Scrum method).
The product owner must build trust within the team (users and operational members) and be honest about the errors and shortcomings of the release, and the time needed to clear the debt. However, if this purge requires too many iterations, it is a sign that the project is taking a bad turn: some practices, such as testing and continuous integration, have been neglected.
In the Agile framework, teamwork is particularly important. Remember my disaster at $ 5 million. In this situation, the product management team has pushed technical debt too far. She transferred this practice to the technology group, transforming the technical staff into order takers.
In this case, we organized a workshop open to all project participants: DSI, product manager, technology group director and users. We showed them what the roadmap looked like and explained the logic behind it.
We examined all the work we had helped them accomplish around the vision and themes of the project. We identified the key actors of the project. The product managers then confessed that they had never worked in this way before. We were simply delighted.
That was precisely what they had to realize. The Agile method involves involving the entire team and treating its members as partners. This is the first step to get rid of the functional drift.