How Agile works at SilverStripe
What is Agile?
Agile methodologies have grown from software development processes. Agile harnesses iterative cycles in which solutions evolve through collaboration between self-organising cross-functional teams. Its principles are summarised in its seminal declaration, the Agile Manifesto.
Agile focuses on people, communication, usable outputs and continuous learning.
When using Agile, teams incrementally deliver working software in short time-boxed iterations. Activities, including feature prioritisation, coding, and testing, happen in parallel. Each iteration builds upon its predecessor until the project is feature-complete.
Agile vs “Waterfall”
Software projects used to be run using a "waterfall methodology." Strict requirements were written into a document. Descriptions of what the software was supposed to do were written into a different document called a functional specification, and many dead trees later, someone would start to write code. This way of creating software came from the physical engineering disciplines. If you are building a bridge, it's very important to get the design correct the first time around because the costs of changing later down the track are so high—not to mention that people's lives may be at risk!
But there are fundamental differences between building software and building bridges, and with Agile, we now recognise those differences. Especially in the fast-paced digital world, it's critical to allow for emerging business requirements to affect the course of development of software. Agile development tends to be better for web projects because:
- Agile favours smaller iterations of development.
- Agile focuses heavily on risk management.
- Communication with you throughout the project is crucial, while heavy-handed documentation is avoided.
- We have flexible processes and tools in place to guide our projects to successful completion.
What Agile means at SilverStripe
When we use the term "Agile", we actually refer to various components of how we run projects at SilverStripe. Agile encompasses business analysis, risk management, software development, and quality assurance.
Agile also refers to how we engage with you. Most of our clients have multiple-year engagements that are comprised of multiple projects. Each project may have multiple phases, each of which is based on needs determined at the time, not at the beginning of the engagement.
Using Scrum for Agile projects
Scrum is a framework for Agile project management. Scrum is ideal for situations where it is difficult to plan ahead.
In our experience, Scrum is the best methodology for delivering digital projects, particularly the innovative ones our clients come to us for help with. When outcomes are defined at a high level but detailed requirements have not been locked down, incremental delivery of working software and applications provide high business value quickly. It also helps reduce the risk of the unknown, as we are able to tackle the “low hanging risks” early and test our assumptions and ideas throughout the project.
How we use Scrum to deliver better projects
A key principle of Scrum is its recognition that as new information is discovered projects may need to adapt or change path. These unpredicted challenges cannot be easily addressed in a traditional predictive manner.
Scrum adopts an empirical approach—accepting that the problem cannot be fully understood or defined, focusing instead on maximising the team’s ability to deliver quickly and respond to emerging requirements. Work effort is outlined in ‘sprints’, with milestones and goals associated with each sprint. Typically a sprint is a two week-period, with clear deliverables defined and delivered within that period, based on a priority order of feature sets.
Better team results
At SilverStripe, our Agile Project Managers hold a dual role of managing projects and looking after their team as Scrum Masters. As project managers, they update clients on the progress of their projects, keep track of the budgets, and make sure project risks don’t become issues. As Scrum Masters, they make sure any distractions or impediments are removed from the team’s day so that they can work in the most efficient manner.
Better project results
Using fixed ‘sprint’ cadences, timeframes and budgets can remain stable throughout your project. The project team work closely together with transparency, so that you can own the backlog of work according to your evolving needs.
It was an excellent project to be on. A completely new way of working for me, with a close-knit team who supported each other. Perhaps what I loved most was establishing that rhythm—it was a great way to match ambition with results. ~ Niels Jonker from the NZ Transport Agency