By Swetha Kundaram, Senior Technical Writer, WaveMaker
After months of hard work, we have released a new documentation site for WaveMaker app developers. Besides frequent product releases, bug fixes, and new features, we are focused on improving the app development experience further.
The revamped WaveMaker Docs is a complete developer's guide to building enterprise-grade applications with a low-code solution. Our aim with this redesign is to simplify your day-to-day development activities and to comply with global documentation standards. By providing a better user experience, faster load time, and mobile-optimized access, we aim to positively impact the app development experience.
The new refreshing look and feel make the guide user-friendly and visually appealing. Using a well-organized tree-based structure, navigation across modules and related topics is easier. Added to this, to provide more accessibility, we have made our documentation open-source, which is powered by Git with the markdown data source. This means you can directly contribute to our docs. If you have a better solution for an older problem, please contribute to our docs. We will happily accept your pull request.
As we are in the process of continuous improvement you may notice some alignment issues due to recent migration and possibly a few broken pages. Please bear with us as we work on making the docs more stable. If you notice anything broken, send us a report and we will fix it right away.
Only the beginning
At Wave Maker, we believe in the power of modernization and hope our new design helps you find solutions easily and makes your WaveMaker app development process faster and better. As we continue to renovate, we aspire to empower you with all that you need to develop enterprise-grade applications rapidly, in reality.
As the app economy grows, there’s a sense of urgency to create business value and drive mobility and agility. These digital opportunities to deliver value are massive, urging enterprises to develop applications with greater momentum. Technology is the primary enabler in enterprise-wide modernization, and the demand for developers to support this transformation is huge–and this is where the challenge of the looming skills gap emerges.
The 2018 LinkedIn Workforce Report stated that there is a shortage of 212,838 people in the U.S. with software development skills, including programming languages such as C++ and Java. In the developers market, it is easier to find developers proficient in one programming language than full-stack developers experienced in end-to-end application development. This is because traditional Java development teams depend on specialists, decelerating the application development process.
What Java teams are missing is access to consumer-grade UI that provides a conversational user experience, the ability to create multichannel responsive apps, API-driven integration for microservices and REST APIs, and agile DevOps to automate, iterate and deliver rapidly.
Here’s where low-code platforms play an important role. Gartner Research predicts that by 2024, about two-thirds of application development activity will be done using low-code application development. This is because these platforms are widely used to help create agile teams, reduce dependency on specialized skills and empower Java development teams to develop future-proof skills using a modern technology stack.
In addition to developer-heavy initiatives such as app transformation and migration, low-code platforms can empower developers and make full-stack development simpler and faster in a variety of ways. Here are some examples, offered as industry information from app dev platform maker Wavemaker.
Creating enterprise applications that have a rich user interface (UI) and responsive user experience (UX) requires time, effort, and specialized skills. Traditional teams require highly skilled front-end technologists with knowledge of HTML5, Bootstrap, Angular, and UI design.
Low-code platforms, however, provide drag-and-drop features, out-of-the-box Angular-based responsive UI and modern UI frameworks such as Angular 7. Utilizing a radical approach to use open-standards-based generated code, the code for every drag-and-drop action is automatically generated. Through this method, low-code platforms enable developers to build modern applications with minimal coding and guarantee the best code quality, maintainability, and extensibility of enterprise applications.
Creating APIs from existing applications requires skilled Java and API developers to develop new database logic and coding, but there’s an easier solution. Low-code platforms provide one-click API creation, where microservices are auto-created and developers can use existing database logic, reuse existing Java code and create new Java code in IDEs of their choice, such as Eclipse.
Using an API-driven app development and integration approach, microservices are created and REST APIs are automatically generated for existing applications, making modernization of legacy systems easier and faster than ever before.
Developers, in addition to understanding all layers of the application stack for full-stack development, are required to deal with the underlying complexity of integrating, configuring, and developing for the various systems and frameworks involved in the end-to-end application development process. This includes UI, binding UI to back-end data sources, security configuration, API integration and creation, database logic, microservices, CI/CD, multi-cloud deployments and much more. Full-stack development becomes very complex for developers as they need to upskill.
Low-code platforms can abstract the complexity by providing accelerators across the life cycle of full-stack application development. Using low-code platforms, developers can own micro-functionality (also known as microservices) and can manage end-to-end application development from UI design, focused code development (avoiding any infrastructure code) to deployment, in a simplistic manner.
Today, enterprises are leveraging hybrid infrastructure models (on-premises and multi-cloud) and distributed app architectures such as microservices and APIs. As traditional virtual machine (VM) pipelines are script-driven, repurposing and rebuilding them at scale is not an easy task. As a result, developers need to create deployment scripts to deploy apps to application servers and create CI/CD Git hooks for continuous delivery.
With low-code platforms that support continuous integration and continuous delivery (CI/CD), developers can instead deploy application artifacts (WAR files) to any Java application server. By supporting VM-based deployments and containers, deploying on-premises or in multi-cloud environments is made easier than ever before. As container images are automatically generated by integrating with existing enterprise CI tools like Jenkins, low-code platforms democratize the delivery process through seamless deployment to Kubernetes and auto-containerization.
Migrating to modern applications can be expensive and require extensive coding. With the assistance of visual development features in low-code platforms, it’s easier to migrate from legacy applications based on proprietary technologies such as Lotus Notes, MS Access, and Oracle Forms.
With the app economy maturing, enterprise application development is becoming more sophisticated. While there is an increasing demand for a highly skilled developer workforce, there is a talent shortage and skills gap in the developers market, and the extent to which enterprises upskill their development teams will determine the survival, revival, and arrival of developers. Using the right tools such as low-code platforms, Java development teams can be empowered to focus more on innovation and address the demands of the modern enterprise. Enterprises that modernize and upskill existing development teams can future-proof the next-gen developer workforce and gain a competitive edge.
The role of CIOs has evolved. With the emergence of the app economy, they need to adapt to a hyper-connected world, work with the next-gen, digital workforce, and adopt a strategic role.
To support the fact that the role of CIOs is changing, the 2019 ‘State of the CIO’ report by IDG states,
“67% of IT leaders are spending more time on business strategist activities to help drive innovation and nurture go-to-market plans.
Over the next 3 years, CIOs expect to not only retain but to expand their newly-established business strategist charter.
77% of CIOs are planning to devote time to activities like driving business innovation.”
What’s your level of involvement? How are you planning to drive business innovation? Where would you start your digital transformation journey? Take a look at our previous post which emphasizes that the best place to start would be at the core, which is IT.
To achieve digital transformation success, enterprise application development is emerging as an integral aspect. Get to know how you can drive digital transformation ROI using enterprise application development and low-code platforms.
Leveraging the Power of Low-Code
How rapid application development platforms help CIOs drive digital transformation ROI
In modern enterprise application development, ‘transformative technologies such as rapid application development platforms drive ROI by providing ready-made application infrastructure, full-stack development, improved usability with rich user interfaces, predefined best of the breed technology stack, API-driven integration, and business user participation.
By adopting low-code platforms and rapid application development, you can align teams and enable them to focus on innovation providing the necessary support to your digital transformation strategy and revenue-generation initiatives.
Low-code platforms provide the agility to create and deliver custom-built applications that revolve around user preferences, with a speed that resonates to demand. CIOs who utilize rapid application development to implement their DX strategy have a better opportunity to create custom enterprise apps that adapt to experiences rather than devices.
What rapid application development platforms offer that traditional IT development doesn’t is ‘inward-facing agility with intra-departmental APIs. By supporting the development and delivery of custom LOB apps efficiently and on time, low-code platforms ensure enterprise agility.
As traditional software runs out of steam, enterprises can transition IT infrastructure to app modernization using low-code development. With rapid app development and agile integration, CIOs can support the digitally-empowered workforce in a cost-effective and efficient manner.
To realize ROI on modernization and transformation, CIOs need to ensure a culture of innovation, where creativity and productivity are instilled. They have to be committed, involved and encourage technology enthusiasts to work on emerging technologies.
CIO’s ‘Not-so-Secret’ Approach to Digital Transformation Success
Business transformation is all-encompassing, it affects everyone, involves everyone, and requires strategic alignment between processes, people, technology, and culture. There is a ‘not-so-secret approach to digital transformation success. It's the innovation philosophy of design thinking. More than ever before, CIOs are leveraging design thinking (observing and analyzing user behavior to gain insights) when devising IT development strategies. This, however, will be covered intensively in another article.
As a tip-off, there are several sides of digital transformation you need to consider:
Many questions need to be answered, several strategies need to be made, different demands need to be met, now. As they say “take your time but hurry up”, because digital transformation demands velocity!
With transformation comes change
With change comes making choices
With choosing comes responsibility
Make it count!
Any enterprise that got its start before the dawn of the internet era comes equipped with a legacy in its systems of records that are several decades old. These systems have been through multiple patch and upgrade cycles over time, making them inflexible to change. Simply put, these systems may create more problems than they solve.
And yet Gartner predicts that, even by 2023, 90 percent of enterprise applications in use today will still be in use.
These systems of record have proven themselves to be a competitive advantage for the enterprise over the years, and they can’t be wiped off the slate – simply because there’s nothing to replace them. In a recent survey conducted by BT Global Services, 42 percent of enterprise leaders said they would continue using their old systems, and 37 percent said they even planned to upgrade these systems. And, contrary to popular belief, a BMC mainframe survey last year revealed that 91 percent of enterprise leaders expect their workloads on mainframes to grow.
The problem in keeping these systems running is that the Baby Boomer generation is retiring, and the skills needed to maintain them are dwindling. Look at mainframes, for example. They aren’t part of any graduate curriculum today, and are not of interest to the young technical workforce. The skills needed to develop old applications written in programming languages, such as COBOL, FORTRAN, Assembler and even C, are not readily available, forcing enterprises need to spend considerably to train and onboard skilled staff.
Modernization: The New Imperative
Now let’s examine modernization. Modernizing software systems has been a cornerstone of the offshore IT services industry. Modernization today is platform-led, very different from the earlier era in which modernization was a services-led initiative powered by selective platform use. There are two main reasons for this:
From Legacy to Neo Legacy
The move from 3GL to 4GL has been making the modernization rounds for a number of years. Unlike 3GLs (C++, Java etc.), 4GLs allow the developer to focus on an app’s business logic and presentation, and not just on writing lengthy code. Developer productivity was the core promise of 4GLs and platforms, such as FoxPRO, Microsoft Access, and PowerBuilder, enabling rapid application development. The problem is that 4GLs were built for an earlier era.
But 4GLs are proprietary, and inevitably result in in vendor lock-in. Plus, enterprise software licensing costs for 4GLs are continuously increasing. And, despite their promise, they required a lot of manual coding. What’s more, their scope of use is limited to specific application scenarios, which are determined by app vendors. Unfortunately, that leaves little scope for customization and exploration.
Unfortunately, many 4GLs were developed before the “digital era” and long before the need to support the web and mobility. Thus, 4GLs are not suitable for the device, data, and integration requirements of today’s enterprises.
But now, low-code application development platforms have stepped in. Their promise is not only to simplify coding, but to drastically minimize or eliminate the need for massive code bases, and doing so results in faster and future-proof development.
From Traditional Code to Low-Code
Low-code platforms have become one of the tools of the trade for app modernization.
Where to Start
How can you transition to app modernization using low-code development? Here are my recommendations:
1. Evaluate the technical condition of your systems and bucket them as low or high depending on your perception of these five parameters:
2. Decide whether the code base needs to be touched
If applications do not need to be modified but need to be updated, there are three common approaches: wrapping, packaging and re-platforming.
If the code base needs to be modified, approaches such as refactoring, rewriting and re- architecting should be considered.
A packaging approach that replaces legacy software with COTS software is suitable for systems of record but shouldn’t be used for systems of differentiation. This is because all companies have access to apps, such as Salesforce, that erode the opportunity for differentiation. Such systems need to be approached with either rewriting or re- architecting, both of can build competitive advantage.
Systems of differentiation can be approached using a wrapping strategy, which is typically lower cost. However, the benefits of wrapping are temporary and should be used a stepping stone to a rewriting or re-architecting. All other approaches except wrapping reduce the burden of finding skilled legacy resources. Why is wrapping singled out? Because wrapping simply allows new functionality to be developed on top of old systems. Companies still need active mainframe and COBOL development teams post-wrapping.
Finally, enterprises need to acknowledge the technical challenges faced by IT and developers during modernization projects. These include:
Modernization is a practice whose time has come. But perhaps the true test of any modernization platform is that it must not come at the cost of an army of specialists, but instead must set the stage for sleeker, more people-efficient IT organizations.
Originally published by Vinay Murthy, VP of WaveMaker in EnterpriseTech
Low-code platforms was a buzz word among big companies last year. In fact, in 2016, big players like Google, Microsoft, Oracle, SalesForce staked their claim in this market segment through acquisitions and organic product launches. However, what are these low-code platforms?
Low-code platforms are app development platforms that allow you to build your apps faster with minimum coding. These low-code platforms have been in existence for some time now. They initially sprang up as just-auto code generation tools but have evolved since then into enterprise-grade app development platforms covering the entire app delivery. Modern low-code platforms speed up the entire app delivery process from requirements to go-live. Some critical areas in app delivery cycle that get optimized in low-code platforms include the following:
Of late a new breed of platforms, akin to low-code platforms, have sprung up. They are called the No-code platforms. What are they? Are they any different from low-code platforms? Are they one and the same?
Let’s understand, that during the development phase, low-code platforms score over traditional development approaches because they involve a more intuitive visual development approach. The visual development approach allows the app builder to drag and drop predefined out-of-the-box components into the work area. However, many a time, during app development, there are features that require customization. For instance, when building a particular page of an app, your visual designer would have given an innovative clock widget, in his screen mocks based on the company's standardized widget set, and that is not a part of the default UI widget library of the platform. In this scenario, low-code platforms like WaveMaker, allow you to extend the platform capabilities by letting you build such a widget and make it available as a drag-n-drop component for future projects.
However, what if the company employed a team of developers who built a UI widget library based on the company’s approved design template and is made available out-of-the-box in the platform itself. Then app-building becomes a no-code experience.
Hence no-code-platforms are more like an evolution of low-code-platforms to particular scenarios, where the coding extensions are taken care of by providing out-of-the-box visual components. The interesting part is that no-code platforms do not actually guarantee a no-code experience.
There could be many scenarios in which a low-code platform can start acting like a no-code development platform. Some of the broad categories include:
To Summarize, no-code platforms are no different from low-code platforms. They are just a specialized version of the low-code platforms, where the customization has been taken care of by pre-building all the required visual components. The next time a vendor claims to be a no-code development platform, feel free to refer to this article on where they fit in.
Rapid application development platforms – the low-code and no code tools that have proliferated in the last few years – have given rise to the phenomenon of the citizen developer. A citizen developer is someone who is, or can become, proficient in RAD development, either independently or in support of a professional developer.
In the latter case, creating a new app may involve a tag-team approach in which the pro prepares the components that go into composing an app, and the citizen developer can then develop the app. Such two-pass development is one highlight of select RAD platforms.
The citizen-developer phenomenon has gained a wide following in the past few years, essentially because it enables thin IT teams to reduce their backlog of development projects. Another major reason is that citizen developers, once proficient on a RAD platform, can shelve any older development technologies they may have used.
But even with a wide following, the acceptance of RAD has not spiked in use, but instead has evolved from quick and dirty apps (which were more like prototypes) to nice and final apps (offering a great user experience).
As part of that evolution, a number of use cases for RAD emerged. Arguably, the most popular of those are:
RAD platforms are not best suited for developing gaming or other highly interactive apps that use very little data. That would rule out Uber-like apps and gaming apps such as Angry Birds.
RAD is most suitable when the apps are data-driven, often populated from a database system. Pagination of data or memory management (for example, a mobile app that brings in too much data ahead of use may waste data traffic; whereas one that brings in too little could provide poor interactivity) is very tricky particularly when apps need to use AJAX. AJAX is a very common form of programming, for both web and mobile apps, where data is fetched on demand. AJAX applications – also called single-page applications, because data is called into a page without need for a server fetch of a new page – provide a better user experience and are hence preferred.
In addition, low-code platforms are well suited for those applications that are created in Gartner’s Pace Layers model: Systems of Innovation or Systems of Differentiation. Low-code platforms are also suitable for Mode-2 development (the Innovate layer), as defined in Gartner’s Bimodal IT model.
As we see a rampant spread of the consumerization of IT (i.e., corporate apps that look and act like consumer apps), RAD is seeing a new growth phase.
The D in RAD has also been redefined in the new era. Today, the D in RAD refers to both delivery and development. RAD platforms have evolved to cover the entire breadth of application delivery. For instance, some RAD platforms combine a developer cloud to reduce cycle times further (test-as-you-build) and increase productivity. This also makes it simpler to move an app from the developer environment to staging or production (for example, through use of containerization technology).
In short, today’s RAD platforms are nothing like their earlier cousins, although the goal of rapidity still remains.
The challenges of traditional development are not new, nor have there been any substantive improvements in traditional languages that would deliver quantum improvement in time to deployment of new apps – where speed virtually always means corporate cost savings, earlier opportunities for app monetization, or both. That dearth of innovation virtually opened the door for a surge in RAD adoption, whether it resulted from need or opportunity.
Originally published by Vijay Pullur, CEO of WaveMaker, in tmcnet.com