Ever noticed software development projects that just go on and on? Projects that seem to be just be throwing money at features with no end product? This is why we implement agile software development methodologies; more specifically scrum; to help with development and to get your project across the line and onto the marketplace.
Agile software development refers to software development strategies based on iterative development, where requirements and solutions evolve through collaboration between teams. Agile methodology often promotes a disciplined project management process that encourages adaptation and evolution, effective teamwork, organisation and accountability and a business approach that puts development alongside customer needs and company goals.
Effectively, agile development is a different way of managing development teams and projects. So why is it better than the more commonly used waterfall model, that most other software development companies implement?
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
Using agile methodologies increases speed-to-market dramatically. It also improves risk-management through small, incremental releases that help to identify any issues early on and make it easier to respond to change. In agile development, change is expected; during a project, the timescale is fixed and it is the requirements that emerge and evolve as the product is developed; this helps to improve the quality of the final product.
Agile, as an umbrella term, has various methodologies that fall collectively under it; they promote the values of the agile methodology and follow the above principles. Although there are three main methodologies that fall under agile (Dynamic systems development method, Scrum and Extreme programming), we focus on using Scrum methodology as a base for all of our projects. Scrum, as a subset of agile methodology, is a ‘lightweight process framework’ for agile development and is the most widely used approach within agile.
The Scrum framework
- We create a list of tasks for a project.
- During the planning stages, the team decides on tasks to complete and how to implement them.
- The team has a ‘sprint’ (two weeks) to complete the chosen work, and meets every day to assess its progress.
- At the end of the sprint, the work should be completed, and ready to be handed to a customer or shown to a stakeholder.
- The sprint is completed with a sprint review and retrospective meeting.
Evolyst implement this scrum framework for every project. Maintaining quality is a key principle of our work, and Scrum allows us to test regularly throughout each sprint, ensuring every feature works effectively. Using scrum allows new features to be developed incrementally in Sprints, which enables the product to potentially be released much earlier in the development cycle; it also helps identify risks earlier in the cycle and make it easier to respond to them.
Scrum allows us to create a more accurate view of the cost of future development tasks, and with the high transparency of the product and progress, as well as the flexibility to adapt and evolve, we have much better business engagement and customer satisfaction rate using this methodology.