- Intellectually complex - it requires innovation while placing severe constraints on the innovator
- Technically difficult - the maintainer must be able to work with a concept and a design and its code all at the same time
- Unfair - the maintainer never gets all the things the maintainer needs, such as documentation
- No-win - the maintainer only sees people who have problems
- Dirty work - the maintainer must work at the grubby level of detailed coding
- Living in the past - the code was probably written by someone else before they got good at it
- Conservative - the going motto for maintenance is "if it ain't broke, don't fix it"
Software maintenance is pretty complex, challenging stuff.
(From Coding Horror)