When it comes to development many of you will be only too familiar with the traditional method of development. Traditionally you would start with the compiling of the product requirements spec document, this would be handed over to the development team who would then begin with the design and software architecture. Thereafter the development work begins, it gets integrated, tested and debugged, installed and then typically maintained. This traditional Waterfall method of software development was well embodied my many a developed team and on paper it seems to make sense, so why the switch and why is it so beneficial to the client to have a development team who has adopted the Agile methodology of software development?
In reality the problem with this traditional method of software development means that six months later (give or take a few months) and many thousands of Rands later the project according to the project spec and development team is complete. Your new system is ready to be rolled out…except…this is not what you wanted. The business has changed in the months since you first put the product spec together, requirements have changed, and processes have changed but none of this is accounted for in your new shiny system. So more projects specs, more months of developed and many thousands of Rands more you go back to try and get the system it is that you actually need. Now it doesn’t take much to see the fundamental flaw in the system here.
Enter Agile, so what exactly is the Agile methodology and how does it aid in alleviating so many of the problems and challenges faced with the traditional Waterfall method of development.
Agile software development is essentially a culmination of various software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
The Agile manifesto laid in in 2001 outlines 4 key areas of value namely;
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
By adopting this methodology of Agile development, what this means now is that the development work is done in short iterative cycles, allowing time for features and functionality to be prioritised by the client, tested and deployed at the end of each sprint cycle. What it further means is that the entire development process is less “document focused” by nature and more flexible. As the business needs change, as additional functionality is required and as certain functionality and features are prioritised above others, the work pulled into the sprint cycle is prioritised accordingly. The entire process is flexible, being able to adapt quickly to changes in requirements, with this methodology of development the client is kept involved every step of the way, and regular feedback is received from the client. The product owner takes ownership of the their product and focus is really on customer collaboration.
At Exclr8, we believe that effective communication between all stakeholders is fundamental to delivering business value to our clients. For this reason we have adopted a combination of principles and practices from Agile methods such as SCRUM, Kanban and Extreme Programming.
For the development teams, Agile development can be a lot more enjoyable than the traditional waterfall approach, as waterfall tends to include a lot more documentation and far less flexibility by nature. Not only is it important to add business value and make sure clients are happy but having a methodology that is flexible and not document intensive also leads to far happier and productive development teams.
See below the diagram on our development cycle. For more information on how we work please feel free to contact us on firstname.lastname@example.org