Webification
by John Browne, on Dec 21, 2015 3:49:15 PM
Today's word of the day is brought to you by the letter "W". And that word is "webification."
No, don't bother calling up dictionary.com for this one, we just made it up. (Of course, I had to go try and dictionary.com suggested verification, vilification, vivification, and my favorite: vinification (pours glass of wine).
Having given birth to this neologism (clearly today is the day to throw $5 words around), we have high hopes for it. As we gaze fondly on it lying in its little crib, hoping we don't have to change its diaper any time soon, we foresee it attending all the best schools, excelling in sports, and achieving widespread renown and recognition.
But what exactly is this new creation, this spawn of ours?
You know all those really really old desktop apps cluttering up your c: drive? The ones the IT department made long before you were hired? The ones with a user interface that makes you think of that sport coat Uncle Larry has worn for Thanksgiving dinner since you were four? The ones were you can almost smell your Grandfather's attic when they start up?
Yeah, those apps.
Let's briefly look at three relevant points:
- Those Really Old Apps are written in Really Old Languages now understood only by Really Old Developers who, if they haven't already retired, are about to.
- Users are not just using Windows desktop and laptop computers to do real work anymore. They're also using Nexus phones, iPads, MacBooks.
- Despite years of work improving sofware engineering practices (Agile, Scrum, TDD, etc), writing software from scratch is still a failure-prone, high-risk endeavor (yes, I know your code is always on time and on-budget, and your users never change the requirements on the fly, but other's do).
Some of those old apps will stick around forever, just as they are or perhaps wrapped in a thin layer of services that can be consumed by something else.
Some of those old apps can be replaced by Excel, or Dynamics, or SAP, or Salesforce.
Some of those apps are so terrible but necessary they should be rewritten from scratch (see point 3 above and best of luck buddy).
But some of those old apps should be webified.
Having successfully avoid actually defining our new word for the last dozen paragraphs or so, let's cut to the chase. Taking an existing app and getting a browser-based client so it's no longer captive to a Windows desktop is what I mean by webification.
What kind of apps are we walking about?
First of all, they need to have real business value to the organization. If you are still running this app, it's because it does something useful for someone. It might have dozens, or thousands of users; it might represent some proprietary formula, algorithm, or process that provides competitive advantage; it might be the thing that gives the CEO a dashboard she's very very fond of. But it has value.
Second, the code isn't terrible. Yeah, I get that every piece of code, looked at later, is crap. But even mediocre code that has been running for years is probably pretty thoroughly debugged and reliable. And if it has business value, arguably that also means it has encoded algorithms and business logic that's important and functional.
Third, the app needs modifications on a regular basis--either to implement new functionality supporting the users or to stay current with external changes (regulations for example).
Webifying those kinds of apps--valuable, reasonable code quality, periodic updates required--should get you two payoffs: First, you should get a code base that's maintainable (remember those periodic updates?). If it's not now in a reasonably modern language and platform, you'll continue to struggle to find gray-bearded developers who can work on it. It's not like recent graduates with CS degrees are fluent in COBOL or VB6. Second, you get something that is unshackled from the chains of the Windows desktop because it now runs inside a browser (and to be clear, it should be any browser, not one that supports some weird plugin--so we're talking about nice clean HTML with JavaScript).
Once webified (webificated?), your users can use any ol' device they want to access the app, including the ubiquitous smart phones et al since it now runs on a browser. (Of course, if you have control-rich forms in the original Windows version, some thought will be needed to consider how to make them usable on a smaller form factor. We leave that exercise to the reader.)
How does this webification take place? My recommendation is to look into WebMAP, which can avoid the costs, perils, and time needed to do a rewrite while still meeting the goal of maintainable code at an affordable investment.