Poul-Henning Kamp considers that if developers are not getting better, we are going to repeat many of the major IT project failures. He exemplifies with major Denmark project failures.
Alex Papadimoulis attempts to define ugly code, how one can recognize it, providing advice on avoiding writing such code and refactoring old code to get rid of it.
Colin Jones discusses applying the SOLID OOP principles to Clojure programming in order to create systems that are easy to change.
Nat Pryce considers that we cannot write the perfect code because it is never fully prepared for the coming change, so he suggests embracing impermanence & continual imperfection.
Stuart Halloway shares advice on creating evident code that scales. Evident code is software that clearly expresses its meaning and purpose.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
William Pugh explains how to use FindBugs, a Java static code analysis tool, to discover bugs. The talk covers general issues regarding code bugs with advice on how to make sure you get rid of them.
Erik Dörnenburg shares techniques for estimating code quality by collecting and analyzing data using the toxicity chart, metrics tree maps, size&complexity pyramid, complexity view, code city, etc.
Brian Foote wonders in this session if the quest for clean or beautiful code makes sense in a bottom-line obsessed business world.
Ahmed Syed explains how to use testing and defect management in an Agile project to ensure product quality, addressing design quality, legacy systems, and how build management affects quality.
Joshua Kerievsky invites developers to start thinking as entrepreneurs, writing code that is “good enough” for the purpose it is supposed to serve rather than write elaborate code that is beautiful.