It’s a pretty solid argument isn’t it - there’s no sense in reinventing the wheel. So, employing reusable code snippets and perhaps more fully blown widgets (into web-based applications) makes a lot of sense.
It is widely agreed that this practice does not negatively affect software creativity and, instead, it enhances the process as it allows developers to get on with the real job in hand i.e. creating something really new.
After all, why bother developing a currency exchange tool for your international trading application when you can ‘implant’ one from elsewhere. Equally, why bother developing a calculator – that’s comparatively simple.
Funny then that Microsoft a couple of years ago used a 12-year old Indian girl in its TechEd keynote to show how well she’d developed her own calculator using MS tools – but let’s not go there.
So what kills software creativity and will robots be writing our code in the future?
Free image use sourced at: wikimedia commons
Look around a little and you might be surprised what people think. Software patents have come in for a hammering in recent times. The problem, as has been highlighted elsewhere, is argued to be that companies try to patent more than just the application itself and want to impose a broad-bush ‘sweeping’ patent that covers any application with the same look, feel and even general approach of the protected patent.
Will this crush upstart developers and stifle individual innovators? Some say it will.
So who is to blame? Is it the team leader and project manager? No – that would be too easy and that would just be blaming the boss – and we all like to do that.
Is it the customer? No probably not. They don’t usually even know what they want in the first place; so labelling them with the “culpable culprits” badge here is probably not appropriate.
I spoke to a few developers on this issue and believe it or not they lay the blame on themselves. Well, not quite – you wouldn’t believe me if I said that anyway would you? OK, they blame the user. Users stifle creativity.
Want to know why? Because they get used to the products they like and they don’t want them changed.
This is not a defence for the enterprise IT vendor who we will know will often push out new versions seemingly ‘for the hell of it’ (under the pretence that little and often is Agile iteration in motion and therefore a good thing)… It is instead a reference to what someone once said to me on the subject of legacy software.
“There is no such thing as legacy systems – there’s just software that works. The rest is new stuff that we don’t like yet and don’t know what to do with.”
I’ve been to too many conferences, meetings and lunches to remember who told me that, but you get the point.
So is creativity being stifled?
Here are some of the views expressed by one or two others I spoke to:
“Your outline touches on a trend I've been seeing for some time. An article in Discover magazine recently mused that software innovation is rarely found in open source software (OSS) projects. This isn't surprising, as often OSS projects are created to build copies of the features that people like from their favourite commercial products. OSS projects rarely invent something new - and if they do, it's often the genesis of a spin-off commercial enterprise. It's my view that people, companies and systems are generally inherently conservative - "if it ain't broke don’t fix it". A sensible view when you consider that our industry has been plagued by failed IT projects that were introduced in the name of progress but which delivered little or nothing.” Dave Robertson, director of European operations for Perforce Software.
“It depends what type of developer you talk to but overall creativity in software development is not dead; in fact in most cases within the agency world it’s quite the opposite. The emergence of various services and open source libraries ensure that the developer, within an agency environment, can focus on the next best thing, the innovation. The mindset of a software engineer may, every now and again, want to be involved in binary manipulation but once the main parsing classes and algorithm has been cracked the rest of the task is menial. The best way of thinking about the libraries and vast offering of off-the-shelf packages is to revert back to the 80/20 rule: 80% of the work will be pre-completed but it’s the 20% which is the clever part, the magic. Ben Jones, technology director, AKQA (the guys that developed the interface for the Xbox)
“Sometimes it's useful to think about what happens in other environments; let's take civil engineering. Now pretty much every time a new bridge is designed, it's different from every other bridge because the locality is unique, even if the designer doesn't want to use new materials or technologies. But to the user, a bridge is a bridge is a bridge. But we don't find bridge designers rushing into court complaining bitterly that some other guy's bridge has the same 'look and feel' as theirs. From a user's point of view, it always does, though. Maybe it's time everybody (but especially lawyers) got real about technological development. On the surface, any device designed for a particular purpose will probably look like any other such device. A Peugeot looks like a Honda. It's what happens under the bonnet that defines the engineering creativity and that's what needs to be protected.” Robin Jones, education officer for the IAP (The Institution of Analysts and Programmers)