DevOps is the blending of tasks performed by a company's application development and systems operations teams.
Traditionally in the enterprise, the application development team is in charge of gathering business requirements for a software program and writing code. The development team tests their program in an isolated development environment for quality assurance (QA) and -- if requirements are met -- releases the code to operations for use. The operations team is tasked with deploying and maintaining the program from that point on. The problem with this paradigm is that when the two teams work separately, the development team may not be aware of operational roadblocks that prevent the program from working as anticipated.
The term DevOps is being used in several ways. In its most broad meaning, DevOps is a philosophy or cultural approach that promotes better communication between the two teams.
In its most narrow meaning, DevOp is a job description for an employee who possesses the skills to work as a both a developer and a systems engineer.
The term is also being used to describe a moderator between the two groups who functions as a type of scrum master. In agile software development, the scrum master manages the process for how information is exchanged. DevOps would do the same thing, ensuring that the complete life cycle of the software product remains top-of-mind for both teams.
The necessity for tearing down the silos between development and operations has been expedited by the software-as-a-service (SaaS) delivery model and cloud computing in general. In such a scenario, it is imperative that the developer be aware of how the application will be deployed, scaled and maintained and be able to modify code for any operational roadblocks.