Traditionally, enterprise IT and development were separate departments, each responsible for different aspects of a company's operations, and each with a philosophy appropriate to their area of concern. Engineering and software development divisions were responsible for the design and development of products and services; they were naturally experimental and innovative. Enterprise IT departments value stability and continuity above all; the need to keep services up and running engendered a conservative attitude. This division worked well when development followed a "waterfall" approach: with a product being moved through departments, from design to implementation, via testing and quality assurance. However, the rising popularity of the agile development method, with its demand for constant iteration, necessitated a philosophy and a process that oversaw the various departments and ensured they were able to accommodate rapid revision and changing demands through facilitating proper communication and collaboration between departments. DevOps aims to remove the walls between development and operations departments, reducing the silo mentality that can limit a business' responsiveness to market demand.
Iterative development requires that IT departments are able to respond quickly to the demands of the development process, including having the ability to provide flexible and scalable infrastructure on short notice, something which the development of virtualization and cloud technologies makes considerably easier. However, the demand for such responsiveness increases the complexity of IT provisioning, and so a series of best practices guidelines has been implemented to aid the DevOps process and maintain quality assurance. Configuration management is an area within the management structure responsible for maintaining a consistency of implementation and design while a product undergoes iterative development and testing. There is a risk that as a product or service undergoes rapid development and feature addition, there will be a loss of coherence with regard to function, documentation, interfaces, security, hardware requirements, and so on. The job of configuration management is to maintain that coherence throughout the process.
As IT becomes operations, development and operations integrate to become DevOps, and agile development processes are coupled with virtualization technology (as in: the need for tools and procedures to support configuration management, monitoring, and quality control) becomes of paramount importance. ITIL (Information Technology Infrastructure Library) is often used in IT to ensure best practices and aid system administrators in aligning infrastructure with business needs. ITIL can be implemented within an iterative development framework, but companies are finding that a lack of appropriate tools to facilitate communication and collaboration between development and operations is becoming a hindrance to proper quality assurance and configuration management. Going forward, the development of tools to enhance cross-department collaboration, especially in the area of test management, will be crucial.
Keeping a tight rein on IT services and ensuring that they are providing the best value for a business, while being able to cope with the demands of modern development methods will be decisive aspects of a company's competitiveness. DevOps, along with configuration management and best practices frameworks like ITIL, provide the necessary tools for a business to be both responsive to the market and consistent and informed with regard to quality and expenditure.
Follow ScriptRock on Twitter