My work has been very busy lately, there is high demand for mobile and other media innovations that seems to be endless. This is a good thing. The market is hungry and relentless – traditional media has been a big, lumbering beast that recently has the shock of its life with more agile players drying up the “rivers of gold” by diverting many little attention streams from upstream. As with all erosion, eventually the groove is too deep for people to get out of to bother going back to traditional sources. Case in point – large domestic news media organisations are not competing against other large media organisations but against attention diverting social news sites. Added to this the increasing prevalence of super diversion devices such as “always on” smart phones, mobile games platforms, e-books readers, portable media devices and so on. As such, in the past monolithic product development life cycles and industrialisation of server-side software made sense, because all your competitors had to pay the same cost to compete. Those days are over.
The 6 to 9 month long projects, carefully scoped out and made “industrial”, to scale, for the hordes are seen as the preferred path to software perfection does not take into account the prevailing wind of “follow the market don’t market to followers”. By this I mean that the consumer/customer/subscriber/market is dictating the pace and not the other way around. The notion that any piece of moderately complex web-based service can be delivered as the final solution is blatantly untrue. Even during these long projects there is a lot of prototyping and work that never makes it to the final product. This doesn’t take into account the evolutionary nature of user experience, framework changes, strategic tectonic shifts as well as business priority changes and staff churn. There is a culture of “monolithic is better than prototyping because it is more structured and controllable” is a myth. Course changes are common, and will only become more common in the Media space. More often than not, the call to “industrialise” a technology is a veiled form of political control.
A prototype that can prove the right shape of a design, rapidly iterate through UX/design options, drill down into the heart of the challenge and so on. The fact that the code could be discarded and might require rework is not a weakness but a strength because bad decisions (and bad code) is easily discarded because there isn’t already that industrialised “spend”. If a project took 9 months to complete then you can be sure that the next round of basic changes will take 3 months and so on because the code base is already set.
I am not advocating a fire and forget policy of having your business run on prototypes. I’m not saying stability, scalability and architectural concerns aren’t valid and should be thrown out with the bath water. I am saying that all projects are evolutionary regardless of how long you stretch them out (in fact the more you stretch them out the more likely it is that they should be discarded, but won’t be), all platforms are moving targets and finally media consuming customers aren’t willing to wait for your 100% rock-solid platform that can only just deliver the services that they needed two years ago.