As part of an article on contractual models within the IT industry, I pointed out that two basic contractual models are used as standard in IT: the work contract model and the service contract model. Each of these models provides for different consequences and places different obligations on the parties. Also linked to contract models in IT are the topics of the two leading project methodologies – agile and waterfall. In this article, I will focus on identifying the main advantages and disadvantages of each of these methodologies.
Agile and waterfall – services and work
In a broad generalisation, we would categorise agile as equivalent to a service contract, while waterfall would reflect a contract for a work.
Agile, as a sub-type of agile methodologies, will correspond to a service contract in that the end result is not known to the parties at the time of entering into the contract and only emerges in the course of contract performance. As in the case of the service provision, it is the activity that is important, not the result.
Waterfall, on the other hand, corresponds to a work contract, as it assumes that the parties have the awareness and the goal of striving for a specific result for which they agree, while the project itself is divided into rigid, binding stages culminating in acceptance.
Scenarios in which contractual models are mixed with methodologies are also possible, resulting in complications of interpretation. In practice, it is also common to see so-called agile contracts, which are in essence work contracts, divided into so-called sprints, characteristic of agile.
Contract object and change management
Contract object definition and change management are key aspects in project management methodologies such as agile and waterfall.
The agile approach, in which the subject matter of the contract is often not fully specified, offers a great deal of flexibility, which is beneficial in projects that require adaptation to the ever-changing expectations and requirements of the client. In the agile approach, change is not only acceptable but even desirable, allowing the Contractor’s development team to respond quickly to new challenges and needs. However, such flexibility can make it difficult to accurately predict costs and limits the ability to use a schedule, as the details of the contract are not fully specified at the start of the project.
The waterfall methodology, on the other hand, is characterised by a clear contract object and a detailed project plan that are established at the outset, at the time of contracting. This structure makes it easier to track progress and manage budgets. When planning a project in the waterfall methodology, all requirements are defined in advance, which minimises the risk of misunderstandings and provides greater predictability. Unfortunately, this approach is less flexible when changes need to be made, which can involve large costs and the need to start work from scratch if these changes are required in later phases of the project.
The choice of the appropriate methodology often depends on the specifics of the project and the requirements of the Contracting Authority. Therefore, the decision to use one of these methodologies should result from an in-depth analysis of the specific needs and constraints of the project in question.
Planning and execution of a project
In the context of project planning and execution, both agile and waterfall have their own specific characteristics that are worth considering in analysing their impact on project management effectiveness before deciding on a methodology for a particular project.
As I indicated above, within agile, dynamic prioritisation is key, allowing for continuous adaptation to changing project conditions and requirements. This methodology promotes flexible planning that is cyclically updated, which on the one hand can be seen as an advantage, but can also lead to an excessive focus on short-term goals. The focus on day-to-day activities and iterative value delivery can sometimes dilute the prospect of long-term, strategic project goals, but on the other hand, it allows for a quicker response to the needs of the Client and the market.
Waterfall, on the other hand, takes a more structured (cascading) approach to project planning and execution. A contractually defined project is divided into phases, each of which must be completed and , received before the Contractor’s development team moves on to the next. This methodology facilitates detailed cost planning and provides the opportunity to introduce a binding schedule. However, the lack of flexibility to manage changes during the project is one of the main drawbacks of this approach. Changes are difficult to implement and usually costly in both time and money, which can be particularly problematic in rapidly changing environments.
Ultimately, choosing the right method depends on the specifics of the project, including its scope, complexity and the environment in which it plays out. Agile is preferred for projects where rapid adaptation and response to change are key, while waterfall works better for projects that require tight control and predictability.
Documentation
When it comes to documentation in projects managed by agile and waterfall methodologies, there are significant differences that affect the way projects are planned, executed and communicated.
Agile is often characterised by limited formal documentation. Rather than focusing on extensive documentation, agile prioritises the creation of working software and the direct collaboration of the development team. Such a strategy can contribute to faster product delivery and a more flexible approach to project management, but it carries the risk of missing out on important information. A lack of detailed documentation can make it difficult to orient new team members or outsiders who take over a project, and complicate the work when it is necessary to refer back to previous decisions or changes in the project. Lack of documentation or limited documentation may also carry the risk of disputes between parties.
Within the waterfall methodology, detailed documentation plays a key role. Projects are thoroughly documented from the outset, which includes specifications, acceptance reports, project documentation related to the completion of individual phases and other formal documents. This high level of effort in relation to documentation can be time-consuming, but provides clarity, consistency and ease of tracking progress. Detailed documentation minimises the risk of misunderstandings and potential disputes between parties as all aspects of the project are clearly defined and approved.
Contractor interaction
When it comes to the interaction between the Contracting Authority and the Contractor and its team, agile and waterfall methodologies differ significantly, which affects how they interact, how feedback is gathered and how the Contracting Authority is involved throughout the project.
In the agile methodology, a key element is the ongoing involvement of the Contracting Authority. This requires him or her to collaborate regularly, attend meetings and provide ongoing feedback. This close collaboration enables the Contractor to better understand the Contracting Authority’s needs and to quickly implement any changes to the project. However, for some Contracting Authorities, continuous engagement can be a challenge due to time constraints or lack of available resources.
In the waterfall approach, on the other hand, the involvement of the Contracting Authority is usually focused on two key moments: at the beginning of the project, when requirements and expectations are defined, and at the end, when the finished product is accepted. This methodology allows the Contracting Authority to set clear expectations at the outset and minimises the need for its ongoing involvement, which can be beneficial for Contracting Authorities with limited ability to interact on an ongoing basis. However, a lack of ongoing collaboration and the inability to collect ongoing feedback can lead to a mismatch between expectations and the final product, which in turn can result in the need to make costly changes at the end of the project. A way for the Contractor to obtain ongoing feedback from the Contracting Authority may be to introduce partial acceptance. If the finished product is delivered based on ongoing feedback, this reduces the potential risk of a dispute resulting from the Contractor failing to meet the Contracting Authority’s expectations.
Risk of project failure
Risk management in projects using agile and waterfall methodologies involves different approaches and is critical to project success. Both methodologies have their advantages and disadvantages in terms of anticipating and minimising the risk of project failure.
The agile methodology is known for its ability to respond quickly to change, which is crucial in dynamic projects where conditions or requirements may evolve during the project. Agile allows for iterative testing and adaptation of the product on an ongoing basis, enabling risks to be minimised by continually identifying and resolving issues at an early stage. However, in projects of large scope or complexity, it is difficult to anticipate all potential risks due to the lack of a full specification at the start of a project. Significantly, in practice, it is most often projects based solely on agile methodologies, with no predetermined deliverable or framework, that fail.
Waterfall, on the other hand, is characterised by a lack of flexibility in change management, which can be problematic when unexpected challenges arise. In this method, however, risks are carefully analysed and managed from the outset of project implementation. With initial comprehensive planning and documentation, waterfall projects can effectively identify potential problems before they become serious. However, when unforeseen events occur, the waterfall approach can lead to delays and increased costs, as it is usually difficult and costly to make changes in later phases.
Ultimately, the choice between agile and waterfall should be based on the nature of the project, the ability to adapt to change and how crucial it is to manage risk from the outset. Agile offers greater flexibility and faster adaptation, which is beneficial in unpredictable or rapidly changing environments, while waterfall is better in environments where clearly defined and stable conditions allow risks to be accurately predicted and managed.
Quality
The quality of the final product is one of the most important aspects of any project, and agile and waterfall methodologies offer different approaches to quality assurance.
The agile methodology, with its iterative approach, allows frequent testing and gradual improvement of the software at each stage of the development process. Agile focuses on continuous adaptation and improvement, allowing bugs and anomalies to be identified quickly, which in turn allows them to be fixed immediately. This is achieved through regular team meetings, sprint reviews and retrospectives. However, this requires the Contractor’s team to have a very clear understanding of the ‘definition of completion’ (definition of done), which prevents underdeveloped features from being passed on to subsequent stages of the project. Despite these advantages, the focus on rapid delivery of subsequent software elements can sometimes lead to quality being neglected if not properly defined and controlled.
In the waterfall model, on the other hand, quality is usually ensured by detailed testing phases that precede the acceptance of subsequent project phases. Each phase of a project in the waterfall method is carefully planned and requires acceptance before the work can move on to the next phase. This rigorous approach ensures that all product components are thoroughly tested and conform to specification, minimising the risk of errors in the final product. However, this method can be less flexible when changes need to be addressed quickly or errors need to be corrected after acceptance.
The choice between agile and waterfall in the context of quality assurance should depend on the specifics of the project, including quality requirements, delivery times and testability. Agile offers greater flexibility and continuous opportunity for improvement, which is beneficial in projects where rapid error detection and correction is key. Waterfall, on the other hand, may be more suitable for projects where a high degree of accuracy and predictability of quality is required at every stage of delivery.
Agile and waterfall methodologies offer different approaches to project management, which have their specific advantages and limitations. The choice of the appropriate methodology depends on a number of factors, including the nature of the project, the requirements of the Employer, and the dynamics and predictability of the environment in which the project is implemented.
Ultimately, the decision to select a methodology should be based on an in-depth analysis of the needs of the project and the preferences and capabilities of the Contractor and the Contracting Authority, as well as an understanding of the limitations associated with each approach. Adapting and modifying the chosen methodology for the specific conditions and requirements of the project often proves to be the key to success.