The beginning of a new year is always a period of good resolutions.
No, don’t worry, I will not announce the plan of the big manoeuvres for Qualilogy in 2015. First, there is no plan, and then I’m one of those 90% of people whose resolutions fail, and I do not think that making them public will improve this low success rate.
Simply, I have been thinking for a while (1) about the impact that the Cloud could have about applications management and programming best practices.
And I had, several times in 2014, the opportunity to talk about this with various interlocutors, only to meet a total lack of reaction, not to say a polite indifference from colleagues and friends who are Quality consultants as me, and who never met customers concerned with applications in the Cloud, or IT managers who clearly see the Cloud as a new fashionable technology, as well as Big Data, mobile apps and the Internet of Things and will listen, always bored, the endless considerations on the urgent need to include them in their IT strategy at the risk of not being able to meet the increasingly rapid changes in the business.
The « responsiveness to market demands » and « improving the performance of IT services » are the points most frequently encountered at the start of any presentation, and therefore the most wearisome and worn clichés.
Trying to imagine what awaits us in this new year, will we see in 2015 more applications in the cloud?
Where is the Cloud?
The different stages of a new market lifecycle are well known: in an initial phase, the techno-enthusiasts precursors are the ‘early adopters’ who come first before that the benefits of this new technology are demonstrated and that the market may enter a second phase of adoption, if not massive, at least broader, and anyway, of growth.
I think we are probably between these two phases. We can see the maturity of the offers of giants like Amazon, Microsoft, Google, etc. And I also note the absence of IBM, HP and other CA, that we may consider as a significant breach of the market caused by a new technological wave. Well, I do not worry for them: they are richer than me and they already have proven repeatedly their ability to jump on the bandwagon.
But there is a gap to cross to move to the second phase: the benefits for early adopters are not necessarily meaningful to IT decision makers, if they do not respond to a problem or do not provide significant gains.
Who is in the Cloud ?
A startup without a mobile app in the Cloud, today, it just does not exist.
And if you decide to start your small business, of course you have other priorities than to hire an IT director and a team of programmers: you choose an accounting package and something to manage the orders and bills, and the pay of your employees, in the Cloud. And when you start to grow, a Salesforce because a few sales forecasts and especially some visibility on what is really doing your salespeople, you know that it is always better than to navigate by sight.
Now beware: this is where the problems begin. Sometimes these packages will be unavailable, or almost unusable due to a very disgustingly bad performance. Still, you can wait to enter orders with a little delay, or explain to your employees that their pay will arrive on their bank account 1 or 2 days after the due date, because of computer problems. Sometimes. But never, never give one single opportunity to your salespeople to tell you that « it does not work ». Do you really think they will let in your hands a tool to watch them without complaining and without using every opportunity to complain about the time they waste to use the damn thing?
Pressure on the CIO
If I were the CIO of my insurance company, I would be a little worried. It’s been a long time since I finally gave way to LinkedIn, Twitter and other social networks and downloaded their app on my smartphone. Well, it’s true that in the subway, it helps to look important and someone very busy, not like my neighbor addicted to this Candy-noisy-thing game.
Now, I have noticed that my bank assails me regularly with emails to download its app on my mobile. Without much success: it’s already bad enough to be in the subway without even looking for more disappointment revising my bank account, or spending my time deleting their messages for their last miraculously preferential loan offer refundable in 50 years.
But I also noticed that my insurance company still has not taken that step. I’m not sure if the members of the Board of that company are on Facebook, but I’m sure they do, like me, have a bank and they will, like me, note that our beloved insurance company, of which they are the most prominent members, is not ‘digital’. Which may put some pressure on the CIO of the company.
Pressure on the application lifecycle
Predicting the proliferation of apps or of mobile version of existing websites is not really a revelation. How can this help the Cloud to bridge the gap between the phase of advanced techno-visionaries and a phase of mass adoption by more traditional players?
Because these new applications require a new marketing strategy, called « inbound marketing » (2), which consists in attracting customers to your website through its promotion on social networks, registering for a newsletter, blogs, podcasts and videos that improve the rankings on search sites (Search Engine Optimization or SEO).
When you say SEO, you says « analytics », the study of all statistics about visitor’s behavior on your site, by people of « inbound marketing » who analyze these data, under the leadership of a Chief Digital Officer, with the purpose to identify the best methods to attract and convert visitors into prospects and customers. They will, for example, verify that a button in the upper right part of a web page, or in the bottom end of the blog, or through a popup, will give better results in terms of registrations for a newsletter or downloads of a PDF.
And so they will of course ask to the developers who regularly maintain this app or this website, to implement these changes accordingly to their analysis. And of course, not in a month, rather at the end of the week. This would put more pressure on the lifecycle of these applications and on the project teams, and support the adoption of Agile practices and Continuous Integration/Delivery.
If you are able to deliver a new version every week, but can not deploy correctly, you have a problem. The classic DevOps problem when your application must run on different servers of different ages and technologies, with different operating systems in different releases, different versions of Java, Tomcat or Websphere, etc. And the system engineer who fails to deploy on such a server calls the developer who answers that it is working on his machine, so that the problem is not on his side.
Also, your app may behave differently on some mobile or tablets. For instance, Tab pages are different and must be managed differently between iOS and Android and some smartphones have super-slow dataflow which prohibit certain programming practices. So you may have to manage, for the same app, separate projects with a specific language for different categories of mobiles, which further increases the complexity of the application lifecycle and the pressure on dev and prod teams.
There are different ways to solve these problems (Docker containers is one), but the Cloud is a solution that has many benefits as you deploy your application in a single, centralized infrastructure, rather than over multiple dispersed servers. And you avoid headaches about performance problems and downtime, since the Cloud takes into account the requirements of elasticity and the ability to automatically respond to high peeks of traffic on your site. Your CIO does not want to get a call from the CEO who wanted to test this new marketing campaign on his smartphone and is waiting for more than 10 seconds to access each page.
Transformation of existing applications
If your app is based on a new development with a specific language for mobile apps (Objective-C, Android, etc.), you will find it easier to take into account the APIs of each cloud provider, that are necessary for a good behavior of your application in the Cloud (REST APIs, secure login management, etc.). I think that we should see gradually new ‘programming best practices’ specific to the Cloud, based on these new standards.
If you app is based on an existing application, you will certainly have to make the necessary adaptations. You can not just push an application into the Cloud and hope to take advantage of its benefits in terms of scalability, without refactoring previously. Or without a reengineering because it may be necessary to change the architecture of your code, or rewrite it in a new language.
Some applications will also have to be adapted. I bought a Bluetooth speaker recently and was offered an insurance against damage and theft on the pretext that it was a portable equipment that could be damaged or stolen more easily (I refused since I already have an insurance that covers these risks). Similarly you will be proposed a medical and repatriation insurance when you buy an airline ticket on the Internet. My bank also suggests me regularly a private health contract (the public health service covers only the minimum in Spain).
You think my electronics shop or your airline or my bank decided to start competing on the insurance market? No, these contracts and the applications that managed them are developed by insurance companies, and this is an hell of a work for the developpers who have to deliver a product that must be highly configurable and customizable for each customer so it can integrate into their own website and/or app. Which further implies more pressure on project teams that maintain these applications and must adapt to frequent desiderata of these customers or to the peculiarities of their sites, and therefore pressure on production teams to deploy them. Additional arguments for the Cloud.
I think we will also see more and more services companies integrating the Cloud in their offer. Some are already using Cloud as a PaaS in their development and maintenance of outsourced applications, so the logical continuation will be to propose to their customers to deliver the new releases into their cloud, which is a way to demonstrate them that they have mastered this technology. And integrate it when renewing their contracts. Benefits for the customer and competitive advantage for these outsourcers.
Mainframe Cobol applications
What about Mainframe Cobol applications? Are they candidates for moving up into the Cloud?
If I take the example of my insurance company, the time employees were working with a 3270 terminal is over (well, in theory). When I go to my bank office, I can see that the person who receives me consults my account through a Windows application. Well, maybe an old Windows application because it looks more like OS/2 screens or a character-based system that has been revamped.
However, these ‘front-end’ applications are only the client interface of Cobol applications in the ‘back-end’. A bank transfer, a change in your insurance contract or a subscription to a new service will be saved through this interface, and performed by a mainframe transaction. Then, batch programs will work overnight to pass this operation to other applications, like accounting for instance.
If, as we have seen, these ‘interface’ applications are multiplied in several versions of mobile website and apps, the pressure will also bounce on the mainframe teams. A change in the front-end does not always require a corresponding evolution of the back-end, but when that happens, the Cobol developer will not be able to answer « in three weeks ». He will also have to adapt and adopt Agile best practices and fit into the Continuous Integration cycle and even production deployment.
I believe this will encourage people to think about migrating these Cobol applications in the Cloud, at least those that are ‘back-end’ of apps or mobile websites. But I do not know a solution that is able to use a Cobol application in the Cloud, as it is. I think we should see more reengineering projects of Legacy applications in a ‘Cloud-compatible’ technology, such as Java. I know this type of project can be heavy and complex. But if we consider that the cost of mainframe MIPS (between $ 3,000 and $ 5,000 minimum, the main part on the software) is well above the cost of the Cloud, the transfer of Cobol to another technology has a very high ROI.
2015, year of the Cloud for developers?
I don’t want to fall into predictions that make of each year the Year of the Cloud. The Cloud is already well installed for all that is IaaS, and more and more for PaaS. What may encourage a more widespread adoption phase to push applications in the Cloud as SaaS:
- Pressure on the CIO for a digital strategy with more apps and mobile versions of their websites, more Analytics and a Chief Digital Officer as a stakeholder of these applications. Note that we, IT guys, are good candidates for this position.
- Pressure on the development and production teams to deliver and deploy more frequently over different versions of applications. Generalization of Agile practices, of Continuous Integration/Delivery and DevOps, but these can not solve everything. The Cloud allows you to go further.
- Pressure to transform existing applications, Legacy or not, in order to push them into the Cloud, and to migrate Cobol ‘front-end’ applications to Java or other Cloud-compatible technology. More IT companies will integrate the Cloud into their offer.
And finally, I think we should start seeing best programming practices and code quality metrics specific to the Cloud. But I do not know if this is a prediction or a wish.
[1] See Quality in the Cloud, Elastic software 1 et 2.
[2] As opposed to « outound marketing » which consists in going toward the customer using email campaigns, phone calls, advertising, etc.
This post is also available in Leer este articulo en castellano and Lire cet article en français.