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

System Craftsmanship: Software Craftsmanship in...

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.

Aykut Bulgu

May 20, 2020
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 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: [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
  3. @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
  4. @systemcraftsman Methodologies Scrum Extreme Programming (XP) Lean Software Development Feature

    Driven Development (FDD) Crystal Dynamic Systems Development Method (DSDM)
  5. @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
  6. @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
  7. @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
  8. @systemcraftsman State of the DevOps Report Changes both rapidly and

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

    Age is: Stability comes from making changes. - Kief Morris, Infrastructure As Code, 2020
  10. @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.
  11. @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
  12. @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
  13. @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
  14. @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
  15. @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?
  16. @systemcraftsman The “People” DBA SA DEV SEC SE SRE QA

    Teaching Elephants to Dance (and Fly!) - Burr Sutter and more...
  17. @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.
  18. @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
  19. @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