The Soft Skills You Need To Work in DevOps

IBA Group
Mark Hillary

I have written about DevOps recently on this blog. You can look at my DevOps introduction here, but to summarise the concept, DevOps refers to Development Operations. It is a combined set of software development practices that bring together the development of software with IT operations. The aim is to improve the systems development environment so the software lifecycle can be shorter – it’s bringing software development closer to the business that it serves.

So far it sounds like DevOps is just focused on software development and the environment used to build software systems – it’s all about coding and process. So what are the skills needed to work in DevOps? Logically you might assume that ‘hard’ subjects such as science, technology, engineering, and mathematics (STEM) might dominate, but I read an article recently that turns this expectation upside down.

Tech Beacon magazine listed four key ‘soft’ skills that everyone working in DevOps requires and none of them are focused on STEM skills. They are:

  1. Collaboration and Communication
  2. Empathy
  3. Customer Experience
  4. Problem Solving

Why would these be the essential skills and not coding or process design? Well think for a moment about what I said in the introduction – we are bringing the software development process closer to the business that needs this technology system. So some of the key skills will be focused on that process of getting closer to the sponsoring business people.

Collaboration with people outside the IT team will be essential and the ability to communicate technical problems to non-IT professionals. Empathy implies more listening – especially listening to the people who want the system built for their business. Trying to put yourself in the shoes of the customer so you can improve the customer experience is also an important skill that many people ignore, and the ability to solve problems as they are thrown at you is extremely valuable in any team.

I would argue that these four skills are essential for any DevOps team. If you can find people to join the team with all these skills then it is almost certain they can learn the technical skills you need them to use. If you hire for technical ability only then it will be much harder to create great communicators or problem-solvers through training.

It may seem like the opposite to conventional wisdom, but sometimes the best team members in a technical DevOps team are the least technical.

The Soft Skills You Need To Work in DevOps

Rethinking DevOps To Create A More Efficient Delivery Environment

IBA Group
Yuliya Varonina
DevOps Engineer

People often talk of apps as something new – an area of IT development that has only been around since smartphones became commonly used, but that’s not right. At IBA Group we have been developing apps for over 25 years. Before your iPhone, we were developing apps that could run on mainframe systems – we have over 80 teams and over 100 products in this area.

Every year we bring dozens of young people into our development team, often from those we see at the various hackathons we organize. There are still many new ideas for how to improve development inside mainframe culture.

It’s true that mainframes often look like legacy systems. I know that’s how I felt when I approached my first mainframe project three years ago. The infrastructure is quite complicated and the qualifications to work on these systems are quite specialized. It’s not an easy environment, but our teams are enthusiastic and they embrace new ideas.

Some of the key problems developing in the mainframe environment are:

  1. DevOps pain; a lot of manual operations for code building, customization, and setup for various environments.
  2. Development cycle; typically the cycle is between a week to a month – it’s not a rapid development environment.
  3. Version control; we have systems to help, but nothing is integrated with the modern version control systems most development environments use today.
  4. Limited automation.
  5. Poor visibility and control at all stages of development.

If you also work with mainframe development then you might know about these problems already. So what did we do in our own development environment to try addressing these problems?

  1. Automation; we started using the UrbanCode family of tools to start automating some of the infrastructure tasks.
  2. Integration; we integrated the UrbanCode processes with the Rational tools family – RTC Rational Concert and RQM- Rational Quality Management.
  3. Reducing tools; we reduced the number of tools being used so we could focus on using the remaining ones more effectively.
  4. Scalable Pipeline; we built one project using the new DevOps methods and then assisted all teams to develop their projects this way, so these methods scaled across all development teams.
  5. Security; increased automation left gaps in security so we used DevSecOps to embed security functionality.

I can talk in detail about how we did all this, and the benefits we found, but for the sake of this blog it’s better to just highlight the main benefits we found from this approach to DevOps.

  1. Faster deployment; it’s faster to develop new processes and systems therefore your business operations can be more efficient.
  2. System Thinking; building this DevOps environment creates a culture of system thinking which means that responsibility, transparency, and feedback are all improved. Systems Thinking creates a much more focused team that works together.
  3. Increased Effectiveness; IT development is typically full of waste. People are waiting on others to deliver and they cannot work until a specific part of a project is handed over. Managing pipelines makes deliveries more predictable and allows resource to be allocated more effectively.
  4. Better Quality; We now have more tests, more automation, and User Acceptance Testing. We also trust the pipeline. People are used more effectively and this also increases the quality of deliveries.

We know from our own experience that our team now spends 20% less time on unplanned work and reworking problems. This has led to a 40x reduction in systems failure and the team is 50x more satisfied with their work. Even when a failure occurs, we can now recover 20x faster than before.

The list of benefits from this approach is endless. If this blog has sparked your interest in what is possible then please leave a comment here or get in touch with me. I can give you more detail and also personal experiences of going on this transformation journey.

Yuliya delivers her DevOps presentation at SHARE Pittsburgh 2019

Why Should I Be Thinking About DevOps?

IBA Group
Mark Hillary

What is DevOps? If you don’t directly work on the development of IT systems then this might be a strange concept, but for any executive who needs to purchase new technology systems, or modify existing ones, this is an important concept to be aware of.

In short, DevOps refers to Development Operations. It is a combined set of software development practices that bring together the development of software with IT operations. The aim is to create an environment where the systems development lifecycle can be shorter and more features and updates can be performed – in general, it aims to bring IT development much closer to the business that is being served.

The broad goals span the entire lifecycle of a software project:

  • Increased frequency of project deliveries
  • Faster time to market on the original delivery
  • Lower failure rate of delivered software
  • Shorter lead time between business requests and fixes being applied
  • Faster recovery time when failure does occur

By using a DevOps approach the IT team can maximize the predictability of new releases. Efficiency and security are both increased and the code becomes easier to maintain.

IBA Group has conducted research into the effect of using a DevOps approach to software development – although this research was focused on mainframe DevOps. These are some of the key findings:

  • 20 x faster to recover when software fails
  • 22% less time spent on rework to fix problems
  • 30 x more deployments of new software
  • 40 x lower failure rate of delivered software
  • 50 x greater IT team satisfaction

All this data comes from real mainframe client projects at IBA Group. Deployment becomes more reliable and more frequent when people work together using this type of framework. The IT team uses a form of system thinking, which really means that they create a culture of shared responsibility for the project. This culture encourages transparency and shared responsibility – problems that one team member may have hidden in a regular organization are shared and managed together.

Automation is also an important part of the DevOps culture. The aim is to automate all the routine tasks a developer usually needs to manage. This also creates a far more satisfied developer who can focus on the more interesting and challenging parts of the project. This naturally leads to better quality and performance – enhancing the reputation of the team.

Most executives outside IT are not really familiar with software development practices, but it is becoming more important to understand because a different approach to the way that software development is managed leads directly to business effects, such as better quality, fewer failures, and a team with higher satisfaction in their job. DevOps is well established as a practice with a decade of conferences and articles all exploring how it can be used effectively. If you need to purchase any form of software development from an IT company then how they are managing DevOps should be one of the first things you ask.

Why Should I Be Thinking About DevOps?