In the period since 2000 as we have grown, we have progressively refined a product development method that’s specific to our needs – and the needs of our clients.
The Principles of Agile
How we work is fundamentally based on the four underlying principles of “The Agile Manifesto”, which was initially documented back in 2001 to reflect the perspectives of a group of experienced software developers.
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
For those who are interested, there are more detail on these principles here.
The Scrum Method
As part of our implementation of the principles of Agile, we utilise some of the processes described in the iterative development process called “Scrum”.
Mountain Goat Software has put together this presentation that explains the principles of Scrum:
In particular, we have included one of the images from an early version of this presentation, as provides a good visual overview of how the process works.
The “Product Backlog” contains the complete list of all that is known about what is required in the product before it could be called complete. For our company (having multiple products) in reality this means that we have a broader Development Backlog containing a long list of potential enhancements to all of our products.
At the start of each Sprint (also called an Iteration) we select what’s of next highest value to our clients and then design, develop, test and deliver that next increment through the period of the Sprint.
Interaction with Clients
One aspect of the Scrum process is worth highlighting explicitly – it’s the need for frequent interactions with client(s) – as, through these interactions we receive feedback on the current version, and input into ongoing upgrades.
Because we prioritise what’s of “next highest value” every sprint, we need frequent interaction with our customers.