The recent emergence of the Software Craftsmanship movement in the last decade has been accompanied with quite a bit of confusion on what the movement is exactly about and whether it adds any value beyond previous software development movements, such as Agile and Software Engineering. In this short talk, Andy Maleh will define Software Craftsmanship, compare and contrast to Software Engineering, and provide examples on how both disciplines are playing out at the Groupon software development environment.
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Software Craftsmanship vs Software Engineering (Lightning Talk)
1. Software
Craftsmanship
vs
Software Engineering
(lightning talk)
Andy Maleh
Software Engineer
Groupon
2. Outline
• Definitions of Software Engineering & Craftsmanship
• Similarity and Difference
• Applications at Groupon
3. Definition
• One of the original definitions of Software
Engineering (NATO SOFTWARE ENGINEERING
CONFERENCE 1968):
Software engineering is the establishment of sound
engineering principles in order to obtain
economical software that is reliable and works
efficiently on real machines.
4. Definition
• On Software Craftsmanship by Pete McBreen:
Software development is a craft, it blends science,
engineering, mathematics, linguistics and art.
5. Definition
• The book The Pragmatic Programmer paints
software craftsmanship as similar to traditional
medieval European craftsmanship
6. Similarity
• Shared engineering and craftsmanship goals:
o Meeting customer needs
o Delivering high quality software
o Ensuring timely release
o Minimizing risk of failure
7. Issues with Engineering
• Engineers often seem to believe that they can build
software with complete control and predictability.
8. Issues with Engineering
• Engineers often think that one has to learn many
best practices before successfully building software.
10. Mitigation in
Craftsmanship
• Craftsmen see software development more as an
art that emerges and less as a science that can be
controlled.
• Craftsmen often discover their own best practices.
11. Mitigation in
Craftsmanship
• Craftsmen transcend best practices when they do
not make sense in a new situation.
• Craftsmen rely more on gut feeling and intuition to
succeed.
12. Software Engineering
Revisited
• Even Tom DeMarco, one of the early key figures in
the software engineering world, famous for the
quote "You cannot control what you cannot
measure", recently renounced the controlled
development approach in an article posted by the
IEEE, titled "Software Engineering: An Idea Whose
Time Has Come and Gone?"
13. Key Difference
• While engineering is about the macro goal of
delivering economical software that is reliable and
efficient, craftsmanship is about mastering the
micro process that helps with achieving that macro
goal.
15. Software Engineering at
Groupon
• System Health Measurability
• Usability Design and A/B Testing
• Release Engineering
• Performance Engineering
16. Software Engineering at
Groupon
• Software Architecture
• Verification and Acceptance Testing
• Iterative Development and Velocity Tracking
Website
Deal Service
Order
Service
Mobile
User Service
18. Software Craftsmanship
at Groupon
• Apprenticeship program
• Inter-branch employee swap
• Pair-Programming
• Internal Training Courses
19. Software Craftsmanship
at Groupon
• High Encouragement to Present at Conferences
• Hosting Conferences and Meetups
• Having a few Master craftsmen around
20. Review
• Definitions of Software Engineering & Craftsmanship
• Similarity and Difference
• Applications at Groupon