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.
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.
magazine listed four key ‘soft’ skills that everyone
working in DevOps requires and none of them are focused on STEM skills. They
Collaboration and Communication
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.
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.
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.
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:
DevOps pain; a lot of manual operations for code building, customization, and setup for various environments.
Development cycle; typically the cycle is between a week to a month – it’s not a rapid development environment.
Version control; we have systems to help, but nothing is integrated with the modern version control systems most development environments use today.
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
started using the UrbanCode family of tools to start automating some of the
integrated the UrbanCode processes with the Rational tools family – RTC
Rational Concert and RQM- Rational Quality Management.
we reduced the number of tools being used so we could focus on using the
remaining ones more effectively.
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.
increased automation left gaps in security so we used DevSecOps to embed
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.
deployment; it’s faster to develop new processes and systems therefore your
business operations can be more efficient.
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.
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.
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
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
Faster time to market on
the original delivery
Lower failure rate of
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
40 x lower failure rate of
50 x greater IT team
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
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.