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.
James Coplien explains the DCI (Data, Context, Interaction) paradigm used to better represent the user’s mental model in code through system state and behavior. Coplien makes an attempt to reintroduce architecture to Lean and Agile projects due to its value in sustaining high velocity and change resiliency.
Gerard Holzmann discusses Spin, a design analyzer tool, and Scrub, a code review tool, used by Jet Propulsion Laboratory to analyze and fix the software used for critical solar system exploration missions.
Steve Freeman offers advice on writing good tests that make development easier avoiding adding dead weight code that is hard to maintain. Freeman covers the following areas: test readability, complex test data, test diagnostics, and test flexibility.
Magnus Robertsson shows how to control the code architecture manually, statically and dynamically in order to avoid an architectural drift leading to a big-ball-of-mud. For that, he recommends ways to enforce the reference architecture through peer review, code analysis, and zero tolerance to warnings and errors.