In the good old days, software development involved the ‘arms-length’ interaction of business analysts, IT operations, programmers and testers. But the thing about the good old days is this: they weren’t all that good. Software routinely took ages to produce and then didn’t work very well. That, fundamentally, is what has given rise to the emergence of the new way of developing software called DevOps.
The word itself provides a very good clue into what it is. A contraction of Development and Operations, DevOps pulls together all the disciplines required to produce functional software. DevOps is about multidisciplinary teams working closely together, which is quite distinct from the tried, tested, and not-so-great idea of functionally separated organisations.
Given that the ‘language’ of programmers, IT operations staff and business analysts can be quite different, one of the major features of DevOps teams is close collaboration to identify business problems, then solve them through the rapid, iterative development of software solutions.
By understanding the role of each member of the team more intimately, the ‘hand offs’ from one to the other becomes seamless; this concept often referred to as being ‘T-shaped’, where the top part of the T represents horizontal knowledge of what the other members of the team are doing, while the bottom part represents the depth of knowledge each specialist has.
DevOps teams typically use more modern approaches to software development, such as ‘agile’; the agile methodology promotes adaptive planning, evolutionary development, early delivery, and continuous improvement, while it encouraging rapid and flexible response to change.
In a world which most of us will recognise as changing fast, DevOps makes a great deal of sense, because it better harnesses the power of communication and collaboration – power which is essential in solving complex business problems. By removing the ‘traditional’ barriers between teams of specialists, DevOps goes some way towards establishing a culture and environment where building, testing, and releasing software happens rapidly, frequently, and more reliably.
Why should you care?
Well, some years ago, Oracle had a tagline that ‘software powers the internet’ and indeed it does. But more than that, today, software powers business – and those companies which are able to produce better software faster, gain an advantage. Indeed, companies practicing DevOps claim benefits such as shorter time-to-market, improved customer satisfaction, better product quality, more reliable releases, improved productivity and efficiency, and the increased ability to build the right product by fast experimentation.
It’s not a question of flipping a switch to DevOps, though, and there will be challenges as there are with any changes to how people work (some will be adaptable…others, perhaps not). However, knowing what DevOps is – and why it is important– is a good place to start.