throw new PaymentApiPersistentBusinessException("payment-api.posRouting.posNotFound.forInstallposRouting. } return pfPosList; } public List<MerchantPosCommissionPosInfo> fi lterForAutoPilot(PosRouting posRouting, List<MerchantPosCommissionPosInfo> availablePosList) { List<MerchantPosCommissionPosInfo> 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
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
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 “
team members upgrades at libraries newly detected bugs scalability needs disaster scenarios growing technical debt #easy to change #competent team #affordable
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 “
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
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 “
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
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 “
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 ?
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 “
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
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 “
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 “
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
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 “
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 “
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
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 “
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 “
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
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