Considering the huge rise in demand for cloud-based solutions over the past few years, thousands of software companies are finally conceding that the future is online. The sustained resistance in the face of customer expectation is understandable: the research and development investment is significant and, once delivered, the resultant solution will not only be expected to be cheaper but the subscription based model creates significant cash flow challenges.
Given the financial realities of this online model, it is no wonder that organisations are tempted to try to migrate the existing tried, tested and popular solutions to the cloud rather than embark upon a rewrite. On paper, it appears viable to divert the existing development team away from product enhancement for a year to migrate to undertake the migration programme – and then tap in to the strong customer demand.
The reality is somewhat different because migration just doesn’t work.
Attempting to take an application developed in C++ and shoe-horning it into a web-based model will fail. Worse, it will fail after a year’s development time and money has been used; and it will be fail in front of customers and the press. The business damage is immeasurable.
So why is migration such a bad idea? Creating a cloud-based application is not simply slapping on a nice web front end. In a proper cloud-based solution, the user interface needs to behave like a web application; it should work across platform, including smartphones and tablets, as well as desktops and laptops; and it will need new workflow to reflect the online model.
So while the existing business logic and rules will remain at the heart of the application, the development methodology, toolset and mindset must be completed different. And this means changing the development team.
While the mechanics of developing in Java may not, on paper, be that different to developing in C++, the whole ethos is fundamentally different. To get this right, organisations need to tap into the skills and experience of developers who live and breathe the religion of the cloud. Simply sending the existing development team on the appropriate training courses – in Java, Responsive Design, Apache, Linux or MySQL – is a fast track to failure.
However talented, these individuals will lack experience, expertise and mindset of the cloud; to be frank, would you really bet the business on any developer’s first foray into a new environment?
This means two development teams – one focusing on enhancing and maintaining the existing product, the other creating the new cloud product. It means additional investment – all to move to a lower revenue, subscription based model. Hardly compelling. But what is the alternative? Wait for the competition to make the move and begin to erode the customer base? Attempt to migrate and see years of hard won reputation and customer loyalty disappear overnight in the face of an unusable product?
Making the move today and opting to rewrite, using cloud evangelists, is best. It will deliver a high quality cloud application that can steal a march on the competition – and it will avoid the slow painful death that is the inevitable result of attempting to migrate to the cloud.