agile (ˈædʒaɪl)
adjective
1. quick in movement; nimble. 2. mentally quick or acute.
Symology aim for agility. We aim to be responsive to customer requirements, and changes in our sector such as new legislation, opportunities from technological advancement, or responding to our competitors.
Symology’s Aurora solution is a fully integrated Highways Asset Management system with comprehensive Street Works functionality. Operating currently with 75 customers and over 6,000 named users and counting. Aurora has been fully developed by our in house teams for the benefit of our customers. At the core of the solution is our Software Development team.
Symology’s Software Development Manager, Martin Castle provides a detailed insight into our approach to development, transitioning from a traditional Waterfall methodology, to embracing a more Agile approach.
Entering his 33rd year with the company, Martin was asked what is the most important thing about developing software for our customers. “It’s simple really, the customer is at the heart of everything we do, we have one aim and that is to make customers lives easier by developing great products”.
Read on to find out more about our approach and how this benefits our customers.
So how do we do that?
A key tool that helps us to be agile is our use of Agile, an industry standard software development methodology.
This encourages short phases of work to iteratively deliver improvements, with a regular reassessment of priorities and a willingness to adapt our plans to meet those priorities.
Our Product Management team regularly reviews the list of new requirements on our roadmap, resequencing that list to align with the latest priorities.
Our Software Development project teams then work down that list to complete parcels of work in fortnightly sprints, during which time the tasks are coded, tested and peer reviewed.
At the end of a sprint, each team of Developers then demonstrates their latest work to the Product Managers and other relevant staff, to ensure that it meets the requirements and to discuss whether any further improvements can be made in the next sprint.
That updated software is then placed into our Product Quality environment where it is reviewed more widely by our Product Consultants. Their comments feed back into this process, so that their suggestions can be discussed, prioritised and potentially incorporated into the next sprint of work.
So how does this benefit me as a Customer?
One important benefit is the delivery of the best solution, that does what you need it to and has been thoroughly tested.
Our Agile approach means that because we are regularly reviewing changes during their implementation, there is still time to influence that implementation to achieve the best solution. It also encourages a greater focus on testing, with each change tested thoroughly there and then, rather than just performing the final testing prior to a release, with little time available to react to any problems identified.
Having implemented and tested individual changes over a series of sprints, the final sprint prior to a major release is focussed on regression testing, both manual and automated, to check that areas seemingly unaffected by recent changes are still working as expected. Quality is paramount to us and our customers.
Another key benefit is the responsiveness to something more urgent.
When planning the content of each new sprint, there is flexibility to broaden our focus a little whilst showing composure and restraint, to include anything particularly urgent that is required by a customer ahead of the next major release. This allows us to implement a smaller number of high priority changes which can be included in an interim maintenance release.
Focussing on just a few high priority changes in their own maintenance release allows us to very carefully test those changes, separate from the many dozens of other changes being applied in a separate environment for the next major release. This allows a maintenance release to be produced far more quickly, with a high degree of confidence that everything still works as expected.
Ultimately, Agile methodology is best placed to ensure we have an incremental approach to software development that emphasises flexibility, collaboration, and most importantly customer satisfaction.