One of the biggest trends in recent years (amidst several others) is DevOps, and the wide proliferation of tools used by DevOps professionals can be highly intimidating to someone just trying to understand what problems DevOps professionals actually solve and what role they play in an organization’s day-to-day operations.

I recently read an article on Toptal’s engineering blog that was really enlightening about DevOps, especially since I was starting to think in a much similar manner myself.

The article took a historical point of view and went as far back as when programmers were scientists who were involved in every single aspect of a software development process, including Coding, Databases, Networks etc. Of course nowadays most of these roles are performed by different professionals, but additionally clients and customers expect rapid evolution of software and gone are the days when everything was developed in a vacuum and then released to the users in the wild. Nowadays, there are so many software development models e.g. Waterfall, Agile, Prototyping etc and a lot of maxims promoting a new, rapid style of software evolution such as “If software is perfect before release, it’s too late”.

Software has to evolve rapidly, and DevOps is primarily a way of thinking, throughout an organization, of how to remove bottlenecks and endangerments to this process. The article also presents a checklist to validate DevOps practices within an organization, and I recommend going through those as well.

I read The Phoenix Project and The Goal recently and I also recommend those books to anyone looking to get started with DevOps. What you gain from reading these two books, above all else, is that DevOps is a way of thinking about processes.