Monday, April 24, 2006

Wrong Metaphor for Technology (Draft 1)

[apologies, this is more a aggregation of random thoughts, than a proof-read, edited, essay ]

I was thinking the other day that when justifying the cost-benefit of outsourcing IT, a popular metaphor relates the software development process to manufacturing. Treating technologist as interchangeable resources producing widgets. If this were true, it makes economic sense to find the cheapest producers of widgets. Which is a significant amount activity observed in the industry today.

I understand economies of scale, and that using generic products will can achieve "good-enough" quality for the business purpose / requirements. However, there are many industries that employ larger numbers of in-house IT staff to develop custom, to semi-custom solutions. This is the segment I have in mind, while writing this blog. I'm not intending to make a blanket statement, as I'm sure there are several things I have not considered.

Firstly, I feel that software should be a lever used to multiply the power of the business vision/process. Most businesses should strive for the most effective lever, not the cheapest produced one. Some software are widgets, which are basically a cost of doing business (e.g. operating systems in the Financial Services Industry). The business will have to fund them, similar to funding electricity. But is is not the electricity that makes money, it is how it is used.

[N.B. there are several studies out there on this topic, to shorten this post, I'll just spout my opinion]

As a developer, I view the creation of some software as a craft. The true value in (some) software comes from a quality solution to the problem. Yes, it may be more expensive for the development phase, but over the life of the product, it will provide a much more powerful lever to amplify your business, in effect making your business more effective. Which should be the point of software.

Anyway, I was thinking this weekend that a better metaphor, is that of medicine. Medicine is largely technical, largely scientific, and largely artistic. This is how I view software, part technology (advances in Hardware and VM's), part scientific, and part artistic. This artistic aspect of software is the attribute that I think undervalued in the industry.

With medicine most people would strive for the best care possible depending on the issue. If you have a scrape, most people would treat that at home. If you have a gash that requires stitches, most people go to the nearest hospital for stitches, and let any ER doctor action the injury. Yet if you require serious surgery, most people will search for references of the best possible surgeons available. You would not send a manual of how to heart surgery, to people trained as a EMT or Nurse, and say, "they've been trained medically, and this spec is clearly specifies our requirement. We should find the cheapest surgeons possible."

People innately, understand that being a superior surgeon, requires mastery of Anatomy, extensive training and experience, yet there is also artistry in doing an exceptional job.

Yet, in IT, most business, do not take the time identify the different types of problems. All problems appear to require IT attention, there is no difference between a scrapped knee and open heart surgery. Thus, most business only look for the cheapest healthcare possible.

I'm not saying all software should be developed by the "elite surgical teams", but I think the industry would be better served by spending more effort at separating types of problems. Getting elite craftsmen to action the core, transplants of the business they server.

No comments: