posted on Thursday, April 27, 2006 3:03 PM
by
johnwood
Programmers are Translators not Magicians
Jeffrey Palermo recently wrote about how easy (yes EASY) writing software is these days. While I disagree with his central theme, he's right about one thing: Custom software is a skilled art and needs good programmers to implement.
The key, though, is why do we *need* custom software.
People seem to lose sight of what software actually is: It's something to automate or manage things we would normally have to do ourselves. The software is like a little helper the user hires.
I agree that writing custom bespoke software is for trained people only. But I really don't think we should be writing custom software for most solutions in the first place. Most of the time people just assume there are no tools to implement their applications and they jump right on the 'custom software' solution, and worse still they start their custom software from scratch using C# or Java using little more than the bundled frameworks.
The reality is users are not just hiring these little helpers, they're hiring little translators (programmers) that can tell inexperienced clueless little helpers (the computer) what to do.
If we had more domain-specific tools we would need less custom software. Domain specific tools speak the right language and are experienced. With domain specific tools you don't need the little translators.
Programmers are incredibly expensive for companies. I've been at these companies where they rely on programmers to almost magically produce solutions for their problems. Of course there's no magic, but it seems that way because the technical details of what they're doing is so foreign to them.
The point is, programmers are not magicians - they're translators.
Jeffrey says: "The management has no way to know if a programmer is good or not.". The same way that if I hire a russian translator I would have absolutely no idea if they were good either. The problem isn't with the management, it's with the fact we need a translator in the first place.
If writing software really was so easy, then why is it so expensive? Why does it need a translator? Unlike other trades, like carpentry, software poses a unique opportunity to break down these barriers because of its dynamic nature.
In the future I think custom software will be a very rare thing in business. The next big thing in business software is going to be an explosion of domain specific languages and domain specific tools, tools that make the development of solutions little more than the concise articulation of requirements by business experts. The plumbing, the bits that make it look pretty, all the rest of the details of the software will be there already. They'll just be configuration.
In the distant future there will be no translators or magician programmers. These vertical solution developers won't be needed. Instead there'll be horizontal solution developers creating these domain specific tools and selling them to companies. And even those will have a shelf life.