sbqs - software craftsmanship
TRANSCRIPT
APPLYING SOFTWARE CRAFTSMANSHIP PRACTICES TO A SCRUM PROJECT: AN EXPERIENCE REPORTPERCIVAL LUCENA
LEONARDO TIZZEI
IBM RESEARCH
• largest industrial research organization in the world
• 1945 (US) – 2010 (BR)
• 12 labs. 6 continents.
• 9.3 patents per day.
• Inventions: ATM, floopy drive, hard disck, relational database, DRAM, bar code,
• John Backus, Fred Brooks, Grady Booch
SOFTWARE CRAFTSMANSHIP PRINCIPLE
Agile Software Crafsmanship
Working software Well-crafted software
Responding to change Steadily adding value
Individuals and interactions Community of professionals
Customer collaboration Productive partnerships
Pete-McBreen – Software Craftsmanship - 2001
Agile 2008 – Bob Martin - "Craftsmanship over Crap”
2008 - Craftsmanship Manifesto - Doug Bradbury et al
RELATED WORK
• How to apply Software Craftsmanship Principles to a Scrum Project?
• - Guidelines: Clean Code – Robert Martin[Oliveira et al. 2015] – measure Tech Debt on Scrum[Brown et al. 2010] , [Mushtaq and Qureshi 2012] XP practices to solve tech debt
CRAFTSMANSHIP GUIDELINE
Practise Craftsmanship Value SDC Phase
Code of Ethics Community of professionals *
Planning Game Productive partnerships Planning
Agile Modeling Well-crafted software Development
Domain Driven Design Productive partnerships Development
Coding Standards Well-crafted software Development
Static Code Analysis Well-crafted software Development
Code Review Well-crafted software Development
Pair Programming Well-crafted software Development
Test Driven Development Steadily adding value Testing
Automated Integration Test Steadily adding value Testing
Automated Performance Test Steadily adding value Testing
Continuos Integration Steadily adding value Deploy
CASE STUDY
• Mobile Devices Ecommerce App
• A multi-tenant application inside third party e-commerce websites.
• The developer team was composed of ten developers, an architect, a Scrum master, and a Product Owner.
• The team members were distributed in United States and in Brazil and they developed the
• Project duration 12 2-week sprints
CONCLUSIONS
• Scrum an incomplete software development methodology as it does not provide technical practices required by the software development
• Software craftsmanship goal is to improve existing agile manifesto principles raising the bar of quality level delivered to software development projects.
• Our guideline discusses each Software Craftsmanship principles and provides an approach on how to implement it on a Scrum project
• Case study analyzes how guideline was applied to a real project