Being highly-skilled problem solvers, developers can quickly be inundated with tasks well beyond the scope of building product. It can be a slippery slope as the manager might feel she is just asking for a couple small one off tasks, but then it expands. This will, in turn, start to devour developer productivity.
Developers should code what matters, and focus on building product.
Let’s examine that slippery slope and offer some tips on how to handle it so that developers can remain productive.Developers should code what matters, and focus on building product. Click To Tweet
Without an Operations Team
To start, let’s focus on teams that don’t yet have a ops support team in place yet. For those who have worked in this environment, you know that this is a far from the ideal setup. Instead of spending time coding, developers spend their time tinkering with server configurations, squeezing more performance out of a database, staying on top of security patches for their stack, and more. All of that at the expense of doing what they were hired to do: ship code.
While having a small team is useful for some companies depending on their stage, it quickly becomes clear that someone on the team needs to take on an operations-oriented role. Either this is a developer who starts splitting their development time with operations tasks, a new hire joins the team, or the company outsources the function.
Regardless of how they choose to solve the problem of not having an ops support team, software companies very typically end up with two groups of people: one which is responsible for developing the software, the other which is responsible for managing the operations for that software.
Many companies can end up stuck having developers handling operations because they are getting by.
With an Operations Team
If you are in a position of having a dedicated ops team, it is ideal that they approach operations with a developer-mindset. Often this is where confusion about DevOps can come in. DevOps doesn’t mean you have your product developers doing operations tasks, but rather applying the same process and rigor to managing operations as developers to in writing software.
Operations should collaborate with development and should be continually improving.
Collaborate with Development
Operations should provide guidance to development on constraints and developers should push back on those constraints when justified. This give-and-take approach allows both teams to focus on delivering and operating the best product experience possible.
This collaboration isn’t a one off event but should exist through the entire process from conception through maintenance. Because of this strong collaboration, it is important that your operations team can understand and appreciate how software is written. Sometimes digging into a production issue requires diving into the code.
It is important for your operations team to not only understand operations best practices but also have a background in software development. This enables them to cross the line into the code to assist development teams in debugging production issues, isolating performance problems, etc.
Being able to collaborate with development teams in such a deep and meaningful way will supercharge the productivity of building a great product.
It is important for all groups in an organization to operate with a sense of continuous improvement or Kaizen. An operations team can do this in large part by borrowing best practices from development teams.
Using development processes like Scrum to managing backlog of work to be done can help triaging and prioritization. Using source control for scripts and other artifacts help to track change. Performing peer reviews on those changes enables team growth and shared context. Following DRY (do not repeat yourself) principles provide repeatability and efficiency.
Doing these things, where an operations team applies software development principles to operations, is where we get the term DevOps. It is both important to have an operations team apart from your developers, but also that that operations team is “doing DevOps”.
Code What Matters
When you are just starting out, you are most likely not worried about operations at all. As you get ready to launch, it’s typical for developers to just figure out how to get things running. Often, it’s easy to forget about the continued operations especially if your original developers have moved onto other projects or companies.
Hiring a dedicated operations team can be expensive and is just not practical until you reach a certain size.
This is where Eldarion Cloud fits the bill.
We can provide that dedicated operations team that collaborates with your development team in deep and meaningful ways because, as well as our experience with operations, we are a team of seasoned developers that understand how to ship product.
If you are wanting to unburden your development staff from operations tasks we would love to chat with you to see how we could help make that happen so they can code what matters.