Categories: Top ::

Coding: Like lego out of thin air ...
Sun, 03 Jul 2005

The point of this post is just to remark on a couple of thoughts we developers have always had, and how they're coming to pass earlier than we thought. I always said that good developers put themselves out of business, by which I mean that they do a good solid maintainable job and then move on, leaving the resulting application to be supported by sysadmins or runtime staff. Likewise, another old tenet is that developers are like traditional tradesmen - we can make our own tools once given the basics - development tools get better through investment of developer time and every developer hacks out his own helper tools for his toolbox. These two ideas when coupled together always produced a dream where someday developers would create such powerful and easy to use development tools that just about anyone could create new applications - that end users could wave their arms and pop out any old application they needed, provide the components were already available or derivable.

Aside: But first, some quick stories about companies having heart: A neighbour was telling me a story about a cousin of his who worked for one of the Japanese auto-makers here in Canada; after he'd risen up a few ranks they shipped him to Japan for a course, though when he arived a number of shop floor employees were ill. The company president was filling in, since the job had to be done rather than let productivity suffer. I'd like to see the CEO of General Motors pulling his weight on the floors :) I'd like to say that companies these days need to have heart (and/or intelligence - which would prevent things like outsourcing to the point our own children have nowhere to work..) but then you think back to Confenderation Life, one of the original great Canadian companies that went under a decade back -- they had Christmas parties for their employees every year, and it evidently didn't help them compete .. Anyway.


This sort of thing began years ago of course -- think HyperCard on the old Macintoshes or macros in MSWord and MSExcel where you could record a series of actions and 'replay' them later, without a software developer in sight. However, it quickly become apparent that the technology letting applications talk to each other across huge geographic regions and complex database systems was just too complex for untrained folks to automate both quickly and easily, but it had certainly become so easy as to not require 'deep code' software developers to create new applications. Thus came the '4GLs' and later still, script languages - fourth generation languages and scripts akin to coding from a higher level without having to get into the nitty gritty so the 'developer' could focus his time on getting Real Work Done rather than fighting complex systems.

But whats interesting is how things have evolved of late, with companies becoming increasingly uninterested in developing at all - they want to buy off the shelf very well established systems (such as SAP) and pay a monthly support fee instead of developing a system to match their business. A great cost saving idea that avoids long growing pains and expensive deep code developer expertise, with the only problem being that the organization becomes tied to big ticket application vendors who require them to bend their business to match the needs of the application (which seems very backwards..) - the big vendors are hesitant to modify their systems for any given client since they could accidentally introduce bugs to that show up at other clients down the road. Naturally, a company can only use some parts of a mega-suite or face being identical to all other companies who become fully dependant on the same software. In practice, organizes have diverse needs and requirements so require multiple mega-suites in order to operate, thus we get back to the age old problem of needing developers (not 'deep code' developers) to get data shipping reliably between all these systems in real time, 24-7, without fail.

Of course, smart companies like IBM see this as an opportunity and have produced data interchange building blocks, while other companies have created whole data exchange systems that just anyone can set up. Rather than deep code data exchange, we now have solid performer re-usable pipelines and developers just need to glue them all together using the many script languages or medium-to-higher level languages like Visual Basic, C#.net and Java, perl and python etc etc - languages that run in a safer sandbox and recuce development time and complexity and that only get underfoot when trying to get really low level. This is another big shift in the software development industry over the last ten years - from companies deep coding custom solutions, to software component houses deep coding reusable components to sell to companies, to large consulting companies deep coding whole systems and selling them as-is to companies who can outsource to local companies to help set them up and outsource interchange to 'shallow code' developers anywhere.

So back to the original idea we developers all dreamt about 15 years ago -- where users could hand wave at a screen on the wall to drag 'action components' together to assemble new applications. Now we have it, but its not 'end users' doing the assembly since you still need trained folks to boil down ideas from many users into a usable and maintainable applications, and these 'shallow code' developers use simple script languages like Oracle's PL/SQL or PHP or medium level languages like java to tie everything together through IBM MQ-series queues...

... and theres another way to know the Age of the Deep Coder is gone, unless they work at SAP.

As Ronco's Popeil would say -- just set it and forget it, after 4 easy payments..

Now, don't get me wrong .. I enjoy the deep coding, the scripting, the medium coding -- its all in a job well done, thinking through a complex new system to reduce it to simpler well designed pieces, that turns my crank. But the deep coding will be missed..

[ Category: / technology / coding ] [link] [Comments]