First, do no harm

Diomidis Spinellis*

*Corresponding author for this work

Research output: Contribution to journalArticleScientific


When we maintain existing code, we must be very careful to avoid breaking or degrading the system we're working on. During development, we can minimize problems through reviews, adherence to style rules, defensive programming, maintenance of backward compatibility, and the preservation of architectural properties. Thorough testing at all levels can catch many issues before they reach the deployment stage. Finally, during deployment, a phased rollout, a back-off plan, and careful planning can minimize the occurrence of catastrophic failures. The Web extra at is an audio podcast of the Tools of the Trade column in which author Diomidis Spinellis discusses how we must be very careful to avoid breaking or degrading the system while working to maintain existing code.

Original languageEnglish
Article number6898723
Pages (from-to)12-14
Number of pages3
JournalIEEE Software
Issue number5
Publication statusPublished - 1 Oct 2014
Externally publishedYes


  • defensive programming
  • deployment
  • maintenance
  • operations
  • reviews
  • software engineering
  • testing


Dive into the research topics of 'First, do no harm'. Together they form a unique fingerprint.

Cite this