Software Craftsmanship vs Software Engineering (Lightning Talk)

Post on 08-May-2015

6590 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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.

Transcript

Software  Craftsmanship    

vs    Software  Engineering  

(lightning  talk) Andy Maleh

Software Engineer Groupon

Outline •  Definitions of Software Engineering & Craftsmanship •  Similarity and Difference •  Applications at Groupon

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.

Definition •  On Software Craftsmanship by Pete McBreen:

Software development is a craft, it blends science, engineering, mathematics, linguistics and art.

Definition •  The book The Pragmatic Programmer paints

software craftsmanship as similar to traditional medieval European craftsmanship

Similarity •  Shared engineering and craftsmanship goals:

o  Meeting customer needs o  Delivering high quality software o  Ensuring timely release o  Minimizing risk of failure

Issues  with  Engineering •  Engineers often seem to believe that they can build

software with complete control and predictability.

Issues  with  Engineering •  Engineers often think that one has to learn many

best practices before successfully building software.

Issues  with  Engineering •  Some engineers seem to think that best practices

apply in every situation.

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.

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.

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?"

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.

Software  Engineering  is  alive  and  WELL  AT  

GROUPON

Software  Engineering  at  Groupon

•  System Health Measurability •  Usability Design and A/B Testing •  Release Engineering •  Performance Engineering

Software  Engineering  at  Groupon

•  Software Architecture •  Verification and Acceptance Testing •  Iterative Development and Velocity Tracking

User  Service Mobile

Website

Order  Service

Deal  Service

Software  craftsmanship  is  popular  with  GROUPON  

engineers

Software  Craftsmanship    at  Groupon

•  Apprenticeship program •  Inter-branch employee swap •  Pair-Programming •  Internal Training Courses

Software  Craftsmanship    at  Groupon

•  High Encouragement to Present at Conferences •  Hosting Conferences and Meetups •  Having a few Master craftsmen around

Review •  Definitions of Software Engineering & Craftsmanship •  Similarity and Difference •  Applications at Groupon

Contact •  Andy Maleh / Software Engineer / Groupon •  Email: amaleh {at} groupon {dot} com •  Twitter: @AndyMaleh •  Blog: http://andymaleh.blogspot.com

top related