An often overlooked part of releasing any form of digital service is continued maintenance of content, software, hardware and feature upgrades. The short-sighted view is to plan the cost of creating and releasing your service without the continued plan of costs and effort involved in maintaining the service and making sure it continues to be of value to your users.
Another common issue is that once it’s released, the team that builds it hands it over to a separate operations team and any issues that arise once live are expected to be dealt with solely by this operations team. This leads to the development team giving up ownership and accountability, resulting in quality shortcuts because any bugs that occur once live won’t be their problem.
Many companies are realising the importance of integrating operations and development from the very start of a project and putting into place a culture that allows the original builders of a service to be able to continue the support of it once live.
Gov.uk, for example, are well renowned for their approach to integrated development, quality and infrastructure teams. This allows them to continually support and improve their services by the changes they made to their lifecycle culture, by using the principles of DevOps.
By implementing the following what you’ll achieve is a shared sense of ownership, improved collaboration, shared skills and a higher quality product:
- Cross-functional teams
- Cultural changes
- Automation
- Metrics
- Regular releases
- Post mortems
Cultural changes and cross-functional teams
Gov.UK explains that DevOps allows them to break down silos and build on a change to attitude to increase collaboration and communication, as well as shared knowledge and overlapping of skills.
By bringing people together from design, development, quality and infrastructure specialisms from the very beginning of a project and guiding them using a set of principles they all work towards, allows the right decisions to be made at the right time by those who have the skills and knowledge to know what the true impact is. These specialists should all be together in one place to allow for the best collaboration possible.
Automation & regular releases
One of the major areas you should concentrate on implementing is adding automation to repeatable tasks. Adding automation where possible decreases the risk and pressure of time needed for manual testing and releasing code. By removing any manual, repeatable tasks you allow people to concentrate on the quality of delivery and increases actual development time.
The safer, more stable and higher quality services delivered using DevOps principles enables you to release more regularly. By releasing a higher number of smaller more predictable releases, in turn, allows you to add new features and upgrades which will increase user satisfaction and meets your targets on your roadmap.
Automation can cover any number of areas that will benefit your teams:
- Provisioning
- Configuration
- Systems integration
- Testing
- Deployments
Metrics and post mortems
As well as introducing automation, you need metrics to be able to compare the differences being made by using new processes and tools. Using DevOps, you will have all specialisms communicating and collaborating together so a full spectrum of data from design to infrastructure will be available to you. Using this data you can gather the metrics needed to continue making improvements retrospectively and continually increase quality and performance.
Once a release is completed, if there were any issues during or after said release, there should be a post mortem to breakdown what the cause of these issues were. This isn’t a blame game, it’s an opportunity for all persons involved and any stakeholders to understand what was the cause and how they can make improvements to stop these issues from occurring again.
Only by continued collaboration and communication, as well as self-inspection, can you consistently improve on services for your users. By following DevOps and agile principles you can you have a self-managing, cross-functional team that push each other to make decisions and improvements based on regular feedback and metrics.
Comments are closed.