Gone are the days where the client awards programs/portfolios to a single entity/organization. These days multiple vendor organizations work in sync with IT division of client organization. In such a set-up, it is very difficult for the partner organizations to co-ordinate and achieve the common goal of the project(s).
Every organization has their own way of working and the partner organizations rarely co-ordinate and communicate. This does not go well in the agile set of projects as goals needs to be realized in very short intervals and very frequently. These set of difficulties can be overcome if the contracting paves way to co-ordination between the partners of the project.
Following factors should be paid attention to while designing the contracts:
Duration of contracts to be smaller
Let the contract duration be smaller (may be for three to five iterations) and include the clause that the contract will be extended if the benefits are realized within this duration. This will force the partners to recognize their counter parts of the project and will co-ordinate with each other. As contracts can be terminated if the goals are not realized, each of the entity will focus their efforts towards realizing the project goals.
These sort of rolling contracts will renew the vigour in the participating partners.
Time & Material Contracts
Time & Material contracts will enable the organizations to adjust the capacity required during the course of the project. Capacity enhancements/shrinking may be required as and when the goals change/add/modify during the course of the agile projects.
T&M contracts will facilitate these needs. Partner organizations will be able to ramp up/down their capacity accordingly for the iterations. (Include the clause that members cannot be taken out during the course of iteration and try to have stabilized teams)
As the agile project(s) goals are not clearly determined during the start of the project, let the contracts be evolving. Goals can be added/modified/re-prioritized as per the need of the market. Contracts should be able to accommodate these requests.
During every such evolving contract, let the partner organizations sort out dependencies to achieve the goal of the project. Each of them can create their road-maps with their set of roles and responsibilities identified. This will enable the partners to get ready for the next set of iterations.
Common Reporting and Policies
Each of the partner organization has their own set of metrics/policies/principles for their organization. It is better that a common set of metrics/policies are designed for the way of work. Else each organization spends good amount of time for these activities and metrics of one organization may not be comprehensible to the other.
Common metrics and policies are to be designed and circulated across the members. This will reduce the client efforts as every partner has the same method of working.
Tools enabling the visibility across partners
Communication is the key factor for the collaboration and projects should use tools which enable the visibility of the project across the partners of the project. Backlogs/Burn-down charts/Blockers/Impediments/Progress Charts/Work-In-Progress etc. should be visible to all and the tools will bring this transparency across the project. (E.g.: Tools such as JIRA, Confluence, Hip-Chat)
The access to the tools for the partners can be provided by the client organization itself.
Buy-in time from Product Owners
Apart from the above, if the contracts can also include the minimum time the product owners need to spend with the teams in a week, it will make the contract robust. This will ensure that the partners have their access to the product owners.
These factors will help in creating collaborative agile contracts between the clients and the partner organizations.