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:

  • Understand why code maintenance is a problem
  • Recognise different symptoms of code that is hard to maintain
  • Use code smells to pinpoint code that requires refactoring
  • Identify the qualities of clean code
  • Use guidelines to write more maintainable code
  • Continue learning about better code

Topics covered

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

  • Unmaintainable code
  • Clean code
  • Naming
  • Code comments
  • Code style
  • Code review
  • Managing code maintenance

The optional second day adds:

  • Documentation
  • Explanatory functional tests
  • Management & maintenance budget
  • Software maintenance activities
  • Duplication & refactoring
  • Knowledge management
  • Replacing legacy code

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.

comments powered by Disqus