Upgrade to Pro — share decks privately, control downloads, hide ads and more …

System Craftsmanship: Software Craftsmanship in the Cloud Native Era

System Craftsmanship: Software Craftsmanship in the Cloud Native Era

Software Craftsmanship Turkey Community Meetup, 2021.

You can access also access the article version of this presentation:

https://www.systemcraftsman.com/2020/05/20/system-craftsmanship-software-craftsmanship-in-the-cloud-native-era/

Follow me on twitter (@systemcraftsman) or subscribe to https://www.systemcraftsman.com/join/ to get any updates from me.

Aykut Bulgu

March 31, 2021
Tweet

More Decks by Aykut Bulgu

Other Decks in Technology

Transcript

  1. @systemcraftsman
    System Craftsmanship
    Software Craftsmanship in the Cloud Native Era
    Aykut M. Bulgu
    Trainer & Instructor | Technology Consultant
    @systemcraftsman

    View full-size slide

  2. @systemcraftsman
    Me as Code
    #oc apply -f aykutbulgu.yaml
    apiVersion: redhat/v2.1
    kind: Services Content Architect
    metadata:
    name: Aykut Bulgu
    namespace: Red Hat Training
    annotations:
    twitter: @systemcraftsman
    email: [email protected], [email protected]
    organizer: Software Craftsmanship Turkey
    founder: System Craftsman
    labels:
    married: yes
    children: 1
    interests: tech (kubernetes/openshift, spring boot, middleware, camel,
    kafka, strimzi, ci/cd, ansible), aikido, gamification, minimalism
    spec:
    replicas: 1
    containers:
    - image: aykut:latest

    View full-size slide

  3. @systemcraftsman
    Agile

    View full-size slide

  4. @systemcraftsman
    Pre-Agile Era
    https://cdn.ttgtmedia.com/rms/onlineimages/whatis-waterfall_model.png
    https://upload.wikimedia.org/wikipedia/commons/1/19/Development-iterative.png?1589829524137

    View full-size slide

  5. @systemcraftsman
    Agile Manifesto
    www.agilemanifesto.org

    View full-size slide

  6. @systemcraftsman
    Agile
    “Agile is not a single thing. Agile is a combination of methodologies and techniques that, according
    to the context, can help teams and companies to adapt to the ever-changing nature of software
    projects and also reduce the risks associated with them. The Agile disciplines and methodologies
    can be divided into two main groups: process-oriented and technical-oriented.”
    - Sandro Mancuso, The Software Craftsman: Professionalism, Pragmatism, Pride, 2014

    View full-size slide

  7. @systemcraftsman
    Methodologies
    Scrum
    Extreme Programming (XP)
    Lean Software Development
    Feature Driven Development (FDD)
    Crystal
    Dynamic Systems Development Method (DSDM)

    View full-size slide

  8. @systemcraftsman
    Extreme Programming (XP)

    View full-size slide

  9. @systemcraftsman
    Extreme Programming Practices
    https://ronjeffries.com/xprog/what-is-extreme-programming/circles.jpg

    View full-size slide

  10. @systemcraftsman
    Continuous Integration
    https://www.qfs.de/fileadmin/Webdata/pictures/en/continuous-integration-circle.png

    View full-size slide

  11. @systemcraftsman
    DevOps

    View full-size slide

  12. @systemcraftsman
    What is DevOps?
    “DevOps is a movement to remove
    barriers and friction between
    organizational silos – development,
    operations, and other stakeholders
    involved in planning, building, and
    running software. Although technology is
    the most visible, and in some ways
    simplest face of DevOps, it’s culture,
    people, and processes that have the most
    impact on flow and effectiveness.”
    - Kief Morris, Infrastructure As Code, 2020

    View full-size slide

  13. @systemcraftsman
    https://miro.medium.com/max/4000/0*OofIfUjypJlixBaV
    It is not just AUTOMATION
    People Process Technology

    View full-size slide

  14. @systemcraftsman
    DevOps and Agile
    https://hackernoon.com/devops101-itinfrastructure-54337d6a148b

    View full-size slide

  15. @systemcraftsman
    Cloud Age & Cloud Native

    View full-size slide

  16. @systemcraftsman
    What is Cloud Native?
    https://www.ethicalhat.com/wp-content/uploads/2020/02/cloud-native-image.jpg
    Any technology or methodology that
    is adapted to run or be used on cloud
    systems and take full advantage of it.

    View full-size slide

  17. @systemcraftsman
    Cloud Age aka. Cloud Native Era
    https://www.cncf.io/wp-content/uploads/2018/03/CNCF-Lanscape.png
    “Cloud Age” encourages a dynamic
    and fast-moving technology era
    -because of the Agile and DevOps
    effect

    View full-size slide

  18. @systemcraftsman
    Infrastructure As Code

    View full-size slide

  19. @systemcraftsman
    Infrastructure as Code
    http://www.ciscoprep.com/2019/10/orchestration-for-iac.html
    Define everything as code
    Continuously validate all work in progress
    Build small, simple pieces that can be changed
    independently

    View full-size slide

  20. @systemcraftsman
    State of the DevOps Report
    Changes both rapidly and reliably is
    correlated to organizational success.

    View full-size slide

  21. @systemcraftsman
    Infrastructure as Code
    A fundamental truth of the Cloud Age
    is: Stability comes from making
    changes.
    - Kief Morris, Infrastructure As Code, 2020

    View full-size slide

  22. @systemcraftsman
    Agile Hallucination

    View full-size slide

  23. @systemcraftsman
    Transformation?!
    https://image.freepik.com/free-vector/illustration-happy-business-team-celebrates-success-stan
    ding-money-rain-banknotes-cash-falling-blue-background_115990-427.jpg
    Many of the companies benefited
    from the Agile transformation and
    could pass to the next phase
    -DevOps- and can now deploy
    software to production multiple
    times in a day as a single unit; as a
    single team.

    View full-size slide

  24. @systemcraftsman
    Post-it Party
    https://i.pinimg.com/originals/9b/90/fa/9b90fa8ecd29cc1aaf39e504eedb4863.png

    View full-size slide

  25. @systemcraftsman
    Agile Hangover
    “And then one day, after a few months,
    or years in some cases, of having fun in
    the Post-It party, teams and
    companies woke up with a massive
    headache—the Agile hangover,”
    - Sandro Mancuso, The Software Craftsman, 2014

    View full-size slide

  26. @systemcraftsman
    Agile Hallucination
    A hallucination is seeing, hearing,
    tasting, smelling or feeling things that
    do not really exist. Usually people have
    to be awake and conscious to have
    hallucinations.
    https://www.canvastar.com/en/salvador-dali-the-persistence-of-memory

    View full-size slide

  27. @systemcraftsman
    Software Craftsmanship

    View full-size slide

  28. @systemcraftsman
    What is Software Craftsmanship?
    https://secure.meetupstatic.com/photos/event/d/d/4/7/600_466496647.jpeg
    “At the Snowbird meeting in 2001, Kent Beck
    said that Agile was about the healing of the
    divide between development and business.
    Unfortunately, as the project managers
    flooded into the Agile community, the
    developers—who had created the Agile
    community in the first place—felt
    dispossessed and undervalued. So, they left
    to form the Craftsmanship movement. Thus,
    the ancient distrust continues”
    - Robert C. Martin, Clean Agile: Back to Basics, 2019

    View full-size slide

  29. @systemcraftsman
    No Practices
    Software Craftsmanship doesn’t have any practices. So it is:
    Clean Code
    Test-Driven Development
    A specific set of technologies or methodologies
    Software Architecture or Design
    A selected group of people
    Religion or Cult

    View full-size slide

  30. @systemcraftsman
    Craftsmanship Mindset
    Think about this, if you were an apprentice
    who works with a master of the handmade
    comb, what would you do? Watch? Learn?
    Ask? Be Better? Reflect as you learn? Expose
    your ignorance? Practice?

    View full-size slide

  31. @systemcraftsman
    Manifesto
    https://manifesto.softwarecraftsmanship.org/

    View full-size slide

  32. @systemcraftsman
    DevOps Hallucination

    View full-size slide

  33. @systemcraftsman
    “Project Roadrunner” of ACME
    https://img.purch.com/o/aHR0cDovL3d3dy5uZXdzYXJhbWEuY29tL2ltYWdlcy9pLzAwMC8yMzUvODA5L2kwMi9XZUMuanBn

    View full-size slide

  34. @systemcraftsman
    DevOps is not CI/CD

    View full-size slide

  35. @systemcraftsman
    DevOps Hallucination
    https://www.battery.com/powered/wp-content/uploads/2018/11/dancing-elephants-770.png
    It is the situation of seeing
    "Dancing Elephant(s)".

    View full-size slide

  36. @systemcraftsman
    People, Process, Technology

    View full-size slide

  37. @systemcraftsman
    The “People”
    DBA
    SA
    DEV SEC
    SE SRE QA
    Teaching Elephants to Dance (and Fly!) - Burr Sutter
    and more...

    View full-size slide

  38. @systemcraftsman
    The Problem(s) of “Project Roadrunner”
    https://www.deviantart.com/mreiof/art/Coyote-Rocket-354871749
    ➢ SW Engineers don’t want to write cloud-related code
    ➢ System Admins/Engineers don’t know how they will
    manage some cloud-related common resources.
    RACI problem
    ➢ System Engineers/SREs or “DevOps Engineers”,
    who are responsible to make the automation for just
    labeling the whole process as “DevOps”
    ➢ Apart from there is an System Engineers/SREs or
    “DevOps Engineers” just don’t care about the tests
    they are not developing applications in the end(!)
    ➢ No real collaboration between Dev and Ops.

    View full-size slide

  39. @systemcraftsman
    System Craftsmanship

    View full-size slide

  40. @systemcraftsman
    The Same Ideology on a New Ecosystem

    View full-size slide

  41. @systemcraftsman
    Well-crafted infrastructure
    Not only well-crafted software,
    but also well-crafted infrastructure

    View full-size slide

  42. @systemcraftsman
    Clean Infrastructure
    To keep an infrastructure codebase clean, you need to
    treat it as a first-class concern. Too often, people don’t
    consider infrastructure code to be “real” code. They
    don’t give it the same level of engineering discipline as
    application code.
    Design and manage your infrastructure code so that it is
    easy to understand and maintain.
    Follow code quality practices, such as code reviews, pair
    programming, and automated testing. Your team should
    be aware of technical debt and strive to minimize it.
    - Kief Morris, Infrastructure As Code, 2020

    View full-size slide

  43. @systemcraftsman
    Some Benefitted Practices
    CI/CD
    Test-Driven Development
    Finding Mentors
    Exposing Ignorance
    Pair Programming
    Infrastructure as Code
    Collective Ownership
    Code Review
    Confronting Ignorance
    Deliberate Practice

    View full-size slide

  44. @systemcraftsman
    Craftsmanship for People
    Craftsmanship

    View full-size slide

  45. @systemcraftsman
    An Extended Manifesto
    https://manifesto.systemcraftsmanship.org/

    View full-size slide

  46. @systemcraftsman
    Blog Post
    https://www.systemcraftsman.com/2020/05/20/system-craftsmanship-software-craf
    tsmanship-in-the-cloud-native-era/

    View full-size slide

  47. @systemcraftsman
    Thank You!
    @systemcraftsman
    [email protected]
    [email protected]

    View full-size slide