🗞 Stream Recap: The Three Wrongs of DevOps with Bryan Finster
Engineering Culture #19—Here's what you missed
Thank you to the 39 live attendees. Over 400 people have now watched our conversation a week later.
“If we don't understand deeply the business problem we're trying to solve, we're ineffective as software engineers. It's like telling somebody that you're a civil engineer because you understand how concrete works, but you don't understand the problem of crossing a river.”
Talking Points
“When we started trying to to implement continuous delivery for the first time, I started realizing that all management habits I had were wrong.“
“How do you provide a positive feedback loop from the customers benefiting from CD back to the team in the form of a easily displayable metric?”
“You're supposed to deliver one thing and then get feedback. What does one thing mean?”
“What if you are on a place that doesn't have ay engineering culture? Is there a way to start creating and spreading it? Which steps do you advise to build it? Support from top management?”
“People tell me there's no value in delivering anything until it's feature complete. No, no, no, no. I know it's stable. That's very valuable.”
“Unfortunately I have also seen some developers taking advantage of "agile" to do less and so we (the rest of the team) have much more work to do. Without individual performance checks, how can we overcome this?”
“[….] The other part is, I want to make sure we're on the right track.
I don't want to invest too much money in this idea. I don't want to assume my idea is correct. I want to assume my idea is incorrect. It's a scientific experiment. I'm trying to invalidate the hypothesis.”
“The cultural aspects discussed in the book [Accelerate] are crucial to success--what are this group's thoughts on these cultural elements described by Westrum's model?”
“The tech lead should be a technical leader. They should be focusing on clearing technical impediments for the team and making sure sure that everybody's growing technically on the team. They're not the HR person. They're the tech lead. And they're also the person who says, ‘Okay, look, I see you're struggling here. How can I help?’“
Recordings
Highlights (AI generated)
Editor: Hey this is Denis, I’m experimenting with adding timestamps to these AI-generated recaps. I am hoping it will help you find key areas of interest faster from the post or email directly, without having to commit to doing that on Linkedin or YouTube.
The key to successful DevOps implementation is admitting when things are wrong, iterating rapidly to become less wrong, and building real product teams with clear communication interfaces.
00:00 Continuous delivery and bridging the gap between business and technology are crucial in DevOps, with a focus on iterating and improving rapidly, getting feedback quickly, and prioritizing business goals over perfection.
Bryan and Adrian discuss their experiences with continuous delivery and the importance of bridging the gap between business and technology in a Tech-driven company.
The three wrongs of DevOps are based on handling a narrower problem, focusing on the why behind continuous delivery, and aligning pain points with the three wrongs.
Requirements can become irrelevant over time, and it's important to get feedback on both engineering changes and business features as rapidly as possible.
Focus on continuous delivery and the ability to quickly repair production, rather than striving for perfection before delivery, in order to meet business goals in a rapidly changing market.
The team needed to deliver every two weeks, but they wanted to go daily, and the project manager quit because they didn't want to follow the two-week timeline.
16:37 Understanding user stories and acceptance criteria, chasing value in project delivery, bridging the gap between business and development teams, and forming autonomous, self-orienting teams are crucial for successful DevOps implementation.
Requirements in DevOps should be focused on user stories and acceptance criteria, as they often change quickly and can lead to misunderstandings between teams and product owners.
The importance of chasing value in project delivery and the need for software engineers to understand the business problem they are trying to solve.
Understanding the business and problem space is crucial for successful continuous delivery, and bridging the gap between the business and development teams is essential for creating acceptable products.
Every handoff in the supply chain of information degrades the fidelity of the information, and the best solution is to hire a senior engineer and form a team around them to implement continuous delivery and ensure competent people are involved.
34:12 Learning continuous delivery and flow principles is crucial for career growth, collaboration between business and tech is essential for success, behavior driven development can solve requirements changing problems, feedback cycle and collaborative problem-solving are important in engineering culture, and treating all team members equally is crucial for communication and delivery.
Learning continuous delivery and the principles of flow is more important for career growth than just learning to code, as it requires team experience and cannot be learned in isolation.
Requirements changing problems in product development can be categorized as scope creep, misunderstanding of needs, and delivering features that are no longer needed, and behavior driven development can help solve these issues by involving the right people and avoiding isolation in generating requirements.
Contract workers were separated from the team due to legal reasons, causing communication and delivery issues, highlighting the importance of treating all team members equally.
Frequent face-to-face meetings and open communication among product engineering and QA teams, along with defining how to test before coding, led to improved testing and the ability to go to production multiple times a day with high confidence.
54:03 Leadership support and active listening are crucial for successful DevOps, with a focus on enabling better testing, implementing trunk based development, and driving actual change and improvement.
The team, including developers, testing leads, and product owners, should be responsible for testing, with QA engineers enabling better testing rather than doing it themselves, and automation should be prioritized to avoid last-minute heroics before deployment.
Help developers learn how to test for continuous integration, ensure they are testing correctly, and implement trunk based development for CD, even in a dysfunctional organization.
Leadership must be willing to support and drive actual change and improvement in order to successfully implement a cultural shift towards DevOps.
Leadership support and active listening are crucial for successful DevOps, and if you don't have that, it's better to find a better place to work.
Engineers need to seek out challenging problems and good leadership in order to avoid learning bad habits and reinforcing a damaging environment.
Developers who make decisions, plan ahead, and actively shape the outcome of the company cannot be substituted by AI, and the focus should be on teaching developers how to test themselves rather than siloing knowledge.
01:03:01 Empower teams to own business problems, address attitude differences, and prioritize technical impediments for success in product development.
Hold them accountable for their decisions, and create short feedback loops to measure progress and address issues.
Isolation and indifference in a team can lead to failure, but continuous integration and collaboration can drive success in product development.
Team leaders need to address differences in attitudes between high performers and slackers, and a tech lead should focus on clearing technical impediments and helping team members grow.
01:18:20 High performing DevOps teams require collaborative individuals, addressing dysfunction, and establishing a strong company culture from the start.
High performing teams require individuals who are interested in learning and working collaboratively, and it is important to address and remove any team members who are not contributing positively to the team dynamic.
Setting the right incentives and implementing continuous delivery can help address dysfunction and improve teamwork in DevOps.
High performing teams require everyone to be correct and on time, with three silos causing complexity.
Different mental models within teams lead to triage loops, delays, and incorrect deliverables, impacting the effectiveness of DevOps.
Cross-functional product teams are essential for delivering products, and startups should prioritize establishing a strong company culture from day one, including hiring for cultural fit and specific technical skills.
01:27:33 Start with the right culture and practices from the beginning in DevOps, address conflicts and toxic behavior, support colleagues, and focus on business value metrics for successful teamwork and platform engineering.
Start with the right culture and practices from the beginning, as trying to add them later will only create problems and tech debt.
Engineers in DevOps need to have difficult conversations and address conflicts to prevent toxicity from affecting team performance and personal well-being.
Appreciating and supporting colleagues, creating a supportive culture, and focusing on making others' jobs easier is crucial for successful teamwork in platform engineering.
The four key metrics are like a speedometer for indicating problems, but not for indicating success or what needs to be fixed, and there are other business value metrics for that.
Culture cannot be built or maintained without intentional and ongoing effort, similar to tending to a garden, and it requires being present and actively involved.
Creating and spreading an engineering culture within an organization involves steps such as centralizing delivery platforms, creating special interest groups, and focusing on solving challenging business problems.
01:41:51 Effective communication and understanding the purpose of agile and DevOps are crucial for delivering the right solutions and managing anxiety in development, while also prioritizing team culture, unlearning old behaviors, and focusing on delivering business value.
The importance of effective communication and understanding the true purpose of agile and DevOps in order to deliver the right solutions and manage anxiety in the development process.
Large Enterprises are actually made up of small and medium-sized businesses, and the culture within these businesses can become fractured if not held accountable, with the importance of keeping an eye on team culture to prevent toxicity and ensure alignment with organizational goals.
Unlearning old behaviors and adopting a more collaborative approach is essential for successful DevOps implementation.
Focus on delivering business value, prioritize solving foundational problems, and aim for a better work-life balance as developers.
Archive
You can always find the archive of the Thursday shows on the Stream Recap section and the Wednesday episode on the SnackableCTO. We’re still figuring this out.