CIO.com: So how do termination rights work in these situations?
Schaffner: Given that the goal of each iteration is to produce workable code paid for on a TM basis, the typical agile software development agreement allows the client to terminate the project at the end of each iteration usually without the payment of termination charges. If the client does not see value in the work product produced during the latest iteration, it can simply walk away. The chance that a project goes dramatically astray during an iteration is minimal because the requirements for that iteration are always defined at the outset of that iteration, which presumably advances the larger goals of the 'thing' being built in accordance with the product vision.
However, the agile software development approach involves minimal software documentation, so resituating a terminated project at a later date may be more costly since new developers will need to spend more time diving into the code before work can resume.
CIO.com: Agile development is, by definition, fluid. How can customers build some milestones into a contract at the outset?
Schaffner: The ASD approach begins with a high level concept of the product to be developed (the "product vision"). Using the product vision as a guide, the development team then creates a statement of requirements (the "product backlog"), which essentially is a list of prioritized items to be developed during the project. The development agreement should specify how the product backlog will be managed during the project, including obligations for the developer to provide cost estimates to develop each item in the product backlog. The parties can then use the prioritized list of items from the product backlog to determine the order in which items will be worked.
If the parties decide to exclude the initial product backlog as a contractual document under the development agreement, the parties should specify in the agreement how the product backlog will be developed and prioritized. The client should also have the sole and exclusive right to amend and reprioritize the product backlog.
An agile software development agreement should also define the iteration process, including the duration of each iteration (usually not to be extended; unfinished work rolls into the product backlog and is prioritized), the meeting cadence, and the process the parties will use to determine when the work in an iteration is done. Note that rolling unfinished work into a subsequent iteration may have a price impact though.
CIO.com: How can customer mitigate the risk of employee turnover on these projects, which depend on more continuity?
Shaffner: While the iteration approach provides a client the ability to easily terminate a project, [providers] may be less likely to commit developer resources on a long-term basis unless the client makes a financial commitment to use those resources. TO mitigate this risk and the subsequent loss of project knowledge, the client should name a few key developer personnel whose commitment to the project is memorialized in the agreement with assurances from the [provider] that these resources will not be moved off the project without approval from the client.
Sign up for CIO Asia eNewsletters.