Slide 1

Slide 1 text

@systemcraftsman System Craftsmanship Software Craftsmanship in the Cloud Native Era Aykut M. Bulgu Technology Consultant | Software Architect @systemcraftsman

Slide 2

Slide 2 text

@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

Slide 3

Slide 3 text

@systemcraftsman Agile

Slide 4

Slide 4 text

@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

Slide 5

Slide 5 text

@systemcraftsman Agile Manifesto www.agilemanifesto.org

Slide 6

Slide 6 text

@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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

@systemcraftsman Extreme Programming (XP)

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

@systemcraftsman DevOps

Slide 12

Slide 12 text

@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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

@systemcraftsman Cloud Age & Cloud Native

Slide 16

Slide 16 text

@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.

Slide 17

Slide 17 text

@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

Slide 18

Slide 18 text

@systemcraftsman Infrastructure As Code

Slide 19

Slide 19 text

@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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

@systemcraftsman Agile Hallucination

Slide 23

Slide 23 text

@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.

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

@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

Slide 26

Slide 26 text

@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

Slide 27

Slide 27 text

@systemcraftsman Software Craftsmanship

Slide 28

Slide 28 text

@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

Slide 29

Slide 29 text

@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

Slide 30

Slide 30 text

@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?

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

@systemcraftsman DevOps Hallucination

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

@systemcraftsman DevOps is not CI/CD

Slide 35

Slide 35 text

@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)".

Slide 36

Slide 36 text

@systemcraftsman People, Process, Technology

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

@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.

Slide 39

Slide 39 text

@systemcraftsman System Craftsmanship

Slide 40

Slide 40 text

@systemcraftsman The Same Ideology on a New Ecosystem

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

@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

Slide 43

Slide 43 text

@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

Slide 44

Slide 44 text

@systemcraftsman Craftsmanship for People Craftsmanship

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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