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

Red Hat Summit @ Sites, 2020.

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.

E3afc47cd48ab5a032c7e2078c0d3ce7?s=128

Aykut Bulgu

May 20, 2020
Tweet

Transcript

  1. @systemcraftsman System Craftsmanship Software Craftsmanship in the Cloud Native Era

    Aykut M. Bulgu Technology Consultant | Software Architect @systemcraftsman
  2. @systemcraftsman Me as Code #oc apply -f aykutbulgu.yaml apiVersion: redhat/v2

    kind: Middleware & AppDev Consultant metadata: name: Aykut Bulgu namespace: Red Hat Consulting - CEMEA annotations: twitter: @systemcraftsman email: aykut@systemcraftsman.com, abulgu@redhat.com 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
  3. @systemcraftsman Agile

  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

  5. @systemcraftsman Agile Manifesto www.agilemanifesto.org

  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
  7. @systemcraftsman Methodologies Scrum Extreme Programming (XP) Lean Software Development Feature

    Driven Development (FDD) Crystal Dynamic Systems Development Method (DSDM)
  8. @systemcraftsman Extreme Programming (XP)

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

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

  11. @systemcraftsman DevOps

  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
  13. @systemcraftsman https://miro.medium.com/max/4000/0*OofIfUjypJlixBaV It is not just AUTOMATION People Process Technology

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

  15. @systemcraftsman Cloud Age & Cloud Native

  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.
  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
  18. @systemcraftsman Infrastructure As Code

  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
  20. @systemcraftsman State of the DevOps Report Changes both rapidly and

    reliably is correlated to organizational success.
  21. @systemcraftsman Infrastructure as Code A fundamental truth of the Cloud

    Age is: Stability comes from making changes. - Kief Morris, Infrastructure As Code, 2020
  22. @systemcraftsman Agile Hallucination

  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.
  24. @systemcraftsman Post-it Party https://i.pinimg.com/originals/9b/90/fa/9b90fa8ecd29cc1aaf39e504eedb4863.png

  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
  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
  27. @systemcraftsman Software Craftsmanship

  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
  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
  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?
  31. @systemcraftsman Manifesto https://manifesto.softwarecraftsmanship.org/

  32. @systemcraftsman DevOps Hallucination

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

  34. @systemcraftsman DevOps is not CI/CD

  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)".
  36. @systemcraftsman People, Process, Technology

  37. @systemcraftsman The “People” DBA SA DEV SEC SE SRE QA

    Teaching Elephants to Dance (and Fly!) - Burr Sutter and more...
  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.
  39. @systemcraftsman System Craftsmanship

  40. @systemcraftsman The Same Ideology on a New Ecosystem

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

    infrastructure
  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
  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
  44. @systemcraftsman Craftsmanship for People Craftsmanship

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

  46. @systemcraftsman Thank You! @systemcraftsman aykut@systemcraftsman.com abulgu@redhat.com