<!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>