Selling the agile ideology is quite easy. For in-house development where the supplier is well trusted and the pricing may not be that important factor. But for a consulting company, more work and knowledge regarding the pricing and scoping is needed in agile contracting
You cannot execute a project in an Agile with a traditional contract. “Customer collaboration over contract negotiation” does not mean that agile software development projects do not need contracts. Contracts are vitally important but the whole view to contracting is different, more proactive. Agile practitioners see that collaboration, rather than confrontation, produces better products and more successful, win-win business relationships. This also adds new challenges to contracting and makes usage of the old general contracting terms developed for waterfall development difficult.
Usage of the waterfall-fashioned contracting terms in an agile project can be difficult, but it can also prevent the project from efficiently using the agile practices and both customer and supplier may lose the benefits of agile methodology.
One of the reasons why agile contracting models and contracting terms are falling behind is because customers are used to traditional waterfall contracts and they like the certainty a fixed-everything contract seemingly offers: they pay money and get the software they needed. Luckily, also the customers are waking up to the harsh reality of software development: customers cannot know what they want before they see it, change to the requirements is inevitable, and ultimately the customer is the one that suffers
- Agile contracting models are needed to balance the risks between both parties and give both the incentive to work together towards the success of the joint project. It is time for cooperative contracts instead of confrontational ones.
- In traditional contracts, development needs minimal customer collaboration and only at the requirements elicitation phase and during the acceptance testing at the end of the project. In Agile Customer commitment for involvement should be called out in Contract. Agile development requires an active customer during the whole project. Agile implementations are highly collaborative, and business representatives and developers should work together daily as efficient as possible. In Scrum, the key representative of the customer is called the product owner and he is responsible for communicating the customer needs to the development team and keeping the product backlog in shape during the project. The contract should require that the customer nominates a product owner who will develop, prioritize and maintain the product backlog as well as participate to the required meetings such as sprint planning’s or review meetings. Since the product owner is crucial for the project, the contract should also require that the product owner dedicates a reasonable part of his time to the project and is available to respond the development team’s questions within acceptable time.
- Customer collaboration is crucial, and the customer representative should be “committed, knowledgeable, collaborative, representative, and empowered”. The customer is encouraged to actively participate in the development process by giving them the product right from the beginning of the project and the opportunity to change their mind about it whenever necessary.
To be continued in next article.
Read Part -2 here..
Read Part -3 here..