The Beginning
In the beginning, if the business needed an application built, they went to the IT department, participated in a pleasant Waterfall SDLC and eventually had a shiny new application sitting on the Mainframe.
Those were the good old days.
Then one decade, 4th generation applications (Clipper, dBase, Foxpro, etc.) became available and business now had cool 2-tier apps they could use their new-fangled mouse with, running alongside their 1-Tier mainframe apps.
Those really were the good old days.
Then Microsoft Access became available.
Business: “Hey, we don’t need IT to build that app; I’ll just get my co-op student and my assistant to do it in Access.”
IT: “Umm, okay, I guess…”
The Problem
Business functions and departments have put together little applications to solve problems that have now become operational systems outside of the IT infrastructure. Whether it is a small “friendly tracking” application or a department rewards program, we’ve all heard these from the business:
- What do you mean I have to wait six months? I’ll just get my co-op student to do it in Access.
- How do you sleep at night for that amount of money for four pages?
- I need my Access reports accessible from the web.
- Why do I have to buy a Visual Studio license?
- I know it’s not on the enterprise roadmap – it’s departmental.
- I need my spreadsheets available to my team and clients from their phones.
The infamous little access applications, Excel spreadsheets and even C++ apps the person has written for the have suddenly become operational and mission critical. IT and the HelpDesk hum quietly to themselves as they search through the “supported and approved” applications in the Ticket System.
- I’m sorry. Access is not supported by the Help Desk.
- I’m sorry. We don’t have that application in our Ticket System.
- Restore from backup? I’m sorry; I have no idea what application you are talking about – it’s not in the backup log.
The Solution
WaveMaker + Cloud Foundry to the rescue! A web application for creating web applications that runs in the cloud! In fact, we can just build the app in the cloud and not have the hassle of installing WaveMaker on the desktop and use the Cloud Foundry deployment instead: https://wavemaker.cloudfoundry.com/.
With the release of WaveMaker 6.6.x, I was able to have a single table CRUD application that was authenticated and authorized against a production Active Directory server within minutes. Most of this time was spent typing in the table name and adding the columns.
Did I mention I haven’t written a single line of code yet?
In comparison, the same application hand rolled with spring + hibernate + web flow + spring security + JavaScript library takes about a week to setup.
That was a lot of xml for spring config files and Annotation syntax in java code, plus deciding on frameworks and javascript libraries, creating stylesheets and reading documentation.
Okay, you are thinking to yourself, “Big whoop. You queried and updated the database. We’ve been doing that for decades. I need to call some web services from a business partner.”
Alright, I’ll raise the following abilities:
- Connecting to different databases at the same time as a “service.”
- Calling web services (JSON, SOAP, REST, RSS).
- The power of Hibernate’s HQL for creating Query Services.
- The power of The Spring Framework.
Did I mention I still haven’t written a single line of code yet? (Okay, you have to know HQL to write queries.)
Okay, but we have these custom java libraries and we want to use springs integration framework.
No problem!
- Add the needed spring framework libraries to the project.
- Write some code (java) to hook the functionality in so WaveMaker knows about it.
- Write an additional custom java based service in the WaveMaker project.
Yay, now we have to write some code and configure some spring xml.
WaveMaker definitely deservers further investigation for solving the business’s need for web applications that don’t fit into the enterprise roadmap.
*Disclosure: I am a real user, and this review is based on my own experience and opinions.