In the traditional application development world, Development teams were in charge of gathering business requirements for a software program and writing code. Then a separate Quality Assurance team tested the program in a separate environment. If requirements were met, they released the code for Operations to deploy. Each time a software program is 'thrown over the wall' to an independent team, it adds the potential for a bottleneck in the entire process.
DevOps addresses these challenges by bringing people together with shared responsibility for maintaining the system that runs the software and preparing the software to run on that system with increased quality, feedback and automation. This means that you need to bring together a cross-functional, full-stack team that is able to build, test, and run their product.