September 19th, 2019 | by Jarosław Ściślak
DevOps: A Growth Mindset
Table of contents
An IT world is a dynamic beast. One innovation is chased by another, at a revolutionary rate. That’s why you need something to bridle the chaos. CSHARK prioritizes people before software, that’s why we bet on someone instead of something. Our vote goes to DevOps specialists.
DevOps specialists assist the client by supporting the development team. DevOps takes care of software development (Dev side) and information-technology operations (Ops side). The goal is to shorten the software development cycle, guarantee continuous delivery and assure quality software. All at the same time.
Who are DevOps Specialists?
When you start to think about it and attempt to reflect how to do things and what is the most effective way, instead of an easy answer you can find a lot of discussions about contradicting approaches, architectures or way of perceiving things, i.e.:
- Agile vs. Waterfall
- Object-Oriented Programming vs Functional Programming
- Event sourcing vs. CRUD in Databases
Not all of the arguments in this discussion are actually straightforward, i.e.:
SRE is to DevOps what Scrum is to Agile
Let’s leave programming paradigms debate aside, and let’s focus on what gets the biggest attention during last years – the DevOps movement.
DevOps’ work is about generating results. An engineer makes sure that work is done in a professional manner, with up-to-date tools and the right communication. If you make sure of it then the team, being a part of a bigger organization, is a tool of a change for the client.
DevOps is about speed. The business never sleeps; DevOps lets your software development provider deliver software faster and react to market changes in the same manner. Speed can be acquired by adaptation to external circumstances or by rapid software development. This can be achieved with microservices and tools like MAKO – a full product development solution.
DevOps is about good practices. Continuous integration and continuous delivery add safety and reliability. A software development provider who can assure these can address bugs quickly and elevate software quality. He can also automatically build, test, and prepare code for production release.
DevOps is also about predictability and automation. DevOps use code to automate the operating system, operational tasks, and other essentials. The repeatability is important – automation allows DevOps and administrators free themselves from manual configuration of operating systems, system applications or server software.
DevOps can’t be complete without performance monitoring. Taking care of application logs and monitoring code and infrastructure performance is essential. By analyzing data a DevOps Specialist can determine what factors and user behavior drive peaks. What bottlenecks can be avoided, who to improve the code to maintain business goal delivery? Answers to these questions are vital for software availability. Application’s uptime is crucial for business operations therefore DevOps is crucial for achieving their safety.
The software development industry is full of talents – Product Managers, Delivery Managers, Senior Software Developers, etc. All focused on continuous support for multi-environment deployment setup. For years software developers didn’t care about what ‘ops guys’ were doing. DevOps Specialists had substantial programming knowledge but were not focused on the developers’ perspective.
The last decade changed it. Everyone understood that cooperation creates synergy and that in itself creates value for the customer and exceptional results in managing a project. Projects are created faster and smoother. The objectives of the DevOps perception are to speed up the time-to-market, apply incremental improvements in response response to the changing environment, and create a more streamlined development process.
The values behind DevOps are to have teams composed of people with different backgrounds, open to understanding each perspective and tools used by other side. All of them have to understand environmental constraints as well.
You can’t know everything. Sooner or later, you have to specialize. While specializing, it’s not hard to lose interest in what other guys are doing. Having this in mind the DevOps movement is not only about tools, but it’s mainly about mindset.
DevOps Culture
But what is this DevOps culture anyway? In one sentence, DevOps culture is about small, multidisciplinary teams who work autonomously. Such teams take collective accountability for overall user experience.
One blueprint for DevOps transformation does not exist, mainly because there isn’t one blueprint for a company. Imposing DevOps culture in an enterprise looks different than in a medium-size company. Challenges and opportunities differ. According to McKinsey there should be a five-point plan to establish a fully functional DevOps process:
- Changes pushed from the top
- Reimagined trust
- Autonomy and empowerment as a part of the design
- Improvement through testing
- Results over process compliance
There is a consensus that trying to do DevOps by simply introducing DevOps position is an antipattern. It has to be backed by principles of shared responsibility and focus on collective goals. A high level of automation also helps a lot.
OK, but you might wonder what is in the scope of DevOps role anyway. I hope that you understand already that’s is not about the role but about the team.
Very often you may meet DevOps positions having in their description “hard” responsibilities like:
- Ensuring CI/CD pipelines works as expected
- Taking care of the infrastructure
- Writing YAML scripts (especially in K8s environment)
Is it OK to have this much power? Well, you have to remember that hiring someone as Success Manager doesn’t lead your company to success. Giving someone a DevOps position doesn’t instantly shift your organization.
DevOps Specialists from CSHARK
In a wide variety of projects in CSHARK’s portfolio, DevOps had various duties. Clients that have strong management competencies but lack people usually approach CSHARK to get people for short- or long-term collaborations.
We also have projects which are done in more shared-responsibility-model, where our involvement goes way beyond just providing experts. It this model, CSHARK not only supports clients in achieving assumed goals but also participates more interactively with risks.
Case study: once our people joined the client’s DevOps team in his big greenfield project, which was done on Azure Cloud. Due to external constraints, the decision was made to have a final release in the data center. On the one hand, DevOps Specialists participated in discussion with data center infrastructure guys regarding the choice of technology. RedHat OpenShift and PKS Bosh were two favourites. At the same time, it was up to DevOps to ensure that continuous delivery and continuous integration is working smoothly during development in the cloud and being capable of release into on client’s premises at the same time.
Other time, quite often I would say, DevOps mindset and competences of the CSHARK helps new clients pay their technical debt. We have experience working with clients who have half-baked projects, which are based on the legacy stack or old-fashioned “manual release”. In such projects, CSHARK starts from refactoring code increasing unit test code coverage and building continuous integration and continuous delivery pipeline, which reflect current product limitation and allows for further enhancements.
When responsibility is shared, then DevOps usually are more often consulted at the very beginning of the project, when certain architecture or infrastructure decisions have to be made.
Summary
DevOps job is demanding but rewarding. It allows you to work with a broad spectrum of technologies and challenges. At the same time, you have to realize that it’s not only about the position or set of tools but it’s also first and foremost about an attitude focused on winning together as a team.