<!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> <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> <section data-markdown="" id="bluf"> # Why can't we deploy this today? </section> <section> <section data-markdown> # The story of a bug Starring: - π¦Ήπ»ββοΈ Customer - π¦ΈπΌββοΈ Support Hero - π§βπΌ Product Owner - π©πΎβπ» Sr. Dev - π·π»ββοΈ Jr. Dev - π©πΌβπ System Operator </section> <section data-markdown> - π¦Ήπ»ββοΈ 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 2 Story Points π </section> <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 π </section> <section data-markdown> - π·π»ββοΈ Jr. Dev processes feedback on Thursday 18 May, 10:00 - π©πΎβπ» Sr. Dev merges PR #2345 on Thursday 18 May π - π©πΌβπ System Operator prepares release after Sprint end, and deploys update on Tuesday, 23 May </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 β‘οΈ π©πΌβπ System Operator </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> </section> <section> <section data-markdown=""> # Processes are there for a reason! but whom do they benefit? </section> <section data-markdown=""> # Closed sprint </section> </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> </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>