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.
Michael Feathers advices on creating an organizational process and culture that can enhance software development in a way that reduces technical debt.
Christof Ebert discusses technical debt including a Netscape vs. IE case study and provides a framework with practices for managing technical debt.
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.
George Fairbanks stresses the importance of having a good grasp of various conceptual models in order to be a master-builder, translated into development as “learn your software architecture”.
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.
Felipe Rubim discusses several forms of technical debt, emphasizing that every member of the team should consider it, and suggesting taking concrete steps in measuring and reducing it.