Software Craftsmanship vs Software Engineering (Lightning Talk)


Published on

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.

Published in: Technology, Education
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

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.
  9. Issues  with  Engineering •  Some engineers seem to think that best practices apply in every situation.
  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.
  14. Software  Engineering  is   alive  and  WELL  AT   GROUPON
  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
  17. Software  craftsmanship  is  popular  with  GROUPON   engineers
  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
  21. Contact •  Andy Maleh / Software Engineer / Groupon•  Email: amaleh {at} groupon {dot} com•  Twitter: @AndyMaleh•  Blog: