Key elements of an effective Agile Software Development Contract

Key elements of an effective Agile Software Development Contract

Agile software development methods are now being widely used in the IT sector and they are preferred than traditional waterfall development model. But our traditional IT contracts are primarily designed keeping in mind of waterfall development model. Using such traditional contracts for Agile software development projects can put the project in huge risk, and can lead to a complete failure.?

So, we should draft Agile project specific contract addressing the key issues and operational challenges of Agile software development projects. However, contracting for Agile software development projects remains a challenge. In this article, I would like to discuss about a few key elements of an Agile software development contract and how some of the key issues can be addressed through the proper contract drafting. Though Scrum methodology has been considered here, many of the principles discussed below will also be relevant to other Agile development models.

A)???Product Vision Product Vision is the starting point of a Scrum project. It sets out the goals of the project and the high-level benefits that the project is intended to deliver. Product Vision should be developed before the commencement of the contract negotiation to help the negotiation team understand the intended outcome of the project.

The Product Vision should be included in an appendix to the contract as a reference point for the development of the Product Backlog and the project.

B)???Key Roles There are 3 fundamental roles within the Scrum model: the Product Owner, the Development Team and the Scrum Master.

i) Product Owner The Product Owner is the key representative of the Customer. He or she is responsible for communicating the Customer’s vision of, and requirements for, the project to the Development Team.

Key issues to be addressed in the contract:

  • Contract should ensure that Customer nominated Product Owner is suitably experienced in Scrum development projects.
  • The contract should set out the key responsibilities of the Product Owner, including but not limited to:

-?the initial development and prioritization of the Product Backlog; - the ongoing revision and re-prioritization of the Product Backlog as the project develops; and - participation, on behalf of the Customer, in the relevant Scrum planning and review meetings.

  • Given the importance of the Product Owner role in the overall project, the contract should require the Customer to use reasonable endeavors to ensure that the Product Owner:

-?spends a reasonable amount of time and efforts to the above activities; - responds to questions from the Development Team as soon as possible; and - is retained in the project until its completion unless otherwise agreed by the contracting parties

ii) Development Team The Development Team is responsible for the actual development activities within each Sprint. It is important that the Development Team are experienced in Scrum development projects.

Key issues to be addressed in the contract:

  • The contract should identify the proposed Development Team or alternatively, the Supplier should be obliged to notify the Customer of the proposed Development Team shortly after the contract is signed.
  • Each member of the Development Team should be appropriately skilled and experienced to carry out the development project.
  • The Customer should be entitled to approve the proposed Development Team. If the proposed team is not agreed by the Customer:

-?the parties should use reasonable endeavors to agree the composition of the Development Team; and - if the parties are unable to agree the Development Team within a specified period, then either party should be able to terminate the contract without liability.

  • The Supplier should ensure that each member of the Development Team:

- is dedicated to the project during the development period (unless otherwise agreed); and - is not re-assigned from the project without the prior written consent of the Customer.

iii) Scrum Master Scrum Master is the facilitator for an agile development team. The Scrum Master’s role is similar to that of a coach or a mentor – ensuring that the Development Team and the Product Owner are working co-operatively and following the Scrum processes. ??

Key issues to be addressed in the contract:

  • The contract should identify the proposed Scrum Master (or include a process for the Scrum Master to be agreed by the contracting parties). The contract should also set out the level of skill, experience and qualifications required of any Scrum Master.
  • The key responsibilities of the Scrum Master should be set out in the contract.
  • The contract should require that the Scrum Master:

- is dedicated to the project during the project term (unless otherwise agreed); and - is not re-assigned from the project without the prior written consent of the Customer.

C)???Product Backlog Product Backlog is a prioritized list of all of the items that are to be developed during the course of the project. It is the Agile equivalent of a “statement of requirements”. It is based on the Product Vision and may contain new features, changes to existing features, bug fixes, infrastructure changes or other activities.

Key issues to be addressed in the contract:

  • The contract will need to specify how the initial version of the Product Backlog will be developed.
  • Once the initial version of the Product Backlog has been developed, the Development Team should be obliged to provide the Product Owner with an estimate of the effort required to develop each item in the Product Backlog.
  • Any dispute can be resolved through agreed dispute resolution procedure set forth in the contract.
  • Once the estimates of effort have been finalized, the contract should require the Product Owner to assign a priority to each item based on the estimates of effort and business value.
  • If the parties will hold a workshop during each Sprint in order to refine the Product Backlog, this should also be addressed in the contract.
  • The contract should also make it clear that the Product Owner is free to amend the Product Backlog at any time. The only exceptions to this are:

?-?the Product Owner cannot unilaterally change the estimates of effort received from the Development Team; and - the scope or priority of items cannot be changed once they are under development as part of a Sprint.

?D)???Sprint Process The Sprint Process should be specified in the contract which includes but not limited to duration of each Sprint, meetings to be scheduled (e.g. Sprint planning meetings, daily stand up meetings, Sprint review meetings etc.), definition of Done or acceptance criteria, project completion timeline etc.????

?E)???Pricing Some potential pricing models are:

a) Fixed price per iteration (calculated by reference to the amount of work required for that iteration or the business value of the relevant development items); b) Fixed price per user story (this may be difficult if the user stories have a different scope or value); c) Fixed price for an agreed number of user stories d)?Time & Material (“T&M”) - Customer continues to pay as per agreed T&M rate card during an agreed-upon time period.? e)?T&M capped —a limit is set, and have the team manage scope to that overall budget target f) Incremental Delivery Contracts - this model allows Customer to inspect at regular pre-agreed points throughout the project lifecycle. At each of these points, the Customer may choose to continue with the project or take what has been developed thus far and terminate.

Key issues to be addressed in the contract

  • The agreed pricing model will need to be clearly set out in the contract.
  • This will need to include, but not limited to:

- a description of the pricing methodology (e.g. fixed price per iteration); - when fees can be invoiced; - who bears the costs for items which have not been completed during an iteration (or which have not met the acceptance criteria); and - the impact of scope reductions or early termination.

Other standard clauses like liability. indemnity, warranties, intellectual property rights, penalties, service levels, audit rights, benchmarking, non-solicitation etc. should also be part of any Agile software development contract.

The key to the success of an Agile Software Development contract is building a trust between the contracting parties by increasing the collaboration between the Customer and the Development Team and addressing key contractual elements in the contracts.

Allora Nanda

Business Delivery Manager at AI.Cloud Unit Of TCS | Executive MBA in Marketing & Operations at Xavier Institute of Management University / Agile Transformation Coach / PSM1 Certified Scrum Master

1 年

Very much insightful ... kudos to your effort !!

Priyanka Dhar

Senior Contract Manager at Tata Consultancy Services

3 年

Thanks for sharing. Very helpful.

Amitabh Patnaik

Senior Contract Manager at Tata Consultancy Services

3 年

Nice article, well thought out and drafted....

回复

Great insight

Arunangsu Sahu

Director of Delivery | Data & AI | ML & MLOps, LLMOps | Scalable Solutions | Cloud & Data Platforms | Driving Business Impact

3 年

Excellent Anirban Majumdar

回复

要查看或添加评论,请登录

Anirban Majumdar的更多文章

社区洞察

其他会员也浏览了