Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Software Craftsmanship VS Software Engineering

9.485 visualizaciones

Publicado el

Publicado en: Tecnología, Educación
  • Best dissertation help you can get, thank god a friend suggested me ⇒⇒⇒ ⇐⇐⇐ otherwise I could have never completed my dissertation on time.
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Did you know some people make ➢➢➢
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Ted, these are awesome stuff! The plans are easy to read and understand for someone like me Plenty of detailed instructions making it easy to learn the techniques that I'm struggling with. ❤❤❤
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Get Instant Access to 12000 SHED PLANS, Download plans now. =>>
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • Get Instant Access to 12000 SHED PLANS, Download plans now. ❤❤❤
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Software Craftsmanship VS Software Engineering

  2. 2. OUTLINEDefinitionSimilarities and DifferencesApplications at Groupon
  3. 3. DEFINITIONOne of the original definitions of SoftwareEngineering (NATO SOFTWARE ENGINEERINGCONFERENCE 1968):Software engineering is the establishment of sound engineeringprinciples in order to obtain economical software that is reliable andworks efficiently on real machines.
  4. 4. DEFINITIONOn Software Craftsmanship by Pete McBreen:Becoming a good software developer involves a lot more thanjust learning to write programs. Software development is acraft, it blends science, engineering, mathematics, linguisticsand art.
  5. 5. DEFINITIONThe book The Pragmatic Programmer paints softwarecraftsmanship as similar to traditional medievalEuropean craftsmanship where an apprentice learns acraft under the guidance of a master gradually climbinghis way into becoming a skilled journeyman, eventuallybranching off on his own and working towards masteryof the craft.
  6. 6. SIMILARITYShared engineering and craftsmanship goals: • Meeting customer needs • Delivering high quality software • Ensuring timely release • Minimizing risk of failure
  7. 7. ISSUES WITH ENGINEERING Engineers often seem to believe that they can completelystreamline the process of building software, with completecontrol and predictability. And, this belief seems to be processindependent. In other words, even engineers who are strongadvocates of agile often believe that if you do a, b, and c, youwill get the results you want.
  8. 8. ISSUES WITH ENGINEERINGEngineers often think that one has to learnall, most, or many best practices before successfullybuilding software.
  9. 9. ISSUES WITH ENGINEERINGSome engineers seem to think that best practicesapply everywhere or in every situation. Moreexperienced engineers are aware that differentcontexts require different best practices though.
  10. 10. MITIGATION IN CRAFTSMANSHIPCraftsmen see software development more as anart that emerges and less as a science that can becontrolled, so they let time and experience shape uptheir skills in successfully completing softwareprojects.
  11. 11. MITIGATION IN CRAFTSMANSHIPCraftsmen often discover their own best practicesfrom their experiences, which often better fit theirsituations.
  12. 12. MITIGATION IN CRAFTSMANSHIPCraftsmen do not religiously follow even theirown best practices, often transcending them whenthey do not make sense in a new situation anymore.They thus rely more on their intuition and gutfeelings to succeed.
  13. 13. SOFTWARE ENGINEERING REVISITEDEven Tom DeMarco, one of the early key figures inthe software engineering world, famous for the quote"You cannot control what you cannot measure", recentlyrenounced the controlled development approach in anarticle posted by the IEEE, titled "Software Engineering:An Idea Whose Time Has Come and Gone?"
  14. 14. DIFFERENCEWhile engineering is about the macro goal ofdelivering economical software that is reliable andefficient, craftsmanship is about the micro processof mastering the skills to achieve that macro goal.
  15. 15. ENGINEERINGS GOT A BAD REPUnfortunately, engineering got some undeservednegative associations over time: • Strict • Big Up Front Design • Heavy-weight process (Waterfall?) • Everything is predictable • Measure everything
  16. 16. MOSTLY BECAUSE OF THINKING TRAPS Reactive vs Proactive thinking Getting too attached to words instead of seeking the meaningbehind them Accepting education from the media instead of digging forknowledge personally Silver bullet syndrome Black & White thinking
  18. 18. SOFTWARE ENGINEERING AT GROUPON • System Health Measurability
  19. 19. SOFTWARE ENGINEERING AT GROUPON • Usability Design and A/B Testing
  20. 20. SOFTWARE ENGINEERING AT GROUPON • Release Engineering
  21. 21. SOFTWARE ENGINEERING AT GROUPON • Performance Engineering
  22. 22. SOFTWARE ENGINEERING AT GROUPONSoftware Architecture Website Deal Service Order Service Mobile User Service
  23. 23. SOFTWARE ENGINEERING AT GROUPONVerification and Acceptance Testing • As a user who has seen the personalize wizard • When I advance past step 1 • And I refresh the page • And I open the personalize wizard • Then I should see the step I was previously on
  24. 24. SOFTWARE ENGINEERING AT GROUPONIterative Development and Velocity Tracking
  26. 26. SOFTWARE CRAFTSMANSHIP AT GROUPONApprenticeship program
  27. 27. SOFTWARE CRAFTSMANSHIP AT GROUPONInter-branch employee swap
  29. 29. SOFTWARE CRAFTSMANSHIP AT GROUPONInternal Training CoursesOften given by Noel RappinAuthor of Professional Rubyon Rails andRails Test Prescriptions
  30. 30. SOFTWARE CRAFTSMANSHIP AT GROUPONHigh Encouragement to Present at Conferences • Check out my talk Rails Engines Patterns at RailsConf 2012 on Apr 23, 2012
  31. 31. SOFTWARE CRAFTSMANSHIP AT GROUPONHosting Conferences and Meetups • Weekly GeekFest Lunch (public) • Weekly Brown Bag (internal) • Annual Groupon University (internal)
  32. 32. SOFTWARE CRAFTSMANSHIP AT GROUPONHaving a few Masters around • Michael Feathers, author of Working Effectively with Legacy Code, and alumni of Uncle Bob’s Object Mentor software consultancy. • Aaron Bedra, author of Programming Clojure, and contributor to the Clojure programming language.
  34. 34. SOFTWARE APPRENTICESHIP AT GROUPONPotential over Credential6 Months with 3 milestonesA mentor oversees apprentice entire period
  35. 35. SOFTWARE APPRENTICESHIP AT GROUPONApprentice pair-programs with different people indifferent teamsApprentice spends about 50% of his time on hispersonal projectApprentice presents his personal project to seniordevelopers (journeymen) at the milestones
  36. 36. Q & A
  37. 37. REVIEWDefinitionSimilarity and DifferenceApplications at Groupon
  38. 38. REFERENCESWork at Obtiva and GrouponThe Pragmatic Programmer book by Andy Hunt andDave ThomasSoftware Craftsmanship book by Pete McBreenSoftware Apprenticeship Patterns book by DaveHoover and Adewale Oshineye
  39. 39. GROUPON IS HIRINGPotential over CredentialRuby on Rails, Java, or System OperationsAgile, Test Driven Development, Pair ProgrammingPassion to foster a collaborative environment andpartner with business on delivering value
  40. 40. CONTACTAndy Maleh / Software Engineer / GrouponEmail: amaleh {at} groupon {dot} comTwitter: @AndyMalehBlog: