Development cost versus maintenance cost

北慕城南 提交于 2019-11-29 21:22:11
Jesse Naugher

In "Frequently Forgotten Fundamental Facts about Software Engineering" by Robert L. Glass, (an article in IEEE Software May/June 2001), He talks about softwares "60/60" rule, that is that maintenance typically consumes 40 to 80% (60% average) of software costs, and then that enhancement is responsible for roughly 60% of software maintenance costs, while error correction is about 17%.

After 29 years in the industry I can say Maintenance is 60-80% of total cost. Development is at most 20%. But most companies today don't seem to acknowledge that they put the most focus on fast development and set due dates without proper estimation. This forces developers to dump and go, which only makes the maintenance harder. So what do the execs do as a result? They throw away all in-house software and buy 3rd party stuff. Then the nightmare of system integration happens and maybe 4 or 5 years later they will kind-of, sort-of get it all working but the cost to do that is exponentially higher than spending the time up front and doing it right the first time. In the meantime all the seasoned old timers hang up their hats and a new breed of young bucks fly in with the attitude of "we can fix anything". And that, my friend is what they'll be doing for a long time.

This is why Agile eventually won me over because waterfall just doesn't work in software. Never has and never will. It's all about smaller working iterations and parts development. Just like Henry Ford showed us in 1900...

Study the concept of technical debt. Also, try to hang out with sales folks. Chances are that they are not evil or do not care; they just have been exposed to different stuff, have different skills and interests than you. Soft skills matter plenty. The biggest mistakes would be letting them know that "they do not understand computers". The easiest sales guy I ever worked with was ex-QA, so he got a lot of stuff. By the way, the job of sales folks is to bend the truth and keep those dollars coming. It is a delicate balance between not incurring too much technical debt, and not missing business opportunities.

Try getting them to think of software as a car. It may only take a couple of weeks or a month to build it, but whilst it is in use over the following weeks, months and years there is maintenance which will be required. Maybe it's just routine maintenance to keep things running smoothly; but it could also be emergency maintenance when it does something unexpected and needs fixing.

Similarly, it may be all fine when you first get it, but after a little use it will need polishing up to make it how you expected it to be all the time.

What I have experienced is about 35% of the development cost will be spent during the first year of maintenance, 30% in second year, 25% in 3rd year. So, If I spend $1 MM for development, I would be spending 350K during 1st year and so on. After 3 years, the cost again goes up by 5 to 10% every year. Hence, total reengineering of application may be required after 5 or 6 years.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!