Software industry commentators and analysts alike have argued that, in 2009, the ‘heavy lifting’ in terms of hard coding from the command line has already been done.
The implication of this is argued to be that today’s programmers are left with simplified drag and drop development; inherently requiring less creativity. If this is so, then are we at risk of breeding future generations of programmers with almost no deep-dive knowledge of systems architecture and engineering?
Of course, this scenario does not take in the complete picture. Even those engineers who do use automated development tools need to have an internal knowledge of the APIs and the ‘history’ of the application; to be able to look under the bonnet and gain access to that information store.
Very rarely do you get an application perfected at its first iteration. Enhanced versions evolve as a result of user requirements and changing functionality demands. Version control and configuration and change management (SCCM) are essential to support this process effectively.
Even if today’s software engineers are standing on the shoulders of giant chunks of legacy development, without SCCM to support the process of examining the construction of these building blocks, they may ultimately prove to be shaky foundations in the long term.
Mashups, or the massively integrated multi-protocol systems, such as those used in the airline industry, demand specialist knowledge of their inner workings if they are to be integrated effectively. For sure, this is drag and drop development, but on a hugely complex scale.
Post-mainframe, client server allowed us to split application processing, data and presentation across two tiers. Now, mobile, cloud and virtualised computer structures mean application delivery can be highly dynamic. SCCM is essential for provisioning applications so that they work across an array of devices in different delivery scenarios.
This is creative stuff!
A lot of contemporary development involves repurposing existing applications in new ways. If applications have become unfathomable black boxes where today’s developers have no knowledge of their inner workings, there’s a problem. Having an audit trail of an application’s history is essential for onward development, especially if previous team members have left, and this is where SCCM comes into its own.
I wonder, in that case, if the role of the developer is actually changing? Do some of the people that used to call themselves designers now call themselves developers as a result of snap-on development? As such, is there a risk of programmer complacency as coding becomes a lazy and clunky process with little appreciation of the finer details? While it may be developing to a degree, I would suggest that the vast majority of programmers do have an innate appreciation for the minutiae of a project and a natural interest in the form behind every function.
So I think we can say that software creativity has not gone away, it just operates on a new level. But it is those programmers who seek to gain the deeper knowledge of the systems they work with via SCCM and other core focused technologies that will ultimately lead and guide us towards the new IT promised land.
In truth, we need GUI specialists just as much as we need the back end programmers and everyone in between. After all, a successful development team is typically a blend of many skills and not just one. The key to long-term success is in having a reference point and repository for all the work carried out. With that in place, you are in control to be as creative as you like.
Dave Robertson is VP, International for Perforce Software. And has 20 years experience in developing software and in selling and marketing software development tools with vendors both in Europe and the US.