1
0
Fork 0
why-cant-we-deploy-today/index.html

219 lines
7.4 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>reveal.js</title>
<link rel="stylesheet" href="dist/reset.css">
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/black.css">
<!-- Theme used for syntax highlighted code -->
<link rel="stylesheet" href="plugin/highlight/monokai.css">
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown="" id="cover-page">
# Why can't we deploy this today?
</section>
<section data-markdown>
# About me
* Dirk Nederveen, [@dirk@blog.ndrvn.nl](https://blog.ndrvn.nl/u/dirk)
* Husband, father of 3, Streaming Engineer (QA) @Jet-Stream
* Interests:
- Theology
- Neurospychology
- Reading
- Beer brewing
</section>
<section data-markdown="" id="bluf">
# Why can't we deploy this today?
</section>
<section>
<section data-markdown id="story-bug">
# The story of a bug
Starring:
- 🦹🏻‍♂️ Customer
- 🦸🏼‍♂️ Support Hero
- 🧑‍💼 Company/Product Owner
- Dev team: 👩🏾‍💻 Sr. Dev and 👷🏻‍♂️ Jr. Dev
- Ops team: 🙅 QA and 👩🏼‍🚒 System Operator
---
- 🦹🏻‍♂️ Customer calls with a question about sending an invoice on Monday 1 May, 🦸🏼‍♂️ Support Hero logs ticket BS-1234 in
Jira
- 🧑‍💼 Product Owner, 👩🏾‍💻 Sr. Dev and 🦸🏼‍♂️ Support Hero have triage meeting on Thursday 4 May, bug confirmed, priority
'Highest'
- 🧑‍💼 Product Owner and 👩🏾‍💻 Sr. Dev have backlog grooming meeting on Friday 5 May
- Team has Sprint Planning meeting on Monday 8 May, commit to BS-1234 for 1 Story Point
</section>
</section>
<section>
<section data-markdown style="color:red">
# Closed sprint
- Two weeks is fast in context of 6 month CD-ROM releases!
- How long does shipping take for your application?
---
# Closed sprint
- 👍
</section>
</section>
<section id="pull-requests">
<section data-markdown>
- 👷🏻‍♂️ Jr. Dev picks up BS-1234, needs clarification and sends 🦹🏻‍♂️ Customer an email on Wednesday 10 May
- 🦹🏻‍♂️ Customer responds Thursday 11 May, 16:00
- 👷🏻‍♂️ Jr. Dev starts implementation on Monday 15 May, opens PR #2345 in GitHub
- 👩🏾‍💻 Sr. Dev responds to PR #2345 on Tuesday 16 May 16:00, needs improvement
---
# Pull Requests
- Untrusted contributer send in patch
- Trusted maintainer chooses what to merge
- Communication through centralised repositor
---
# Pull Requests
- 👍 Multiple people look at the code
- 👎 Focus on code level, not product level
- 👎 Value spends a lot of time waiting
</section>
</section>
<section id="handoffs">
<section data-markdown="" style="color: red;">
- 👷🏻‍♂️ Jr. Dev processes feedback on Wednesday 17 May, 10:00
- Oh no! 💥 Merge conflict!
- 👩🏾‍💻 Sr. Dev checks PR #2345 and Slacks 👷🏻‍♂️ Jr. Dev on Wednesday 17 May, 15:00
- It's the Ascension Day weekend! 👷🏻‍♂️ Jr. Dev is off to a festival 🕺
---
# Handoffs
</section>
</section>
<section id="shared-responsibility">
<section data-markdown="">
- Monday 22 May: another Sprint Planning meeting. The team commits to BS-1234 again (0 Story points now, "it's basically done")
- Tuesday 30 May: 👷🏻‍♂️ Jr. Dev picks up BS-1234 again, fixes the merge conflict
- Tuesday 30 May: 👩🏾‍💻 Sr. Dev approves PR #2345 and 👷🏻‍♂️ Jr. Dev gets to click the ⛙ Merge button!
- Friday 2 June: Sprint end! Dev team sends the release candidate to Ops team
---
TODO: Chapter about value streams crossing team boundaries
</section>
</section>
<section id="time-to-value">
<section data-markdown="">
- 👩🏼‍🚒 System Operator prepares release after Sprint end, and deploys update on Tuesday, 6 June 07:00
- 🧑‍💼 Product Owner sends the update newsletter Tuesday at 09:00
- 🦹🏻‍♂️ Customer calls again: the bug is not fixed!
---
- 🧑‍💼 Product Owner calls an urgent meeting: Why is BS-1234 (zero points!!) open for over a month?
---
TODO: Chapter about time-to-value
</section>
</section>
<section>
<section data-markdown="">
# Value stream mapping
- How the *value* flows through an organisation
- *Who* holds responsibility
</section>
<section data-markdown="">
* Delays in process
- Closed Sprint
- Asynchronous PR review
- Separate release team
* Hand-offs:
- 🦸🏼‍♂️ Support Hero ➡️ Dev Team
- 👷🏻‍♂️ Jr. Dev ↔ 👩🏾‍💻 Sr. Dev
- Dev Team ➡️ Ops Team
</section>
</section>
<section data-markdown="" style="color:red">
# TODO Processes are there for a reason!
but whom do they benefit?
</section>
<section id="continuous-delivery">
<h1>Continuous delivery</h1>
<div style="width: 80%; float: left" data-markdown="">
* Build quality in
* Work in small batches
* Computers perform repetitive tasks, people solve problems
* Relentlessly pursue continuous improvement
* Everyone is responsible
</div>
<div style="float: right; width: 20%; height: 8em">
<a href="https://www.bol.com/nl/nl/p/accelerate/9200000080652224">
<img src="accelerate.jpg" style="height: 50%;">
</a><br>
<a href="https://www.informit.com/store/continuous-delivery-reliable-software-releases-through-9780321770424?ranMID=24808">
<img src="cd-book.png" style="height: 50%;">
</a>
</div>
</section>
<section data-markdown="">
# What to do this Monday?
* Sketch how a 1-hour bug streams through your org
- Discovery
- Selection/prioritisation
- Implementation
- Verification
- To production
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/notes/notes.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<script src="plugin/highlight/highlight.js"></script>
<script>
// More info about initialization & config:
// - https://revealjs.com/initialization/
// - https://revealjs.com/config/
Reveal.initialize({
hash: true,
// Learn about plugins: https://revealjs.com/plugins/
plugins: [RevealMarkdown, RevealHighlight, RevealNotes]
});
</script>
<script>
document.querySelectorAll('.slides section a[href^="http"]').
forEach(a => a.setAttribute('target', '_blank'))
</script>
</body>
</html>