5 mins read
Many challenges come with your software development process, and your infrastructure management is usually the primary factor responsible.
With different disciplines like networks, hardware, cloud providers, and software involved in infrastructure, a wide range of skills are often required to solve likely challenges that may arise. Understanding the obstacles holding you back will help your organization prepare better and deal with issues before they become too difficult to handle.
Over the years, I have worked with various kinds of companies, each with its different levels of software development process maturity.
So, I have compiled a list of factors to help you identify how your infrastructure is contributing to the friction in your software development process, creating problems, and reducing the productivity, efficiency and morale of your awesome team of developers.
1. It’s Manually Maintained
Over the years, the manual ways of the software development process have changed, and infrastructure has evolved along with it.
However, many companies still rely on these crude methods, making it very challenging for their operations team to keep the infrastructure up to date, since any changes in it have been made adhoc by several teams of operators over the years without necessarily keeping track of what exactly happened.
This is mainly because the infrastructure is not modified in an automated fashion, and the tooling stack ages, if it’s not constantly updated, even if all the infrastructure is running in the cloud!
All of these manual processes affect productivity since it translates into requests made by the development team that will be very difficult to fulfill. As a result, lots of time will be wasted, and all parties will be frustrated.
2. Custom Made Tooling
Another reason why infrastructure is probably holding you back is that your team is used to the already existing or custom-made infrastructure used for server operations, deployment, monitoring, alerting, logging, etc, and they’ve invested so much in it for a long time.
Then, they believe that only a few changes here and there will help them achieve major improvements, which is not always the case.
What they fail to understand is that there are many modern tools and services that specialize in supporting infrastructure efficiently that evolves much faster than a custom tool may ever do since the latter it’s only backed by a small internal team whereas the former is backed by a big community or private company.
Concrete examples I’ve seen are companies trying to maintain their own versions of tools similar to Docker, Testing Frameworks, artifact repositories using a shared file system, or custom monitoring and alerting tools, etc.
There are many modern tools and services that specialize in supporting infrastructure efficiently. So, in a bid to make the tools more attractive, the team tried to keep up with the industry changes, but they’ll find this very challenging.
3. Using Outdated Stack
As noted earlier, a very common occurrence in technology is the fact that a framework that was used a couple of years ago may not be relevant anymore; this also holds true for infrastructure frameworks, especially now that many of these tools are out of the box by cloud providers.
Even if the framework is well-known and widely accepted, a more productive one will be designed to make things much easier and faster. So, when your team decides to stick with an outdated stack, they’ll encounter many challenges supporting the software development process.
4. Missing the Dev in DevOps
The team that supports your day to day operations has a set optimize to do so, but not necessarily the skill to automate such.
People maintain the infrastructure they have through operations. But they need the right software development skills and practices to automate what was done manually.
This is closely related to the first point I made earlier. If every factor is considered and worked upon to make project delivery much easier, automating what was done manually will not be possible if your team does not have the required skills. So, your team’s software development skills and best practices are crucial for automation to be possible.
No doubt, product development requires constant changes, but your team needs the required training in software development skills and practices. In the absence of this, your project will lag.
5. Closed Development
Having the right team and being able to automate your infrastructure is great but it’s not enough. Your DevOps team should be an enabler of the rest of the project.
Ideally, any member of the project with the capabilities to review and suggest improvements should be able to do so by following a simple process. This way, they can have some control of certain environments without a mandatory intervention of the operations team.
Conclusion
If you’re just beginning your software development project, in the middle of it, or still in the planning phase, you should take these indicators seriously.
If you tick a few or all of the boxes on these indicators, you should have a better plan in place towards making your project a huge success.
You can start by writing a plan on becoming a great enabler of your software development team rather than being their nightmare through constant requests for changes.
In summary, if your infrastructure changes are carried out by an operator who uses a UI, you are preventing your dev team from making vital progress. Change this, and you’d be surprised at how happy they’d become. It’s also a good way to retain good talent in your team.
In the next article, I’ll be sharing some of the best ways to tackle these problems and the tools I prefer to use … till next time 🙂

Leave a comment