Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Where Bad Code Comes From

Where Bad Code Comes From

Presentation for the ACE! 2012 conference in Kraków

Marcin Floryan

June 12, 2012
Tweet

More Decks by Marcin Floryan

Other Decks in Programming

Transcript

  1. Acceptance criteria You can give examples of different sources of

    bad code You have identified one new reason for bad code you didn’t pay attention to before You will consider a way to tackle it ☐ ☐ ☐
  2. “One  bug,  one  crash.  Of  all   the  careless  lines

     of  code   this  one  may  stand  as  the   most  devastatingly efficient.   James Gleick
  3. “To  err  is  human,  but  to   really  foul  things

     up  you   need  a  computer.   Paul Ehrlich
  4. “A post-modern firm is rich in information and relies heavily

    on the daily choices of its knowledgeable employees. Haridimos Tsoukas
  5. “One must learn by doing the thing; for though you

    think you know it, you have no certainty, until you try. Sophocles
  6. Your job 1.  Find some bad code 2.  Trace it

    back to a difficult conversation 3.  How could you have done it differently?
  7. My example 1.  Data transfer via FTP upload of text

    files is really clunky 2.  That’s the way things are done around here. We never challenged this. 3.  Ask to understand rationale behind the decision, present viable alternatives
  8. Follow-Up •  Catch me, stop me, talk to me • 

    Contact me on twitter @mfloryan •  Submit and discuss your ideas bit.ly/ace-homework
  9. The Remember Slide • We’re not optimised for writing code • Our

    mental software is mostly legacy code • We don’t talk to each other • We hide our emotions
  10. Resources •  Hartford Civic Center Arena Roof Collapse http://www.eng.uab.edu/cee/faculty/ndelatte/case_studies_project/Hartford%20Civic%20Center/hartford.htm • 

    Mariner 1 http://en.wikipedia.org/wiki/Mariner_1 •  Ariane 5 http://www.around.com/ariane.html •  KLM flight 4805 http://en.wikipedia.org/wiki/Tenerife_airport_disaster •  Air France flight 447 http://en.wikipedia.org/wiki/Air_France_Flight_447 •  2003 North America black-out http://en.wikipedia.org/wiki/2003_North_America_blackout •  The Kludge Tweet https://twitter.com/jmeydam/status/143405066571886592
  11. Picture Credits •  The Bismuth Cristals based on “Wismut Kristall

    und 1cm3 Wuerfel” photo by Alchemist-hp from Wikimedia Commons under FreeArt license •  "FIGURE 02.2 The Manifesto for Agile Software Development” from flickr by Jurgen Appelo from flickr licensed under Creative-Commons-by-2.0 license •  "FIGURE 02.3 The Manifesto for Software Craftsmanship” from flickr by Jurgen Appelo from flickr licensed under Creative-Commons-by-2.0 license •  ”bushes" from flickr by Rupert Ganzer under Creative-Commons-by-nd-2.0 license •  ”Cottontail Rabbit" from flickr by Ken Slade under Creative-Commons-by-nc-2.0 license •  “Lion” from flickr by Angela Huxham under Creative-Commons-by-nc-sa-2.0 license •  ”the first standup" photo from flickr by Karthik Chandrasekariah under Creative-Commons-by-nc-2.0 license •  "Traffic light stacking" photo from flickr by fabi42 under Creative-Commons-by-nc-sa-2.0 license •  “Tenerife747s” picture from Wikimedia Commons by Anynobody under Creative Commons by-sa-3.0 license •  The Difficult Conversations picture is by Olaf Lewitz from XP Days Benelux 2012 available on G+ •  The Coaching Dojo picture is from Olaf Lewitz (By Ole) at XP Days Benelux 2012 available on G+ The remaining pictures are used under the fair use policy or available in public domain.
  12. License This presentation is provided under the Creative Commons Attribution

    - Share Alike 3.0 Unported License to Share — to copy, distribute and transmit the work to Remix — to adapt the work You are free Under the following conditions Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.