At Code Galaxy we advocate Agile software development. Sounds good doesn’t it? But what does it mean? ‘Agile’ is a buzzword that has grown in popularity over the last few years for zippy marketing collateral and keynote speeches, but Agile software development has been around since 2001 when 17 software developers came up with the Agile Manifesto as a movement towards lightweight software development.
What is Agile software development?
There are four main principles of the Agile Manifesto:
- Individuals and interactions over processes and tools
The development process should be people-driven as a response to business need, rather than adhering to rigid processes and tools.
- Working software over comprehensive documentation
While documentation is important, it shouldn’t be excessive and cause delays. Developers should be able to access just streamlined information that is relevant to the project.
- Client collaboration over contract negotiation
This is about involving the client throughout the process through collaboration rather than haggling over contract details to deliver the project.
- Responding to change over following a plan
Rather than avoiding change and following a rigid plan, Agile development allows changes to be easily made which adds value to the process.
The benefits of Agile software development
Firstly a couple of terms to get your head around:
Iteration – a short period of time (usually around 30 days) in which software is planned, developed and tested.
Sprint – focuses on a specific product or feature addition.
An iteration contains one or more sprint.
A quicker launch
Rather than wait until the entire project is complete, the Agile approach allows for the release of ‘iterations’ of the project in scheduled ‘sprints’ of around 1-4 weeks. This allows for new features to be released frequently with a welcome level of predictability.
Accommodates change
Through the iteration process, the product backlog can be refined and reprioritised. Planning new or changed backlog items for the next iteration means changes can be implemented quickly, usually within a few weeks.
Quicker return on investment
The increased frequency of software development updates leads to a quicker return on both the financial and time investment of the client.
Users are centre stage
Under the Agile approach, product features are defined through user stories and acceptance criteria relevant to the business. This provides more value and the opportunity to beta test (sample audience testing) software after each 1-4 week sprint. This allows for the speedy implementation of crucial changes which immediately benefit the user.
Avoids spiralling costs
Short, fixed duration sprints of work offer predictable costs due to the limited timeframe involved. This helps the client to fully understand the cost of each software feature so that they can make more informed decisions about priorities and any additional iterations that may be required.
Improved efficiency
Meeting regularly with the client to review the performance of the software development to date optimises the efficiency and effectiveness of the project. This also has a direct influence on the advanced stages of development.
Business value
When the priority of software features is determined by the client, the developer gains a more comprehensive understanding of what is important to the business, allowing them to deliver features that optimise value.
A positive client experience
Being consulted throughout the project, and being part of the collaborative process, provides the client with a better experience and broader understanding of the software development process.
Contact Code Galaxy for Agile software development
Get in touch with the team at Code Galaxy to find out more about our Agile approach to software development and how we can collaborate on your next software project.