"After all, aren't all computer programmers in some sense just "semi-skilled" computer engineers:"
That one sentence betrays the source on much of your misunderstanding. So much so, that countering many of your other statements is pointless in it's light.
If you believe that programming is "semi-skilled", and a branch of electronic engineering, it is easy to see how you can equate software maintenance with re-fueling a vehicle or topping up the fluids. That type of vehicle maintenance is to do with replacement of consumables. Software has no equivalent unless you are going to suggest that putting a new writable CD in the drive or paper in the printer is a "software mainenance" task?
Software maintenance is more akin to re-engineering the suspension when it fails to meet the ride or handling characteristics required; or altering the fuel/air mixture to compensate for high altitude use. To be able to perform this type of maintenance requires the maintainer to have a full understanding of the principles that underly the original design in order that they can re-engineer the appropriate components to compensate for the inadaquacies.
The role of software mainenance often requires greater skills than the original programmer, because an underlying principle of software mainenance is that of "least change". Often the easiest way to correct a bug would be to re-write a large swath of code surrounding it. Doing so entails huge risk, because of knock-on effects, and huge cost, because the larger the scope of the change, the more re-testing and proving requires.
The single biggest source of errors and unnecessary costs in software are those that come about as a result of viewing the mainenance role as a second fiddle, lesser skill. It isn't.
In reply to Re^6: improving the aesthetics of perl code
by Anonymous Monk
in thread improving the aesthetics of perl code
by tcf03
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |