Top 3 DevOps Practices
DevOps is the special forces of software development. Its mission is to breakdown barriers between development and operations to unlock benefits in how we design, develop, deploy and support software.
During my tenure at Hailo, DevOps started as a central team and later transitioned to central team + Scrum team integration.
From day 1, DevOps supported 3 different workstreams:
- Operation tasks
- DevOps specific projects
- Scrum tasks
Operation tasks were broken down into 2 groups with urgent/high/medium/low priorities – 1) technology tasks and 2) various request types from different business areas. DevOps projects focused on 2 areas – 1) improving technical debt of an existing infrastructure and 2) creating a new golang microservices platform supported by automation and extensive tooling. Scrum tasks were assigned by 5 teams with different product and DevOps requirements.
What behaviors enabled an 8 person team (DevOps, security and data specialists) adopt new processes, technologies, architectures and skills? Top 3 DevOps practices: afternoon standups, weekly “show & tell” and Kanban.
1. DevOps Afternoon stand ups
Daily DevOps team standups always happened end of day. As an operations team, it is very difficult to forecast a plan for the day first thing in the morning. For example, a production issue or a team member replacement mid-day due to sickness can derail a day’s plan. Therefore, the probability of a morning update to remain valid by end of day is slim.
Instead, end of day updates are guaranteed to be the most up-to-date. It is an opportunity for the DevOps team to share the following 3 updates:
- Today I …
- I learned …
“Today I …” update called out pertinent daily contributions to the rest of the team – analogous to Scrum’s “Yesterday I … ” update.
“I learned … ” update focused around sharing relevant acquired knowledge. It is a critical update because as an operations team we need to support:
- technical dependencies between DevOps projects and Scrum backlogs
- team member handover across Scrum teams or DevOps projects
Therefore, everyone must have a general awareness of workstream status.
“Blockers” update was identical to Scrum daily standups.
“Top 3 DevOps practices: afternoon standups, weekly “show & tell” and Kanban”
2. DevOps weekly “show & tell”
Given the varied type of tasks on the go to support 3 different workstreams, weekly “show & tell” sessions were scheduled. The goal was for all team members to be up to date on new software in order to support it. The meeting was focused around demos and knowledge share. In general more emphasis was given to DevOps projects and the new golang microservices platform.
3. DevOps Kanban
As a centralized team, we used Scrum for DevOps projects and Kanban for operation and Scrum tasks. As team integration matured we decided to transition to 100% Kanban to support all workstreams. It was a big win for 3 reasons:
Consolidate all our processes into a single flow
Continuous improvement fits DevOps concept and roles
Improvisation (e.g. project planning) fits DevOps modus operandi
During afternoon standups, we projected the Kanban board with the following themed classes of services:
- “Just Do It”
- “On time”
- “Let’s Go”
- “Wish List”
“Just Do It” includes top priority operation tickets that require immediate attention – the goal is to have zero open tickets by end of day. “On time” tickets have a due date assigned. Scrum tasks, business time sensitive requests and DevOps project tasks fit this bucket. “Let’s’ Go” tickets are ready to be picked up and have no due date. Typically, business requests and DevOps project tasks can fit this bucket. Finally, “wish list” tasks primarily included tech debt – tasks that were 3+ months old were deleted.
What are your top 3 DevOps practices?