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 ;)
You can ﬁnd me at: @mﬂoryan 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 identiﬁed one new reason for bad code you didn’t pay attention to before ☐ You will consider a way to tackle it
Your job 1. Find some bad code 2. Trace it back to a difﬁcult conversation 3. How could you have done it differently?
My example 1. Data transfer via FTP upload of text ﬁles 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 @mﬂoryan • 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
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 ﬂight 4805 http://en.wikipedia.org/wiki/Tenerife_airport_disaster • Air France ﬂight 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 ﬂickr by Jurgen Appelo from ﬂickr licensed under Creative-Commons-by-2.0 license • FIGURE 02.3 The Manifesto for Software Craftsmanship” from ﬂickr by Jurgen Appelo from ﬂickr licensed under Creative-Commons-by-2.0 license • ”bushes from ﬂickr by Rupert Ganzer under Creative-Commons-by-nd-2.0 license • ”Cottontail Rabbit from ﬂickr by Ken Slade under Creative-Commons-by-nc-2.0 license • “Lion” from ﬂickr by Angela Huxham under Creative-Commons-by-nc-sa-2.0 license • ”the ﬁrst standup photo from ﬂickr by Karthik Chandrasekariah under Creative-Commons-by-nc-2.0 license • Trafﬁc light stacking photo from ﬂickr 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 Difﬁcult 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 speciﬁed 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.