@systemcraftsman System Craftsmanship Software Craftsmanship in the Cloud Native Era Aykut M. Bulgu Trainer & Instructor | Technology Consultant @systemcraftsman
@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
@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
@systemcraftsman Methodologies Scrum Extreme Programming (XP) Lean Software Development Feature Driven Development (FDD) Crystal Dynamic Systems Development Method (DSDM)
@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
@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.
@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
@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
@systemcraftsman Infrastructure as Code A fundamental truth of the Cloud Age is: Stability comes from making changes. - Kief Morris, Infrastructure As Code, 2020
@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.
@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
@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
@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
@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
@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?
@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)".
@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.
@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