Slide 1

Slide 1 text

UNLEARN SOFTWARE QUALITY AND EXCELLENCE LEMİ ORHAN ERGİN co-founder, craftgate v 2023.10

Slide 2

Slide 2 text

every software is a product, and software is expected high quality software quality no one wants low quality food to eat at dinner like every product to be

Slide 3

Slide 3 text

when do we call a software as high quality ? ? software quality What is

Slide 4

Slide 4 text

What is newly written software no bugs, no vulnerabilities, working as expected sonar report A category ~100% code coverage 50,000+ unit tests processed 150+ microservices go + serverless + mongodb + next.js AI-powered codeless test automation platform having a scrum master + running sprints practicing agile {placeholder} dramatic increase in velocity of the team tdd, bdd, atdd software quality

Slide 5

Slide 5 text

newly written software no bugs, no vulnerabilities, working as expected sonar report A category ~100% code coverage 50,000+ unit tests processed 150+ microservices go + serverless + mongodb + next.js AI-powered codeless test automation platform having a scrum master + running sprints practicing agile {placeholder} dramatic increase in velocity of the team tdd, bdd, atdd None of them defines or ensures software quality What is software quality

Slide 6

Slide 6 text

Quality is conformance to requirements, not goodness Book Quality is still free: making quality certain in uncertain times. New York/London, McGraw-Hill, 1996 Reference: Philip Crosby Author, consultant and philosopher Developed practical concepts to define quality and zero-defects concept “ for who ? what is it for ?

Slide 7

Slide 7 text

? the goal what is development in software

Slide 8

Slide 8 text

customer satisfaction is the goal sustainable every software is a product and the goal is having users’ satisfaction continuously

Slide 9

Slide 9 text

customer satisfaction sustainable software quality and excellence is ensuring

Slide 10

Slide 10 text

customer satisfaction sustainable having features customers use working as expected almost zero bugs no downtime fast performance easy to use deploying new features & fixes fast fast customer support from experts #working as expected #proven fast #right product

Slide 11

Slide 11 text

having features customers use working as expected almost zero bugs no downtime fast performance easy to use deploying new features & fixes fast fast customer support from experts customer satisfaction sustainable adding new features evolving existing features no negative impact of leaving team members no negative impact of upgrades at libraries no negative impact of technical debt fixing newly detected bugs fast adding scalability needs recovering fast at disasters #easy to change #competent team #affordable #working as expected #proven fast #right product

Slide 12

Slide 12 text

customer satisfaction sustainable cultural principles to achieve 10 is software development the developer of my lonely and beautiful country

Slide 13

Slide 13 text

Inspection does not improve the quality, nor guarantee quality. Inspection is too late. The quality, good or bad, is already in the product. Book In Out of the Crisis, The MIT Press, 1982 Reference: W. Edwards Deming Widely acknowledged as the leading management thinker in the field of quality “

Slide 14

Slide 14 text

quality cannot be added later start with quality concerns, shift it left 1 quality is like security, all attempts at later stage is about prevention. shift-left philosophy is about being proactive rather than reactive assuring the quality after development does not make software better at quality, it lowers the quality due to last minute patches and makes a late project later

Slide 15

Slide 15 text

The purpose of organization is to reduce the amount of communication and coordination necessary; hence organization is a radical attack on the communication problems. Book The Mythical Man-Month, Anniversary Edition: Addison-Wesley Publishing Company, 1995. Reference: Fred P. Brooks Computer Architect, Author, Turing Award Winner 1999 “

Slide 16

Slide 16 text

http://www.cs.umd.edu/~basili/publications/proceedings/P125.pdf Organizational metrics has more impact on quality than the impact of code churn, code complexity, code coverage, code dependencies and pre-release defect measures Sample Organizational Metrics

Slide 17

Slide 17 text

Deeper level of ownership indicates less diffusion of activities, a single point of approval/control which should improve intellectual control This measure deals with knowledge transfer. Coordination/communication overhead across organizations and synchronization needs amongst individuals lower the quality. Devops culture and pairing can break the bareers.

Slide 18

Slide 18 text

Organizational structure has the biggest impact Invest in people and org. structure 2 work with meticulous, disciplined, fast learners loving collaboration and cultivate a healthy company culture it also allows neighborhood pressure in a good sense

Slide 19

Slide 19 text

Pragmatic innovation is about identifying the technology that actually solves your specific problems. It’s not about technology for technology’s sake, trial and error, or crossing your fingers and hoping for the best. Article https://tecknoworks.com/choosing-the-right-technology-for- your-business/ Reference: Razvan Furca CEO and Chief Innovation Lifeguard at Tecknoworks, leader at digital transformation “

Slide 20

Slide 20 text

be pragmatic and wise use technologies you are good at 3 or select the ones you don’t know, but you can expertise fast how can you claim you can deliver quality when you are not good at the technologies used ?

Slide 21

Slide 21 text

In 2017 we found that, when compared to low performers, the high performers have: • 46 times more frequent code deployments • 440 times faster lead time from commit to deploy • 170 times faster mean time to recover from downtime • 5 times lower change failure rate (1/5 as likely for a change to fail) Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations Jez Humble & Gene Kim “

Slide 22

Slide 22 text

always be ready to deploy to prod release changes early & frequently 4 invest in CI/CD pipeline from day one shorten feedback loops with efficient pipelines and make changes available to customers fast

Slide 23

Slide 23 text

The measure of design quality is simply the measure of the effort required to meet the needs of the customer. Book Clean Architecture Reference: Robert C. Martin Author of Clean Code, Creator of Software Craftsmanship Movement “

Slide 24

Slide 24 text

decrease coupling and increase cohesion to be prepared for the easy changes 5 follow design principles and TDD, separate the code changing frequently from the code holds technology specific complexity, prefer modularity, delay decisions to last responsible moment, design simple simplicity is about achieving loose coupling and high cohesion majority of people do not know what is simple design, what makes it different in reality keep codebase easy to change

Slide 25

Slide 25 text

Being proud of 100% test coverage is like being proud of reading every word in the newspaper. Some are more important than others. Twitter https://twitter.com/kentbeck/status/812703192437981184 Reference: Kent Beck Creator of Extreme Programming, co-author of Agile Manifesto “

Slide 26

Slide 26 text

write comprehensive test suite keep your design testable 6 learn how to write better tests, not as many as you can & automate do not abuse sonar reports, code coverage and any metrics about codebase, prove fast

Slide 27

Slide 27 text

84% of companies that work to improve their customer experience report an increase in their revenue. 96% of customers say customer service is important in their choice of loyalty to a brand. customer-centric companies are 60% more profitable than companies that don’t focus on customers. https://www.forbes.com/sites/blakemorgan/2019/09/24/50-stats-that-prove-the-value-of-customer-experience/ 50 Stats That Prove The Value Of Customer Experience Blake Morgan, Forbes “

Slide 28

Slide 28 text

get the best feedback you ever get touch customers/users directly 7 know how customers feel, what they want, what they don’t like. developers not touching the users develop projects, not products

Slide 29

Slide 29 text

Software design is all about trade-offs and no software quality tool will ever be able to understand the rationale behind each design decision Blog Post Code quality cannot be measured https://www.codurance.com/publications/2014/12/14/ quality-cannot-be-measured Reference: Sandro Mancuso Founder of Codurance and author of “The Software Craftsman” book “

Slide 30

Slide 30 text

quality cannot be measured don’t fool yourself, stop measuring it 8 when a measure becomes a target, it ceases to be a good measure - Goodhart’s Law

Slide 31

Slide 31 text

Social Skill http:// fi rstround.com/review/Why-Every-Startup-Should-Pair-Program .

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

If people program solo, they are more likely to make mistakes, more likely to over design, and more likely drop the other practices, particularly under pressure. Book Extreme Programming Explained https://www.amazon.com/Extreme-Programming- Explained-Embrace-Change/dp/0321278658 Reference: Kent Beck Creator of Extreme Programming, co-author of Agile Manifesto “

Slide 35

Slide 35 text

program in pairs and with team slow down to go faster 9 do together, practice together, learn together, improve together

Slide 36

Slide 36 text

Agile is Dead (Long Live Agility) https://pragdave.me/blog/2014/03/04/time-to-kill-agile.html Reference: Dave Thomas The author of Agile Manifesto Co-Author of The Pragmatic Programmer Instead, let’s use a word that describes what we do Let’s abandon the word agile to the people who don’t do things “

Slide 37

Slide 37 text

No rules are universal Rules need context All experts telling you what to do and how to do are wrong unless it was written for your team, company, project Agile is Dead (Long Live Agility) https://pragdave.me/blog/2014/03/04/time-to-kill-agile.html Reference: Dave Thomas The author of Agile Manifesto Co-Author of The Pragmatic Programmer “

Slide 38

Slide 38 text

What to do: • Find out where you are • Take a small step towards your goal • Adjust your understanding based on what you learned • Repeat Agile is Dead (Long Live Agility) https://pragdave.me/blog/2014/03/04/time-to-kill-agile.html Reference: Dave Thomas The author of Agile Manifesto Co-Author of The Pragmatic Programmer “

Slide 39

Slide 39 text

CREATE YOUR OWN MODEL STOP CHASING SUCCESS FORMULAS YOU ARE SPECIAL, YOU ARE UNIQUE KNOW YOUR TEAM, FEEL YOUR PURPOSE, IDENTIFY YOUR REAL NEEDS, SELECT PRACTICES TOUCHING YOUR OWN NEEDS START TODAY youtube.com/watch?v=6pim0Mbcteg

Slide 40

Slide 40 text

shift from project mindset to product mindset 10 forget about agile {placeholder} stuff

Slide 41

Slide 41 text

1 invest in people and organization structure use technologies you are good at release changes early and frequently keep your design testable touch customers directly don’t fool yourself, stop measuring quality work in pairs and slow down to go faster 2 3 4 5 6 7 8 9 start with quality concerns keep codebase easy to change shift from project mindset to product mindset 10 customer satisfaction sustainable 10 cultural principles to achieve

Slide 42

Slide 42 text

speakerdeck.com/lemiorhan lemi orhan ergin co-founder, craftgate Evolution of Code to Modularity twitter.com/lemiorhan