Slide 1

Slide 1 text

} List pfPosList = posList.toList()); if (pfPosList.isEmpty() || MAIN_CARD_BRANDS.contains(bin.getCardBrand().getName())) { throw new PaymentApiPersistentBusinessException("payment-api.posRouting.posNotFound.forInstallposRouting. } return pfPosList; } public List fi lterForAutoPilot(PosRouting posRouting, List availablePosList) { List fi lteredList = availablePosList .stream() . fi lter(mpc -> !PosStatus.AUTOPILOT.equals(mpc.getStatus()) || Objects.isNull(mpc.getPosAutopilotState()) || (posRouting.isThreeDS() ? mpc.getPosAutopilotState().getIsThreeDsUp() : mpc.getPosAutopilotState().getIsNonThreeDsUp())) .collect(Collectors.toList()); if ( fi lteredList.isEmpty()) return availablePosList; return fi lteredList; } UNLEARN SOFTWARE quality redefine what should be really cared LEMİ ORHAN ERGİN CO-FOUNDER, CRAFTGATE

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

What is Software Quality?

Slide 4

Slide 4 text

What is Software Quality? newly written software no bugs, no vulnerabilities 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 dramatic increase in velocity of the team tdd, bdd, atdd

Slide 5

Slide 5 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 “

Slide 6

Slide 6 text

customer satisfaction is ? the goal

Slide 7

Slide 7 text

customer satisfaction is the goal sustainable

Slide 8

Slide 8 text

customer satisfaction sustainable having features customers require working as expected zero bugs no downtime fast performance easy to use adding new features fast good customer support #working as expected #proven fast #right product

Slide 9

Slide 9 text

customer satisfaction sustainable adding new features changing existing features coming/leaving team members upgrades at libraries newly detected bugs scalability needs disaster scenarios growing technical debt #easy to change #competent team #affordable

Slide 10

Slide 10 text

customer satisfaction sustainable software quality is reaching

Slide 11

Slide 11 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 12

Slide 12 text

customer satisfaction sustainable quality cannot be added later start with quality concerns 1 quality is like security, all attempts at later stage is about prevention 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 13

Slide 13 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 14

Slide 14 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 15

Slide 15 text

customer satisfaction sustainable Org. 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 16

Slide 16 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 17

Slide 17 text

customer satisfaction sustainable 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 18

Slide 18 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 19

Slide 19 text

customer satisfaction sustainable 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 20

Slide 20 text

There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies Lecture from part of his 1980 Turing Award Lecture (published in Communications of the ACM, February 1981, pp. 75-83 Reference: Tony Hoare Computer Scientist, Creator of Quicksort, 
 Turing Award Winner 1980 “

Slide 21

Slide 21 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 22

Slide 22 text

customer satisfaction sustainable continuously refactor to keep the design simple 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 23

Slide 23 text

The only test coverage goal that makes any sense is 100%. It’s an asymptotic goal. You’ll likely never get there. But you should never stop trying. Twitter https://twitter.com/unclebobmartin/status/1205922909350293505 Reference: Robert C. Martin Author of Clean Code, Creator of 
 Software Craftsmanship Movement “

Slide 24

Slide 24 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 25

Slide 25 text

If someone says "this code is hard to test", it means "your design simply sucks" His Talk at Devoxx Poland https://www.youtube.com/watch?v=pnRAnP8MgBc Reference: Venkat Subramaniam Programmer, Author, Speaker, Founder Agile Developer “

Slide 26

Slide 26 text

customer satisfaction sustainable write comprehensive test suite keep your design testable 6 learn how to write better tests, not as many as you can 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

customer satisfaction sustainable get the best feedback you ever get learn from customers directly 7 know how customers feel, what they want, what they don’t like

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

customer satisfaction sustainable 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

https://qualizeal.com/wp-content/uploads/2022/whitepapers/ A%20Seamless%20and%20Successful%20Transition%20from%20Quality%20Assurance%20to%20Quality%20Engineering.pdf While Quality assurance only ensures the quality of the product, quality engineering facilitates the development of quality products and the processes. Reference: A Seamless and Successful Transition from Quality Assurance to Quality Engineering White Paper by Qualizeal

Slide 32

Slide 32 text

customer satisfaction sustainable quality makes you go faster make quality a mindset, not a step 9 stop being a gatekeeper, or police. be involved in discussions. more from quality assurance to quality engineering

Slide 33

Slide 33 text

1 Invest in people and organization structure use technologies you are good at release changes early and 
 frequently keep your design testable learn from customers directly don’t fool yourself, 
 stop measuring quality make quality a mindset, not a step 2 3 4 5 6 7 8 9 start with quality concerns keep codebase easy 
 to change TAKEAWAYS KEY

Slide 34

Slide 34 text

THANK YOU FOR SHARING YOUR TIME WITH ME speakerdeck.com/lemiorhan twitter.com/lemiorhan lemi orhan ergin co-founder, craftgate mail: [email protected]