Our Builder.ai Tech Talks series uncovers the secret world of software development. We’re diving into how things work and simplifying the process for everyone. Demystifying tech and lifting the lid on how tech teams really spend their time. Spoiler alert - they are every bit as busy as the rumours suggest!
This first episode tackles the complex topic of DevOps with insights from our very own Lead DevOps Engineer, Matt Cockayne.
So, what is DevOps?
If you’re building software in-house, it is all about DevOps. In order to build better software faster, DevOps is the answer. It’s a software development method that combines all aspects of a tech team to create secure code quickly.
DevOps combines development (Dev) and operations (Ops) teams to increase the efficiency, speed, and security of traditional software development.
This unison is brought together to accelerate delivery through automation and collaboration. Here’s how Matt describes it:
“It's a bit like the glue in building a model. It holds the pieces together in a really good way. We actually like to think of it more as superglue, in that it's holding tightly onto those pieces.”
A DevOps (development operations) process helps you improve the flow of your application. It does so by encouraging a collaborative environment across all teams and stages of the development cycle.
DevOps comprises four key principles.
This means automating via computers any coding designs or application builds and any other manual tasks that can slow down the delivery process.
Our DevOps team works hard to ensure they’ve built a strong trust in one another's skills and abilities to make the right calls at the right time. Using dedicated channels they regularly communicate new ideas and tools with each other. This, in turn, leads to open and honest channels of communication, not just within our team, but across the whole company, making any single member of the DevOps team approachable when the need arises.
From automating repetitive and manual tasks to watching performance metrics - DevOps teams are constantly looking for ways to improve their tooling and processes. They start with defining metrics and monitoring them using a variety of tools, sometimes manual, but predominantly automated. Once they have those metrics as a baseline they then strive to improve upon them, whatever they may be. This improvement also applies to self-improvement in finding new tools and tech that can aid them in their goals. In doing so teams are able to find new and innovative approaches to problems and can then evaluate those against the metrics they collect.
Our DevOps Lead Matt described the iteration for improvement for us:
“Typically we are focused on two key areas:
1- Being performance, where we look to optimise the throughput of a piece of our automation to shorten the feedback loop for our developers.
2- Being experience, our developers already have a lot on their plate so we look to make our systems as easy to use with as little cognitive overhead, be that simplifying the deployment of the infrastructure we use, to making the CI pipelines easy to understand and work with.”
4. User needs and feedback loops:
Through creating a seamless process with all the above, DevOps teams can take some time to actually focus on users and their needs. And most importantly, focus on how to give a user or customer what they want.
What does a day in the life of a DevOps lead look like?
“Every DevOps team varies and their roles and responsibilities can be quite diverse. My days are no different and one day can be very different from another.
I’m an ‘early bird’ so I tend to start earlier than my team. This gives me a chance to keep on top of the necessary paperwork that comes with managing a team as well as checking emails and slack messages. I also use it as an opportunity to look at the team's strategic goals, identify any new opportunities that present themselves and work those into our backlog of work. It also presents a great opportunity for some focused time to allow me to pick up tickets and do some practical DevOps– usually in the form of tasks to manage our infrastructure and automated systems. If I’m lucky it will include being able to work on proof of concept projects that we can evaluate against our existing systems in the hope of finding an improvement we can adopt.
Mid-morning will see me checking in with the team, making sure they have everything they need for the day and identifying areas where I can assist with practical tasks they may be working on. We regularly have group sessions to work on refining our backlog and goals but also we use these to discuss and demonstrate findings and progress of the myriad of projects we have on the go at any given moment. These sessions always feed into our future-facing goals to deliver on the company mission of putting an app in the hands of every entrepreneur and every organisation.
I find that this is also a great opportunity to schedule some time to talk with the organisations and companies that we partner with, such as Microsoft Azure and AWS, to provide the services we offer. These become invaluable meetings that we use to be able to learn about new tools and strategies that could be harnessed not only by the DevOps team but also by the company and our customers.
And then it’s lunchtime!
Afternoons tend to be more focused on execution, quite often maintenance tasks, which are not as boring as they sound– I promise. These can be small things like fixing a bug in a system or reviewing the metrics to identify new trends and patterns in our systems, or upgrading some of our core systems to the latest version and introducing amazing new features that enhance our developer experience. This will often involve us working with other teams to make sure that we can maximise everyone's productivity with zero disruption. Which can be quite complex to achieve at times and require a lot of collaboration and coordination over several months to make happen.
Beyond that, you will always find me very, very close to some code. I started my career as a Software Engineer and that remains close to my heart as I still believe that well-designed software encourages well-implemented infrastructure. Which in turn all benefit from good DevOps practices. These things go hand in hand and leading a DevOps team allows me to do all three things in equal measure. It also scratches the “coding” itch by allowing me to create tools and services, using a number of excellent programming languages, to enhance our developer experience and improve all of our automated systems. This can be anything from simple templating tools to help speed up the creation of systems all the way to big behemoths that help to optimise workflow patterns and developer interactions with some of our key systems.
Then on a Friday we always try to find some time to do something sociable towards the end of the day!”
Watch Matt’s interview with our Tech Talks series to dive further into DevOps and ItOps:
Just to note, DevOps teams are a great asset, but there are alternative options to fit any business. If you're not ready to build your own DevOps team as a startup or even as a larger business and already have an over-stretched DevOps team – Builder.ai can help!
Why don’t you get in touch and see what we could do to support you?
Tune in soon for our next Tech Talks instalments where we will peering into how more tech teams have been spending their time. Keep your eyes peeled on our social media!
Constandina is the Senior Content Executive at Builder.ai. With 4+ years of experience in marketing, copywriting and with a special interest in creative writing, she squeezes an audacious personality into any complex topic. Constandina has an MSc from the University of Edinburgh.