Oracle APEX: Low Code, High Innovation
Several years ago, I came across a story that has remained one of my favorites:
A toothpaste factory had a problem: they sometimes shipped empty boxes, without the tube inside.
Those familiar with production lines know how difficult it is to have everything run perfectly in sync, and needless to say, empty toothpaste boxes in the supermarket move customer satisfaction scores in the wrong direction.
Understanding how important that was, the CEO got the top people in the company together and they decided to start a new project, in which they would hire an external engineering company to solve their empty boxes problem, as their engineering department was already too stretched.
The project followed the usual process: budget and project sponsor allocated, RFP, third-parties selected, and six months (and $8 million) later, they had a fantastic solution — on time, on budget, high quality, and everyone in the project had a great time. They solved the problem by using high-tech precision scales that would sound a bell and flash lights whenever a toothpaste box weighed less than it should. The line would stop, someone would walk over and yank out the defective box, then press a button to restart everything.
A while later, the CEO decides to have a look at the ROI of the project: amazing results! No empty boxes ever shipped out of the factory. Very few customer complaints, and they were gaining market share. “That’s some money well spent!” – he says, before looking closely at the other statistics in the report.
It turns out, the number of defects picked up by the scales was 0. It should’ve been picking up at least a dozen a day, so maybe there was something wrong with the report? He filed a bug on the report, and after some investigation, the engineers came back saying the report was actually correct. The scales really weren’t picking up any defects, because all boxes that got to that point on the conveyor belt were good.
Puzzled, the CEO travels down to the factory, and walks up to the part of the line where the precision scales were installed. A few feet before it, there was a $20 desk fan blowing the empty boxes off the belt and into a bin.
“Oh, that — one of the guys put it there ’cause he was tired of walking over every time the bell rang”, said one of the workers.
The story appeared in a post entitled Networks are Smart Around the Edges, and dubious veracity aside, I love it since it highlights several things about corporations and people we all know to be true from experience. In fact, since it demonstrates so clearly how we can often overlook simple yet effective solutions due to a biased frame of reference, I’ve used it several times when introducing Oracle APEX.
For the same reason, the story also works well to introduce the topic of this post, which is the growing popularity of low code platforms, or what some are calling the low code revolution.
Successful business and IT leaders alike recognize that “complexity kills”, and they look for simple solutions that both enable speed and agility (see my previous bimodal or two speed speed IT post). And, they also recognize the tremendous value in unleashing the collective knowledge and creativity of their teams. Since low code platforms hold promise on both fronts, it’s no wonder we are seeing more and more adoption.
What are low code platforms?
A low code platform is an application development framework typically consisting of visual based, “drag and drop”, type development tools, which enable technically inclined non-programmers, (aka “citizen developers”), to build surprisingly functional business applications without having to write a lot of complex code.
Forrester describes low-code platforms as “platforms that enable rapid delivery of business applications with a minimum of hand-coding and minimal upfront investment in setup, training, and deployment.”
Two good examples are IFFTT and Zapier, which are used to automate workflows by connecting services using pre-defined recipes. They enable non-programmers to develop quite involved workflows for everything from automating social media posts to managing email to building notifications and alerts when tickets go on sale or something is posted on craigslist.
In the enterprise space, Salesforce.com is a good example, as is Oracle Application Express (APEX). In fact, Oracle has recently announced a push towards low code tools, and has ramped up efforts to make it as easy as possible for organizations to get started with Oracle APEX. To see the low code features of Oracle APEX, see a demo by Mike Hichwa, VP of Software Development at Oracle.
Low Code Platforms – Why Now?
First, it’s worth noting that the adoption of low code tools is really just part of a larger trend we’ve been experiencing, which is the “democratization of IT”. Simply put, advancements in technology and user interface design are making powerful tools accessible to more and more people, meaning they are no longer restricted to specialized, highly trained experts.
Aided and abetted by the democratization of IT, the primary reason for the low code revolution is rooted in the ever-increasing technology demands of modern businesses, combined with a general shortage of IT talent. In short, IT has become a major bottleneck in many organizations, and business leaders are scrambling for solutions. After all, today’s markets are not kind to those who move slowly with technology adoption – just ask Blockbuster.
This of course is not surprising. In this age of rapid digital transformation where it’s said that “every company is a technology company whether they want to be or not”, new initiatives typically have a technology component, resulting in a steadily rising demand for software developers. And, as highlighted in a recent Forbes article entitled “Wal-Mart, Target and CVS Need Software Talent; Where Will it come From?”, not only are universities not churning out enough new grads, but the competition for software talent is becoming more fierce, especially from well funded Silicon Valley companies with highly sought-after workplaces. Oh, and did I mention the need to go fast?
How Low Code Platforms Help
More Hands on Deck
Easily the biggest benefit of low code platforms is that they increase the number people who can be involved in delivering technical solutions. A recent article by Salesforce explains that “the ‘low-code revolution’ opens up an enormous opportunity to empower employees to get involved in the app-development process” and means that “the ability to build apps (and the responsibility for innovating) for a business becomes decentralized: anyone in any department can create software to solve a problem or address a need. Not only are problems being solved at the source, but coders are freed up to solve higher-order problems.”
A key point not to be missed here is “problems being solved at the source”.
Intuitively, the closer someone is to the problem domain and solution context, the easier it will be for them to see and understand the types of optimizations required to improve efficiencies, and the more invested they will be in finding solutions. With their unique perspective and access to low code platforms, technically savvy business users can start servicing their own needs. This reduces dependency on overworked and potentially unsympathetic IT departments who are not only several steps removed from the problem, but who all too often deliver applications through a long, meandering process that begins with uninspired requirements gathering interviews and ends with “thanks, but that’s not really what we wanted.”
Breaking the Requirements Gathering Challenge
Speaking of requirements gathering, nailing down user requirements is one of the most challenging aspects of application development projects. Although the blame is often placed on dithering users who don’t know what they want, to be fair, it’s not easy or even always possible for users to specify everything they’ll need upfront. People don’t always know exactly what they want until they start to see something take shape, and requirements can also shift since projects are not completed in a vacuum. Low code platforms can be a big help as they enable power users to iterate on solutions in an exploratory manner, and constantly refine until they have something suited to their needs.
Turbo Charging Professional Developers
Finally, it’s not just non-coders that can benefit for low code platforms – there are benefits for professional developers as well.
First, with pre-built packages and components that can be assembled via “drag and drop” configured with “point and click” interfaces, low code platforms help reduce the time and complexity involved with building and deploying applications. This, of course, is a welcomed outcome given the relentless pressure to produce more in less time.
Second, low code platforms also enable back end developers to “move up the stack” and build actual end user applications. In the past, given the complexity of front-end application development platforms and the associated learning curves (see ADF and .Net), back end developers were effectively “locked out” of application development and were forced to defer to experienced front-end programmers. However, with low code platforms, that changes. Using Oracle APEX as an example again, back end database developers can leverage their existing SQL and PL/SQL skills and build robust and professional looking applications without having to dedicate hours and hours to learning front-end programming. So again, low code platforms can broaden the number of people who can deliver applications, and especially those with existing systems knowledge.
Sounds good. What’s the catch?
The criticisms of low code platforms seem to fall into two areas.
The first is the claim that low code platforms “over promise and under deliver”, meaning they are not yet mature enough to be deemed useful beyond simple applications. As a result, the argument is that citizen developers will quickly hit a ceiling or get in over their heads. They’ll then have to be bailed out by professionals who’ll need to rebuild everything from scratch, and who will no doubt do so with no shortage of colorful “tsk tsks” and “who the heck built this” type exclamations, muttered under their breath while madly posting submissions to codinghorror.com.
Although it may be true that the low code platforms are not yet fully mature, (see Forrester’s study entitled “Vendor Landscape: The Fractured, Fertile Terrain of Low-Code Application Platforms”), it’s important to note they are steadily getting better all the time.
For example, consider how advances in word processors and desktop publishing tools completely disrupted the graphic design and publishing industries. With tools like Preszi, an amateur with an eye for design can create professional looking presentations quickly and cost effectively, which not too long ago would have been significant undertakings involving graphic design and/or video production agencies. Or, for those familiar with Oracle APEX, consider the difference between APEX 4.0 and 5.1, and then imagine where things will be in another 3 to 5 years.
Also, it’s important to note that what I’m discussing here are “low code” and not “no code” platforms. It’s still necessary for citizen developers to have a high level understanding of how systems are built, as well as the ability to string together at least a few lines of code. The point is that they do to not have to be professional programmers who’ve dedicated months or years to learning how to write software. Think of people who might have built complex Excel and Word macros in the past – these are the types of people who will “take flight” with low code platforms.
Risks of Shadow IT?
The second area of criticism is that low code platforms can make it easy for someone who “knows enough to be dangerous” to, well, do something dangerous. Yes, this is true too, and much has been written about “shadow IT” and business users adopting tools not sanctioned or supported by the IT department.
However, much has also been written about the need to embrace shadow IT. While there certainly are risks to manage, low code platforms often provide guardrails and can in fact encapsulate and enforce “best practices”. For example, Oracle APEX includes built-in features to help citizen developers make good design choices and be mindful of application security. And, since APEX runs entirely in the database, any applications developed by citizen developers can be carefully monitored by experienced DBAs using tools like Oracle Enterprise Manager, and disabled if problems arise.
Incidentally, this is also where you’ll hear critics bring up tools like Microsoft Access or FoxPro, along with amusing anecdotes about a monstrosity someone built that blew up and almost ended the world. Yes, this has happened, and in fact, I’ve built a few of those monstrosities myself. However, for every MS Access horror story out there, there also exists a story about how an MS Access application built by a citizen developer was of enormous benefit to a business (I’ve built a few of those too).
Clearly, the net gain from tools like MS Access and FoxPro has been very positive for businesses overall, and I believe the same will prove to be true for low code platforms.
Being Left Behind
The biggest risk with low code platforms is that overly cautious IT managers will ban them altogether, and in doing so throw the proverbial baby out with the bath water. In banning such tools, they reduce their organization’s “solutions surface area”, and limit their ability to innovate and keep pace with more forward thinking competitors. (In fact, overly restrictive IT policies that kill innovation is the subject of my next post.)
The truth is, more and more organizations are seeing the benefit of low code platforms. Not only do they reduce complexity and improve delivery speed, but they also act as a “force multiplier” by unlocking the creativity and ingenuity of a broader group of people. If the history of companies who are slow to adopt new technology is our guide, not exploring the possibilities of low code platforms will prove to be a costly mistake.