According to word salads and theory, everything is easy. In reality the opposite is usually true, which is why Agile has a ‘fast fail’ mentality. Fail often, fail quickly and eventually find the right solution. This is an integral part of maturity. When you are on a project you will need to develop Proof of Concepts and ‘sandboxes’ to test ideas, technologies, code, integration, tools and anything associated with the project. Failing fast doing hands-on work will entail a reduction of theory, useless training that is not targeted to the project problem statement, expensive consultancy and team time.
Along with setting up proper environments the following is essential on the journey to some level of magic DevOps maturity.
- Make sure the right SMEs are on the team, don’t rely on superheroes who combine 4 or 5 job descriptions or SME roles into one. They don’t usually exist. Have a proper team, with a proper budget with proper roles including; networking, OS, security, Application Dev, Operations, Active Directory (access, SSO), Testing, Business Owner
- Understand and be well trained in Agile-Scrum (processes, tooling, engineering, culture, organization)
- View IT as a manufacturing process line, with SMEs at each station, on-going testing and QA at each station; standard parts; standard machines or tools; a standard way of affixing the various components to the core (the entire manufacturing pipeline)
- Standards should be platform specific, native to the platform, provided by the platform or commonly used on the platform eg. Linux on AWS Operational Management tooling (Nagios etc)
- Dev-Test-Prod environments must be the same
- Dev and Test environments can be set up for specific performance, compliance, security, and user interface (UI) tests
- Unit tests of infrastructure and configuration code along with the application code
- SIT or System Integration Tests with other systems and processes such as code review, issue tracking, and event notification, need to be performed early in the cycle
- Integration with database schema migration (if applicable) needs to be done early
- Automated and manual test cases and testing (with a Testing entry, exit strategy)
- Additional steps for auditing and business approval need to be set up within the Agile-Scrum-Sprint process
- Security is built in from the beginning covering the entire stack and security is on the Agile-Scrum Team (from the CISO).
- Operational runbooks - the Ops part is usually missing from planning and oftentimes, even from Agile teams. Ops is the most essential on-going element of the system build and deployment. Not properly thinking this through means failure.
Magic DevOps, with lyrical odes of ‘push button’, ‘one-step’, ‘automated invocation’, ‘automatic pipeline creation’, ‘integrated operational management’, and the rest is a myth; only achieved in part after years of hard-work; a large investment, all based on the following criteria:
- Long Lived Products – if your product is not long lived, you don’t need a long-lived team.
- Long-Lived-Teams supporting the product, responsible for its technical version development. In this view, Dev is supporting Ops (code level at least) and responsible for the application performance. This helps Dev improve future versions.
- Clear Business Owner who owns the product and has a clear business plan, clientele, purpose.
- Ops, Ops, Ops, and more focus on Ops. Who will manage the deployments, who will manage the OS, the nodes, the security, the maintenance? What are the windows of maintenance and the life-cycle of the application?
- Reporting, Monitoring - an integrated one single pane of glass view of all metrics - with a clear owner.
- Money. You will need budget for training, change management, setting up Agile-Scrum, Jira-Confluence and other licenses, a dedicated project room and Scrum room, tooling licenses, etc.
- Long Term View – if you expect magic DevOps to solve your existing problems within 6 months or 12 months, you will be disappointed. Depending on where you start from it will take years to fully understand how it works, the necessary tooling, testing, and cultural fit for your particular organization.
- Really good SMEs who are culturally in tune with Agile and enthusiastic about learning new technologies, tools and techniques.
There are no short cuts in life. Want to be the World Heavyweight Champion in Boxing? Then be prepared to sacrifice 15 years of your life to get there. Why is being ‘best of breed’ in IT any different?