Most people look at the word DevOps and think it applies to Developers and Operations. The reality is a little more complicated. DevOps is an integral part of Agile software development. Defined software artifacts and fast pipelines are tools in an iterative, agile process. Can other Agile roles contribute in a DevOps environment? Do the other roles get any benefit out of DevOps?
QA or Quality Engineering is the easiest role to see playing into DevOps. We even have a special flavor of DevOps with QA, DevQAOps. It does not roll off the tongue as well. QA designs the testing to confirm the deliverables conform to requirements. It is so vital to have this closed feedback loop to ensure the project stays on track. Smoke tests can be subsets of the UI or integration tests. Using these tests can help ensure the application can run across different environments. This prevents costly rollbacks in production. A small number of load tests can verify the application will run as expected under higher loads.
Business Analysts are not the first thing to come to mind when one thinks of DevOps. In spite of this, they still play an important role. The business stories provide information for developing the feature and testing strategies. These stories can also determine resources allocated in the production environment. Business Analysts also help by chasing down answers to questions. When one considers developer context switching, this becomes more important to project velocity. The developer continues to code while the analysts finds the answer.
Project Managers have a role to play in DevOps too. As managers, they can help create a more DevOps friendly environment. Automation represents a large upfront cost with an undefined savings throughout the project. Prioritizing automation work moves the DevOps needle in the right direction. Encouraging smaller units of work assists with quicker turnaround of feature delivery. Monitoring provides valuable insight into the health and operation of the application. Holding the team accountable for monitoring pays off with reduced downtime. Additionally, new insights can drive new business features.
So what do these roles get out of DevOps? Having a working pipeline provides focus for the team. Artifact versioning enables testing anytime. Having artifacts available removes the need for developers to create them. This allows more working time during the sprint to keep the new features flowing. Automated deployment ensures one knows exactly what is running in any environment. Good visualization of the pipeline provides immediate feedback. The health of the codebase is no longer a mystery. The quick feedback keeps the problems smaller. Automated testing provides higher confidence in the code.
This is by no means an exhaustive list. These examples should illustrate how a good DevOps plan helps everyone. All roles have an important part to play in the Software Development Lifecycle. After all, software development is a team sport.