What is Agile Development?
Agile Development is a collaborative approach to project management, in which teams work together to define project requirements and identify solutions to issues as they occur. It was popularised in the 1990s, when traditional heavyweight project management was quickly becoming a burden, slowing down software delivery and failing to meet the requirements of the end user.
Prior to this, the traditional project management approach to software development was Waterfall, which involved heavy upfront requirement documents that went through a long development and testing life cycle. When eventually delivered, the final product was often incompatible with user expectations, leading to expensive redesigns, re-development and retesting.
These frustrations led to software developers putting their heads together to create a new fit-for-purpose method of project management, one that put “people before processes” and allowed for more iterative delivery to end users. The solution, Agile Methodologies that enabled end users to have input early in the development lifecycle, eliminating many of the costly post-delivery problems caused by Waterfall. This culminated in the creation of the Agile Development Manifesto.
Agile Development Manifesto
The Agile Development Manifesto is composed of four key values and 12 principles that set the stage for customer focused software development. The values below highlight the flexibility of the Agile approach and the importance of quickly adapting to change:
- Individuals and Interactions over processes and tools
- Working Software over comprehensive documentation
- Customer Collaboration over contract negotiation
- Responding to Change over following a plan
The principles distilled to their purest form can be summed up as follows:
- Customer satisfaction
- Welcoming change throughout the process
- Frequent delivery of software
- Co-operation between the business and the service provider
- Motivated and trusted individuals
- Face-to-face conversation
- Progress measured by working software
- Sustainable development
- Continuous attention to technical excellence
- Self-organising teams
- Regular adjustments to enhance productivity
Agile Development Methodology
Agile software development has since split into multiple methodologies; Scrum, XP, Crystal Clear, and feature-driven development. However, all of them fundamentally follow the Agile manifesto that values simplicity over complexity and “fails fast” by delivering software to the end user as soon as possible for feedback and further iterative development. This results in a shorter and more efficient project life cycle, benefiting both the customer and the supplier.
What Does Agile Development Involve?
The Agile Manifesto was created with the vision of breaking away from the Waterfall way of working and redefining how everyone (software developers and businesspeople alike) thought about development.
It wasn’t about the processes themselves (scheduling sprints, Scrum ceremonies or documenting requirements), it was about the simplicity of an autonomous team of trusted individuals figuring out their client’s problems, building software to fix issues, listening, adapting to change, and continuously delivering working software.
Switching to Agile Development from a more traditional approach will necessitate a paradigm shift in the way your team works, as to be successful it requires:
- Management to trust their employees to do the right thing without constant oversight or pressure; giving them the tools and environment they need to be successful, and stepping away to allow the process to run.
- Cross-functional Individuals who can work on the various elements required to deliver a “working piece of software” (e.g. a web application with a working front and back end, which has been fully tested and is ready for the end-user).
- Customers who are happy to explain their desired solution and are comfortable to receive iterations of a product, rather than giving their IT company a set of fixed requirements. They give feedback on the iterations they receive and are happy to pay for the iterations rather than the full product.
- Teams that are self-organising, who can determine the resources needed (required skill sets and hardware/software etc.) and collaborate to meet those needs.
Why We Use Agile Development
Here at Nexor, we have adopted an Agile approach, not just within the development stage, but across the business. This allows us to build stronger relationships with our customers, by giving them a greater level of input into our solutions. As a security company, we know that putting the customer and their needs at the centre of everything we do is a key requirement for success.
By providing customers with interaction opportunities throughout our development and delivery process, the end solution that we produce will suit their security needs perfectly. As time passes, customers’ needs can change, and this methodology allows our development to adapt accordingly. Our customers get to avoid the pitfalls created by Waterfall delivery, where development in a “silo” leads to a product that doesn’t meet the user’s needs.
Having the entire business follow the Agile methodology allows Nexor to adapt and change over time. As a business, our goal is continuous improvement and it enables us to be much faster at positioning ourselves to meet future needs.
Our work with government and defence organisations means that the Agile approach is key to maintaining their support. To find out how Nexor’s Agile approach could benefit your business, get in touch today.
Author Bio - Natalie Wilding
Natalie Wilding is Nexor’s Product Manager. She brings a wealth of experience through different industries to Nexor, including her passion for Agile development, which she has gained through her previous roles as an Agile Scrum Master and Agile Product Owner.
Be the first to know about developments in secure information exchange