Here at Primetics, we employ a process called “agile development” to create software that really benefits our clients and meets all of their needs fully. In this post, we explain what agile development is, how it works, and what it means for our clients.
What is agile development?
Agile development is an approach to software development that was conceived in 2001 by a team of seventeen software developers. They met in Utah and drew up the Manifesto for Agile Software Development, which consisted of a set of 4 values and 12 principles for developing software. The focus was on flexible development in close communication with the client, with lots of client input and the capacity to adapt to change. This was a move away from previous processes for software development whereby the software would be built by software developers based purely on a client spec and then delivered back to the client as a finished product. The four values of the Agile Manifesto are as follows:
1. Individuals and interactions over processes and tools
This first value encapsulates the idea that development should be led by communication rather than rigid, set processes. This means that if something changes in a client’s business or they think of something else they need later down the line, the software can be adapted accordingly. Think flexibility: the developers and the client communicate and act when needs arise.
2. Working software over comprehensive documentation
Rather than requiring vast amounts of technical documentation, in Agile the documentation is streamlined and focuses on the key information needed to produce the software functions required. For example, client requirements are documented as “user stories”. These typically consist of a short sentence indicating who needs a particular service, what they need it for and why (what is the end goal?), e.g. “As a grain trader, I need to view customer activity reports so that I can analyse customer purchasing activities”.
3. Customer collaboration over contract negotiation
In agile development, the client is involved throughout the whole processes, rather than simply negotiating requirements and a contract in advance and having minimal further input. The idea of communicating all changes and developments to the client as they happen and checking that they fulfil requirements properly ensures that at the end of the process the customer has a software product that really works for their business.
4. Responding to change over following a plan
Agile development embraces change and accommodates it systematically. Rather than drawing up an elaborate plan at the start and following it regardless of any issues or changes that crop up, Agile works in “iterations” or “sprints”. These are short development cycles of around a couple of weeks. Priorities are reassessed at the start of each cycle and can be shifted accordingly.
You can view the twelve principles of Agile here. They break down the four values we have spoken about into greater detail.
How agile development works at Primetics
Our development process here at Primetics incorporates the Agile elements we have spoken about. At the start of each sprint (development cycle), we decide on a sprint goal and a sprint backlog. The sprint goal is the overall goal we want to achieve during the sprint. The sprint backlog is a list of specific functionalities that need to be developed in order to achieve the goal. These take the form of the user stories we mentioned earlier. We also define the timeframe for the sprint, which can range from a couple of days to a few weeks.
We go on to develop, integrate and test all of the functionalities for that sprint. We then release a demo and receive client feedback. If the sprint goal is not met, we make changes. To determine whether the goal is met, we often use something called “acceptance criteria”. This is a set of criteria, often using different scenarios, whose fulfilment indicates whether a user story has been realised. We have a meeting at the end of each sprint/iteration called a “retrospective”, which assesses the sprint and what has been achieved.
We then move onto the next sprint for the next goal, working in the same way. Once all of the user stories for the software have been fulfilled, the software is complete.
How this benefits our customers
This agile development and implementation have various benefits. Firstly, we can achieve more frequent releases with updated functionality, prioritising the functions that are important at the start of each iteration. Secondly, prototyping, continuous code integration and testing and constant client feedback, for example in the form of show and tell sessions, meaning that the software is always moving in the right direction and is able to really provide the functionalities that our clients need. For example, a client might request one functionality, but when it gets to the testing stage it might become clear that there is a better way of doing things in order to reach their end goal. It allows us and you to test things out and get the best possible end result. Our clients can see changes happening and are always in the loop.
At Primetics, creating software for our clients that adds value, efficiency and profitability is our end goal. That’s why we have put these Agile processes in place. Our development team works flexibly on your individual project and adapts to your needs, priorities and timeframe, even if they change.
To find out how Agile development from Primetics can benefit you and your business, get in touch with us today on 01257 279 811 or email firstname.lastname@example.org.