By John Cooke, Founder and Managing Director, Black Pepper Software
Collaboration and communication can make or break the success of software development projects. Without them, results will likely fall drastically short of a client’s expectations and could even result in redundant product creation.
Regardless of the software development technique a business decides to use, there are three key elements within a project where communication and collaboration is vital to ensure the best results.
Agile preparation key to success
The first is the project set-up; a period when traditionally clients communicate their expectations and the development team discusses how it aims to meet the brief.
In a waterfall project, stakeholders are involved at the very beginning of the venture, where a functional specification is compiled. This is approved by all stakeholders, many of whom won't be actively involved in the project again until development is complete.
Although the specification will likely be very detailed, there is a lack of communication until the final stage of the project, at which point the scope for failure is vast. Business needs continuously change. By failing to collaborate with stakeholders throughout a project, any change in requirements or project direction will not be communicated until it’s too late and will be costly.
An Agile approach resolves this issue. An initial specification is created but is developed and approved at a high level. Throughout the project, communication between the client and the development team is continuous, with frequent updates and iterations enabling close collaboration with the stakeholders. This empowers them to make decisions on a daily basis so businesses can change the outcomes of the project when their requirements change.
Whereas a waterfall process assumes that change is the exception, an Agile team treats change as the norm, and can therefore keep up with the realities of today's business environment. This works well alongside the second key element of software development projects; budgeting.
Continuous collaboration eases budgeting strain
It is a popular belief that Waterfall Software Development offers clients a clearer view of the project due to its timeframe and costs being defined at the outset. This differs from the Agile approach where costs and budgets are estimated at the start but are continuously reviewed rather than predetermined, which results in the assumption that Agile is the more risky choice.
In fact, it can be argued there is more risk involved with the Waterfall approach. Traditionally, clients are invoiced for a predetermined amount, resulting in increased costs if any amendments are required to the software prior to or upon completion. This is increasingly likely considering the lack of communication throughout the project using this approach and the likelihood of a change in requirements over the period.
The continuous communication which differentiates Agile approaches enables customers to change requirements and continue receiving fully functional software at every iteration. The end result is a true representation of the customer’s need and does not require them to have a system that already needs updating. Budgets are discussed throughout, while costs and delivery milestones are highlighted so customers not only understand and alter each stage of the project, but have the confidence to offer essential feedback.
Regular reporting breeds right results
The final element of the software development process that relies on strong communication and collaboration is reporting. In Waterfall, reporting covers every aspect of the project and as such is hugely time consuming for the development team to create, while clients have much more content to digest as the reports are non-specific and lengthy. Reporting occurs at the very end of the process, which results in it being increasingly difficult for stakeholders to keep track of the progress and ask for changes to their software until the project is closed. Why should businesses accept such flagrant disregard for their needs and accept a system which almost certainly runs the risk of delivering substandard results?
Using Agile removes this risk. Reporting is regular and concentrates on the project’s tangible elements, enabling customers to identify specific areas of the software which require modifications or enhancements to generate the best possible results. Continuous communication between the development team and the client creates a fully transparent environment, giving control back to the customer.
The future’s bright, the future’s Agile
There is no such thing as a failsafe approach to software development. There will always be instances where the results fail to reach expectations. Agile mitigates these risks early by ensuring communication and collaboration is efficient and effective.
It may be unfair to say Waterfall doesn’t work. There will be projects which require little or no change that may suit the Waterfall approach. However, Agile will deliver differentiation, innovation and quality which is usually at the forefront of a business’ software plans.