Issue No.05 - September/October (2009 vol.26)
Diomidis Spinellis , Athens University of Economics and Business
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2009.131
Some consider unmaintainable code a tool that provides job security. At the low level, you can obtain such code through incorrect or inconsistent formatting, naming, and commenting. Complex and gratuitous coupling, lack of assertions, and failure to use a language's type system can further complicate the picture. At a higher level, deep and wide class hierarchies, lack of cohesion, and unhelpful package relationships can hinder maintainability. Finally, at the development process level, lack of version control, subpar build-and-release procedures, a lacking testing infrastructure, and the hiring of mediocre developers will hammer the last nails into a project's maintainability coffin.
job security, maintainability, analyzability, coupling, stability, testability, design, software engineering
Diomidis Spinellis, "Job Security", IEEE Software, vol.26, no. 5, pp. 14-15, September/October 2009, doi:10.1109/MS.2009.131