According to the scènes à faire (stages to make) legal doctrine if you give two reasonable authors the same idea they will write the same novel. This doctrine has been applied to software developers accused of copyright infringement suggesting that given the same technology problem two reasonable developers would code the same solution.
So how is developing a banking user interface on an iPhone different to developing it for the web, for a back office system or for a point of sale device? Of course we all want to say that they are radically different, that they need unique skillsets and that the problems are exceptional and requiring of rare and expensive talents. But the truth is there isn’t much different to developing a solution in COBOL for the Mainframe to developing in Java for Android. Apart from two things.
First the time frames are incredibly short for the development of mobile applications. Time to market in this fashion conscious world is the main driving force and every hour’s delay in delivery can cost millions in lost market share. Perhaps a unique feature of this platform are the creative ways that revenues are generated from software that tends towards free. Enabling those revenue generating abilities is new to the development community but are still just SMOP (simple matter of programming).
Second the tools we use are constantly evolving and the availability of off the shelf component pieces is unparalleled. However there remains one serious shortcoming and that is the availability of a common development platform that enables applications to be delivered to iOS, Android, BlackBerry, Symbian, Kindle, et al in a write-once-run-anywhere way. Part of the reason for this is the lack of commonality of capabilities of the different platforms. Of course the platforms will become more and more similar but some features will remain proprietary on some platforms and open on others.
The universal truth here is that despite all our advances in technologies and methodologies we still develop software in the same way we always have. We start with a problem, we iterate through designs, we implement and refine, we exercise our solution and we deliver. What’s changed are the tools we use and time we have to get it done.
Like my boss once said, “You only have 1 and 0 to worry about – how hard can it be?