Peter Hilton - Speaking & training

How to write maintainable code

Training course - learn how to write software that survives

Modern languages’ biggest problem isn’t having enough cool features, it’s unmaintainable code. The core of maintainable code is clean code with good tests, but that by itself is not enough. This training course introduces a range of techniques for writing and improving code for maintainability, including recognising bad code, how to get better at naming, and the few code comments you actually need.

Who should attend

This course is for software developers that work on successful software that isn’t thrown away before it reaches five years old. Developers with little experience of software maintenance will benefit from lessons learned and best practices. Experienced developers and team leads will benefit from the opportunity to consolidate their experience into a focused plan for becoming a better software developer, for themselves and their team members.

Why attend

Attendees will learn the difference between average code and good code that won’t have to be thrown away because no-one understands it any more. Without this training, teams will tend to write code that gradually gets worse, year on year, until it becomes unmaintainable and has to be thrown away, at huge business cost.

After the excitement of early adoption, and the joy of coding among experts comes the horror of your first maintenance project. As Jean-Paul Sartre said*, ‘Hell is other people’s code’. Whether you are a new developer or an experienced team lead, your future developer experience and happiness depends on maintainable code.

After completing this course you will be able to:

Topics covered

This is a one-day course that will cover these subjects:

The optional second day adds:

These topics mix presentations and guidelines with hands-on exercises that ensure that attendees learn how to apply the techniques they learn about. The exact list of topics is subject to change.


Attendees will review and comment on existing code, but are not required to write code. The course does not require knowledge of a particular programming language.

No computers required. The course uses handouts which can be printed or read on a screen.

Share on TwitterShare on LinkedIn