Where Bad Code Comes From
Upcoming SlideShare
Loading in...5

Where Bad Code Comes From



This is the slide deck presented at the ACE! 2012 conference in Kraków in June 2012. If you joined the talk use the slides for reference. If you haven't seen the talk and have a chance to see it ...

This is the slide deck presented at the ACE! 2012 conference in Kraków in June 2012. If you joined the talk use the slides for reference. If you haven't seen the talk and have a chance to see it again, allow yourself to be surprised by skipping the slides for now ;)



Total Views
Views on SlideShare
Embed Views



4 Embeds 129

http://www.valueflowquality.com 107
http://www.linkedin.com 15
http://www.valueflowquality.jrshowcase.com 4
https://www.linkedin.com 3



Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Where Bad Code Comes From Where Bad Code Comes From Presentation Transcript

  • Where Bad Code Comes From? June 2012
  • I’m Marcin Floryan http://marcin.flor yan.pl
  • You can find me at: @mfloryan Energized Work Value, Flow, Quality
  • The ACE Conference: #aceconf This presentation: #mfbadcode
  • 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
  • Any developers in the room?
  • Seen any bad code?
  • ?Experienced any bad code
  • ?how bad can it get
  • Mariner 1 $18.5 million
  • Hartford Coliseum $80 million
  • Ariane 5 $500 million
  • “One  bug,  one  crash.  Of  all  the  careless  lines  of  code  this  one  may  stand  as  the  most  devastatingly efficient.   James Gleick
  • North America black-out 55 million people
  • “To  err  is  human,  but  to  really  foul  things  up  you  need  a  computer.   Paul Ehrlich
  • Does your code resemble  this
  • or this…?
  • Building the wrong thing
  • Building the thing wrong
  • what code how
  • “When  people  are  factored  in,    nothing  is  simple.   Ken Schwaber
  • what how code who
  • “A post-modern firm is richin information and reliesheavily on the daily choicesof its knowledgeableemployees. Haridimos Tsoukas
  • Let’s go back in time
  • What’s that rustling in the bushes?
  • F I G H T
  • You’re fed
  • What’s that rustling in the bushes?
  • F L I H T G
  • You’re safe
  • back to reality
  • How about thatRAG report?
  • Running late?
  • Add more people
  • Even more late * *  Consult  the  Brooks  Law  for  details  
  • How about thatRAG report?
  • Already over budget?
  • Let’s squeeze the testing
  • What do you mean quality?
  • But it worked so wellfor the 99% of the time homo sapiens  have been around!
  • Do you ever fly?
  • ? a novice pilot oran experienced captain
  • or perhaps even head of the airline safety program
  • Welcome aboardKLM Flight 4805 Amsterdam to Las Palmas  
  • A bomb in a flower shop    Las Palmas closed
  • Landing at Tenerife
  • law mandated rest period looming
  • decision to re-fuel
  • and a T H I C K fog
  • KLM 747 crashes  into PanAm 747
  • Communicationmisunderstandings deadliest accident in aviation history
  • Junior pilots any better? remember Air France flight 447
  • so how about SoftwareDevelopment
  • ? Ever worked to a tight deadline
  • ? Ever worked on a high stakes project
  • ? Ever worked with senior people
  • meet Bob* the architect * Name changed to protect the innocent
  • “Good, safe social interaction is as necessary to successful development as good technical skills Kent Beck
  • Difficult Conversations
  • Recogniseany of these…
  • How do we tell… our tester you let all these nasty bugs through
  • How do we tell… a new developer you don’t know the framework well enough
  • How do we tell… project manager we are not resources
  • How do we tell… stakeholders your   expectaAons   are   unrealisAc
  • How do we tell… operations we  need  it   live  NOW
  • How do we tell… our client I am unable to add value as a coach
  • weDON’T.
  • instead
  • Time for S O L U T I O N S
  • Ehm… no.Not today.
  • I want you to learn  and we learn best  by doing
  • “One must learn by doing thething; for though you think youknow it, you have no certainty,until you try. Sophocles
  • so instead
  • someH O M E W O R K for you
  • Your job 1.  Find some bad code 2.  Trace it back to a difficult conversation 3.  How could you have done it differently?
  • 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
  • Follow-Up •  Catch me, stop me, talk to me •  Contact me on twitter @mfloryan •  Submit and discuss your ideas bit.ly/ace-homework
  • 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
  • Bibliography
  • So Thank You bit.ly/ace-bad-code
  • 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
  • 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.
  • License This presentation is provided under the Creative Commons Attribution - Share Alike 3.0 Unported License You are free to Share — to copy, distribute and transmit the work to Remix — to adapt the work 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.