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!