Best Practice When Contracting for Agile Projects
Byon December 13, 2012
Agile project management is very much in vogue at the moment.
This comes as no great surprise — the concept of simplifying and streamlining a process is instinctively appealing. Agile seemingly promises to deliver a better product in less time than the more traditional waterfall approach.
However, agile project management is not necessarily a silver bullet. Successfully administrating an agile project from beginning to end requires a great deal of discipline and foresight. With that in mind, today I want to explore best practice when contracting for agile projects — the decisions you should make and the key steps you should take in order for your team’s efforts to result in a positive outcome for your project.
Determining the Shape of the Solution
The first step you should take is to determine whether agile project management is the right fit for what you want to achieve.
In a nutshell, a relatively discrete and easily envisioned project is likely to be best executed with a waterfall model. On the other hand, a sizeable development spanning many aspects of functionality and perhaps different departments of an organisation possibly calls for an agile model.
The decision you make is less to do with size and more to do with the complexity of the project and your understanding of the solution. This is separate to your desired business outcomes. For instance, your desired outcome might be for a paperless working environment — that much could be clear. But if you do not yet understand how that could practically be achieved, the solution may be a big unknown. Such a scenario would indicate that agile may be the best way forward.
On the other hand, you could have a relatively complex project but with a clear solution. An example of this could be the consolidation of several legacy financial systems of the same type under one roof. The end point (i.e. creating one system where there are currently several and where the form of the target solution is known) is clear and relatively easy to understand. As such, a waterfall model would seem more appropriate in these circumstances.
In my experience, clients routinely underestimate the level of their resources that will be necessary in order to see their project through to completion. The issue is exacerbated when following the agile model as the total cost and resource demand is unlikely to be known (to any precise amount) at the beginning of the project.
This uncertainty is unavoidable and as such must be recognised and dealt with appropriately by both client and provider. At the tender stage one would expect the provider to be able to estimate the immediate costs involved along with likely costs at future stages. The real key however is in recognising and dealing with potential budgetary issues before they occur — this requires a clear line of pre-contractual communication between client and provider.
An agile project is likely to throw up a few surprises — they are inevitable. It is how they are handled as and when they present themselves that makes the difference. The winning approach here is to pre-plan in the expectation of changes in direction during the life of the project.
Structuring an Agile Contract
If you decide to proceed with agile project management you will soon approach an absolutely pivotal stage in determining the success of your development. Although the structure of a project’s contract is extremely influential under any circumstances, the unique challenges presented by the agile environment require a very deliberate and foresighted approach to forming the contract.
The key thing to understand is that an agile project is essentially a staggered combination of multiple waterfall projects. To use a running analogy, waterfall is to the 100m sprint as agile is to the 400m relay — the first relies upon a well-timed and coordinated start followed by consistent application through to the finish line, but the second requires the same in addition to a smooth transition between each runner.
This should be reflected by the contract, which must have a protocol in place to handle each subsequent waterfall stage after the first. Each stage of the project must be handled explicitly by the same contractual framework — from a legal perspective it is of paramount importance that the provider’s duties and obligations remain consistent throughout the lifetime of the project.
Implementing and Administering the Contract
All of the above work will be for naught if you do not ensure that the contract is administered effectively. This reveals yet another classic pitfall that one must avoid — the classical gaps between popular forms of project management and the provision of effective contract management.
You must ensure that both the project and the contract are administered hand-in-hand. The success of the project relies upon a consolidated approach, as the validity of your contract is only as strong as the precedent you set in the way that the project is handled.
Ultimately, you must define in the contract and then diligently maintain a solid framework by which you can hold the provider accountable. I can think of countless examples of projects in which a client’s employees have gotten overly involved in the practical elements of a project’s development with no regard for the contract. Whilst such actions may sometimes seem to be in the best interests of the advancement of the project, it can in reality compromise the intended structure of the contract and result in the provider losing all liability for the outcome. It is important to know and remember that the parties’ behaviours under a contract can actually modify it without a single line of change control being written!
The clear delineation of roles and responsibilities is germane to a well-administered contract. What may seem like a practical and immediate solution to the client’s staff may have far-reaching consequences. The priority must always be not to compromise the validity of the contract.
Although agile project management is extremely popular at this time, it is not always the best solution. If you do decide to go down the agile route you must be extremely careful to negotiate a well structured, foresighted and robust contract and ensure that it is administered effectively so that your hard work is not undone.
Furthermore, an agile project will only be successful for as long as there are clear lines of communication between client and provider. One must constantly work to keep on top of the developmental, implementation and budgetary roller coaster. Having said all of the above, a well-administered agile project can result in beneficial outcomes for your organisation. The key is in the disciplines surrounding the implementation.
Creative Commons image courtesy of Mark Sadowski