Software Bricklaying?
Every now and then you see an article about how - real soon now - the art of crafting software will be radically de-skilled. They've been appearing for ten years or more -- in the early days, it was going to be because of components. Now that object-oriented environments were enabling people to write little self-contained blocks of code that encapsulated an entire business function, developers would be able to buy some libraries and snap the components together like legos. Now its because of webservices and SOA (service-oriented architectures). Relatively unskilled developers will just mashup a bunch of enterprise services and -voila! - mission critical software applications. Earlier this year, Charlie Bess in the EDS "Next Big Thing" Blog made this prediction yet again. I've never understood this way of thinking. First of all: someone needs to write all these components and services others will use. And my experience dictates that enterprises -- both corporate and non-profit -- will still decide it is cost-effective to build custom services to do things their way, and competitive forces will drive development groups to build new and better services. Service building will be a growth field, both inside and outside the enterprise. It is already. But suppose the overwhelming majority of the building blocks are just there and are just waiting to be put together. Darryl Taft, writing in eweek, suggests that the future software developer will be rather like a bricklayer, just putting software bricks in place, one on top of the other, whistling as he works. As they say in the infomercials, "it's just that easy!" But I'll bet the future of enterprise development will be less like building a wall from a pile of bricks than like assembling a car from a catalog of autoparts, while worrying about safety at high speeds. The idea that the business objects -- the bricks, if you will -- and the end-user application -- the wall -- can be completely separated conceptually is just not true. Read this little piece Shawn McGrath wrote a couple years ago about this. In fact, Jeff Palermo thinks writing software has already gotten too easy. Tools today make custom software too easy to develop. This statement may seem controversial, but I believe it. I’ve seen too many unskilled people take a programming tool and throw together something that seems to work initially. The business folks can’t tell a fraud from an expert or evaluate the work, so they use it and then feel the pain later when they actually have to maintain it... Software is serious, from bank transactions to supply lines to taking orders on the web.I think anyone who has watched their staff work around an ungainly application, or struggled to get a customization really working exactly as it must, knows just what I mean. Tags: nptech, programming |
Comments on "Software Bricklaying?"
You have rubyonrails which can speed up the development time of new application. I do think that enterprise customers will look and measure partners by support if it is that easy to create software there will be cowboys sniffing around.
I do think that writing software will get faster (as gcorry said: ruby on rails!). But I can't imagine it being something people do in their sleep. That said: I think that increasingly sophisticated things will be in the hands of the savvy user.
Oh, I absolutely believe that more and more capability will be made available through easily interfaced functions. Writing software that creates these abilities is exciting.
I may have not laid a proper foundation if you got the impression that inexperienced people will be solving business problems. I am just saying their focus will shift. Just like when software development moved from machine language to 3GLs, the skill set will shift.
With the higher level of abstraction possibilities will come an increased focus on why we write software -- to solve business problems.
Software development will incorporate more delayed assembly. The foundational components need to be created and an effective architecture and governance will be required. It will be different.
What concerns me is that today's zealots (those most effective with today's technology are the most likely candidates to be tomorrow's Luddites.
Charlie -
The first sentence in your comment puts me much at ease... because the tone of some of the articles I see clearly doesimply that as the tedium and grunt work of software development gets relieved by reuse, code generators, refactoring editors, and generally higher levels of abstraction in development tools, major applications will be built by people of a much lower skill set.
It seems to me in fact that the skills that are becoming less valuable - are the ones that are more like software bricklaying.