Great Programming Habits
GOTO Copenhagen 2026Bringing software development practises into the 21st century
Are you a seasoned developer who is frustrated at how slow your ‘hyper-performing’ process feels? Are you fighting the dogma of clean code, the zealotry of agile methods, the piety of architectural purism? Then this programme is for you.
Great Programming Habits is a collection of modules that bring software development principles into the 21st century. You will learn new techniques that both enhance and replace existing agile practices, some counterintuitive and some directly at odds with current ‘best practise’! Using a mixture of discussion, instruction and exploration you will start to think differently about design, architecture, development, operations, automation, as well as working with legacy systems and integrating with third parties.
What you will learn
Each class comprises one or more of the following modules along with relevant foundational material.
Foundations
All of these habits derive from a handful of core principles and models. These challenge the economics of software design and development and rethink architecture from a human perspective, based on how detail much you can reasonably hold in your head. We introduce the idea that a codebase has a half-life which determines how easy it is to work with, and which you can directly influence by your choices. You will see that different strategies work in different contexts and you will start to understand how profound and multifaceted that observation can be.
Module 1: Habits for architecture and design
These habits are about how we structure code, from initial architecture and design considerations to techniques for evolving systems as they scale along various dimensions.
Module 2: Habits for writing software
These habits are about programmer behaviour—habits you can develop as a programmer to know when and how to move quickly with confidence and when to take smaller steps; when to copy-and-paste and when to start fresh. We tackle the important issues of uncertainty, ambiguity, feedback, procrastination, and cake.
Module 3: Habits for legacy systems
Most programming happens in Other People’s code bases, with Other People’s code, much of which was there long before the Other People even got there. These habits help make sense of legacy systems, to increase confidence and reduce trepidation when you encounter yet another scary legacy system.
Module 4: Habits for deployment and operations
Writing the software is only part of the challenge. Getting it built, deployed and in the hands of your users carries its own set of challenges; managing it in production has yet more. These habits are about increasing confidence in your path to live and runtime environments.