Speed up the delivery of your next digital project
You may have heard the term DevOps used when working with digital development agencies like ours during the development of a project. But what does it mean, why is it used and how does it contribute to the successful delivery of your product?
‘DevOps’ is a combination of the terms “development” and “operations”, and is a software engineering process to enable combining software development and the operations that surround it in order to deliver a product to the client of a project.
Why do we do it?
Almost all but the smallest projects at Speedwell include DevOps in some form as part of the quote of a project. There are a number of reasons why we use this process. The main reason is that it provides a consistent approach in the delivery of a project. In addition, it can automate a good portion of the ‘operations’ component of the process. This enables faster turnaround times for delivery of builds to our clients.
DevOps is quite integral to the success of a project developed using the agile methodology, due to the nature of many iterations of a product being delivered during the lifetime of such a project. However, DevOps still has a place in projects following the waterfall methodology.
What does it comprise of?
Here is a rough guide of what a typical DevOps process could involve:
- Code – includes source code management.
- Build/compile – usually achieved through continuous integration.
- Automated testing - can include unit, integration and system testing via testing tools.
- Package – typically automated through tools.
- Release (deploy to server) – also typically automated.
How do we achieve it?
A lot of what occurs during a typical DevOps process can be automated, and as a result many tools exist which aid in automating these steps. For example, within the studio, Visual Studio Team Services is widely used, providing numerous tools used throughout the process to assist in the delivery and success of projects.
How does it benefit you?
1. Automation of various steps throughout the process. For example, the Package and Release steps can typically be automated, resulting in:
- the development team being able to address other issues
- quicker delivery of builds
- lower cost to you
2. The inclusion of automated unit testing helps in reducing the number of defects that reach the User Acceptance Testing (UAT) phase and beyond.
3. Greatest gains are achieved in agile projects, due to the process being repeated in each sprint.
What should you be aware of?
An upfront cost is usually involved in setting up such processes. For example, in an agile project, most of these processes would be set up in the first sprint of a project. However, that upfront cost would be made up for, because time will be saved during the later steps of the process (specifically Package and Release). Furthermore, greater benefits would be gained in an agile project, as packaging and releasing is done in each sprint.
DevOps is a process which is largely hidden from view of the client during a project. However, when well-defined and integrated within a project, can greatly assist in timely delivery of builds, and ultimately completion of a project. This is mostly achieved through automating various parts of the process.
Speedwell is a full-service digital development and integration agency. Our specialist areas include business analysis, user experience (UX) research, design and technical development. We work closely with clients to design, build and maintain secure digital solutions and applications that align with their business processes and strategy, and integrate with existing systems.