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.
Michael Feathers analyzes real code bases concluding that code is not nearly as beautiful as designers aspire to, discussing the everyday decisions that alter the code bit by bit.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
Guilherme Silveira mentions some of the turning points in project development that may affect the quality of the code offering advice on avoiding writing crappy code.
Bernhard Merkle advices on preventing architectural degradation of a project by using tools for constant monitoring of the code, exemplifying with an analysis of Ant, Findbugs and Eclipse.
Alex Papadimoulis discusses avoiding over-engineering a program, presenting extensibility types used, extensibility design patterns, when to use them, and what happens when they are incorrectly used.
Erik Dörnenburg explains how to use various visualization tools to spot patterns, trends and outliers in the code that are an indication of code quality level.
Greg Young talks about .NET’s Contracts library, showing how to use it, what it is good for, and how it improves code quality.
Eoin Woods advices on writing code that preserves the initial architectural design using conventions, dependency analysis, module systems, augmenting the code & checking rules, and language extensions.
Mike Rozlog discusses the need for software audits, proposing five code reviews that every developer should use: Numerical Literal, String Literal, god Method, Shotgun Surgery and Duplicate Code.
Ralph Johnson discusses principles, practices and tools relating to software development starting not from scratch but from already existing code which needs refactoring, maintenance, and sometimes architectural change.