Wired for experience®

By Deepak Anupalli,
VP of Engineering, WaveMaker

COVID-19 has disrupted life in many ways, bringing new challenges as well as opportunities for everyone to learn and innovate new ways of coping up with this crisis. Working from home is never easy, amidst daily chores, fetching essentials, keeping the kids occupied etc. staying on top of a product release is an unprecedented task.

A major product update was planned to go out to customers on April 1st week and we were hit by COVID lockdown, from March 18th our teams started working from home. It is a very humbling and commendable effort by the team to come forward to make the release happen. WaveMaker 10.4 is released on April 20th, a big Kudos to WaveMaker Team !

What did we learn?

Amidst the crisis and lockdown, being a software product organization the best way we can help the world is to create better software. In these times, having a clear purpose for our team to achieve something better, learn new things, be closer to one another and keep our morale high is very important. There is nothing better than to work as a team to accomplish more and better.

How did it happen

1. Better collaboration using the right tools.

Collaborating with a large distributed team is very tough, unless we have the right tools to track the tasks, their progress and information needed for the team members at the right time. Understanding where the team is stuck and changing course, making right decisions is the most important job for the product leads. Collaboration doesn’t necessarily mean getting onto a video call for everything and going on for hours, effective communication is the most important aspect of collaboration.

2. Over communicate and share everything with the team.

Team learned to document every detail, summary of the discussions, notes from brainstorming sessions, videos, presentations etc. Having an internal collaboration platform, like Groupe.io helped team members to do this effectively and also engage every member in conversations. Conversations are very crucial as they capture the decisions made in developing the features, which improved collaboration across development, testing & devops teams.

3. Bring the team together, by setting a clear routine

Daily morning stand ups to discuss the priorities for the day and deliverables from each individual. It is very important to be empathetic to each one and understand one another’s personal situation amidst the crisis, alongside working together to achieve the objective.

4. Enabled for remote working

Leaving aside the productivity and collaboration tools like G-suite, JIRA, Groupe.io, WaveMaker started the journey with cloud infrastructure, embracing AWS and container-based delivery model, since the inception. Having all the platform infrastructure and deployment environments on the cloud, enabled us to connect and deliver easily.

5. Most importantly, fun!

Of course, there are Yoga sessions, virtual birthday celebrations, games, and fun!

Check out all the new features in the 10.4 release here

Low-code products provide rapid acceleration of app development using Model Driven Development. The idea of using a model as a starting point to describe your business semantics and then from the model generate application artifacts can be very powerful as it eliminates a lot of code development while building your application.

Low-code products take this approach to accelerate and help deliver applications faster with higher productivity. With that said, there are two interesting angles that low-code products take:

1. Full dependency on Model Driven App Development
2. Partial dependency on Model Driven App Development

Full Dependency on Model Driven App Development

In this scenario, the Model is used to abstract the business semantics and logic, and it is then interpreted at runtime into a working application. There is no real code that is generated and the application is always dependent on the model for its functioning.

This is good for business users to define the model and then have the application derived out of it. The downside is there are very little opportunities to do very specific customizations as there is no code generated or accessible. Magic happens underneath the covers if you will and at any point there is no way to independently take the application out and maintain or enhance outside of the Low-code products. Many Low-Code Products that are business process driven fall into this bucket and suffer from lack of real code generation, customization and more importantly independent existence of the application.

Partial dependency on Model Driven App Development

In this scenario, the Model is used as a starting point to describe business semantics and relationships, and is automatically converted into real code. There is no runtime interpretation of the model. The Application relies on software generated code to be fully functional.

The approach allows users to abstract the business semantics as one is still starting with a Model driven development but allows greater flexibility and customization by allowing developers to access, modify and fully extend real code that is auto generated using the model.

Magic still happens but is fully visible to the developers. At any point in time, since code is always generated it is always accessible. The application can be extended using real code. The application can be exported and has an independent existence outside the low-code product as well. In some ways, you get the best of both worlds, (acceleration and freedom). WaveMaker Low-Code Platform falls into this category and more importantly supports this approach with fully standards based modern technology stack and architecture suited for cloud native application development and delivery.

Originally published in IT BRIEFCASE

The enterprise application market is expected to grow to 250 billion USD by 2024. This is hardly surprising given enterprises are developing more applications than ever before. As enterprises plan to deliver more enterprise applications, pressures of speed-to-market and the lack of talent available necessitates organizations to look for better and smarter alternatives. The application development platform is one such solution. Simply put, a low-code platform is a set of tools that enable application teams to plan, design, develop, test, and deploy applications — consistently and cost-efficiently.

Low-code is the next stage in the evolution of app development platforms. It enables rapid application development with GUIs for programming, pre-fabs and templates for replicability, and CI/CD integration for automated deployments. An important transformation that low-code brings to the application development landscape is the empowering of citizen developers and business users to build enterprise-quality applications, even without specialized programming skills. Gartner finds that "By 2024, low-code application development will be responsible for more than 65 percent of application development activity."

As enterprise applications are large, complex, and come under immense compliance scrutiny, IT leaders worry about the scalability of such platforms, and the applications they build.

Here's how low-code platforms are poised to deliver enterprise scalability

Low-code platforms are poised to deliver both dev-time and run-time scalability. Dev-time scalability is the ability of a low-code platform to scale in line with the development needs of your organizations. It should enable multiple developers, across teams/geographies, programming several use cases, for loosely connected applications, across web, mobile and other platforms.

If you're an application development leader, use the following checklist to assess if your low-code platform offers you dev-time scalability.

Run-time scalability is the ability of the applications developed using low-code platforms to deliver a seamless user experience in production at scale. This means that the application needs to be able to handle large volumes of users, perform complex operations, at high standards of performance and reliability. There is no reason a low-code platform can not do this. John Rymer, Forrester’s principal analyst serving application development & delivery professionals, identifies real-world experiences of developers who have used low-code platforms for applications like full-scale ERP or route 1.5 million orders per day.

If you're the operations lead of an enterprise application, evaluate your new low-code platform for rum-time scalability using the following metrics.

If the answer to the above questions is yes, you might rest assured that it offers runtime scalability. But remember that the role of the low-code platform in application scalability is limited.

To make your application truly scalable, you need to design your architecture for scale: Make sure that there is no single point of failure, build for a 10x use case, enable monitoring and maintainability, and gain visibility of scalability costs as well. If scalability is an important concern for your enterprise application — as it should be — then your best bet is to create internal processes and architecture design that enable such scale and combine them with a low-code platform that would support it.

Originally published in CIOReviewIndia

Banks are at our doorsteps. Quite literally. The innovations in the fintech industry have ensured that “Bankers’ hours” are transformed into a “round-the-clock” experience. With new players such as neo banks, challenger banks, mobile wallets, and even e-commerce entering the market, customers are lining up at the virtual counter and traditional banks are striving to keep pace. Volatility in the banking sector is not new. However, emerging markets, new fintech products, changing customer needs, dynamic regulations, and most recently the pandemic has brought unprecedented changes in the banking industry.

Customer expectations border towards instant gratification. Getting a loan for many has become as easy as ordering a pizza. While this might be true for the progressive banks, some in the brick-and-mortar mode are struggling to survive. Mid-sized banks are reinventing themselves with new products, while the big guns are rolling out customer experiences to the swipe-friendly generation X and Y and Z.

With banks rolling out products and services at an accelerated pace, can ISVs afford to stick to the traditional methods of software development in such a dynamic environment?

In such a do-or-die situation, technical collaborators act as strategic enablers for banks to revive and rejuvenate their banking applications. The modernization of existing banking technologies is not without its challenges. Banks are increasingly looking towards cloud-based SaaS products to create or supplement their banking solutions or are trying to build applications on top of existing legacy systems. Banks meanwhile are mainly concerned with four priorities with respect to modernization:

  • Enhancing customer experience with swift go-to-market
  • Modernizing existing legacy systems
  • Adherence to changing regulations and compliance issues
  • Security

Along with tending to the above, some priorities that banks and in turn, ISV’s need to take care of while building banking solutions.

Creating an Omnichannel Customer Experience

Banks are now faced with the scenario where If a product is not rolled out in a few days’ time, the moment is gone and so is the customer. Financial institutions are now faced with the challenge of creating impactful customer experiences across channels in a matter of weeks. Low-code enables developers to create applications for both mobile, web, tablets and laptops, and even kiosks. Whether it is supporting hybrid apps or native ones, almost all low-code platforms enable the same. Low-code platforms help developers create applications for multiple channels with a single source code providing a continuous experience to the customer across channels. ISVs focusing on business logic can speed up the process by letting low-code bear the weight of easy drag-and-drop visual modeling. Moreover, the agility of the entire process allows business users to collaborate and give real-time feedback eventually churning out Minimum Viable Products in tandem with the market requirements.

Modernizing legacy systems

Evolving customer needs and a diminishing legacy workforce have forced banks to think in terms of either rebuilding or re-architecting legacy systems into a cloud-based SaaS architecture. Encapsulating the existing systems using Open Banking APIs is another option. Technical collaborators can use low-code to iron out these challenges involved in the process.

Data models can be either reused or remodeled. Certain low-code platforms have capabilities of reverse engineering from existing data models into newer database models. While this gives programmers control over the application interfaces, it helps in redesigning the database model for new-age applications. Existing business logic can then be integrated with the backend using low-code.

Building Applications on top of the legacy Layer

In this case, low-code platforms can be used to build responsive UIs on top of legacy using a REST service. Without touching the core logic, low-code can be leveraged to create integrated and optimal applications with a lower turnaround time and better interfaces whilst still using the resilience of legacy core.

Adherence to changing regulations

The current economic situation has imposed a disparate landscape of regulations across banks globally. Technical innovation and regulatory boards have a symbiotic relationship. A change in regulation demands a change in applications. This would require nimble applications to be created/updated without affecting the customer experience. Posed with this challenge, ISVs can dive into the code and customize existing business logic and keep compliance issues at bay. Also, timely releases of the MVPs with respect to changes in regulations keep both business users and customers satisfied.


This is where the role of professional developers is of prominence vis-a-vis the citizen developer. Good low-code platforms have inbuilt security features that get implemented without programmer intervention. However, professional developers, through scrutiny of the code have the ability to make sure that API endpoint permissions are secure and that security vulnerabilities have not been breached. In addition to this, ISVs can offer banks, legal agreements like security and compliance certifications and service level agreements to fortify their products.

In a study conducted by the Everest Group, it has come to light that over 50% of mid-sized banks are mulling switching over to a cloud-based architecture to power their banking services. Digital transformation in banking, quicker go-to-market, enhanced customer experience, resilience, compliance, and security remain catalysts fuelling this change. Low-code platforms cater to all these and more. A case in point is that of a prominent European bank that migrated from an on-premise banking solution to a cloud-based one using Azure DevOps. Using a low-code platform available in the Azure marketplace, the technological collaborators managed around 600 applications in a matter of weeks. The takeaway? Reduced costs by 50%, fast deployment of products, adherence to compliance and regulations, and effortless partnership with business users.

It would be only prudent of ISVs to utilize the ability of low-code platforms to cater to these factors thereby creating “bankable” solutions. To do or not to do should not remain a question!

In 2020, whether or not an IT organization needs agile teams is no longer the debate. The advantages of agile methods on team efficiency, project visibility, scale, and long-term software robustness are rather clear. Gartner observes that enterprise-class agile development and agile ops are sliding into the trough of the hype cycle, meaning, challenges in building and managing agile teams will make themselves more apparent in the near future.

Before we discuss these challenges, let’s understand what we define as an agile team. An agile team for us is a cross-functional group of people who use the required technology and collaborate seamlessly, to develop and deliver a working and tested increment of a product. Typically, agile teams are organized around products or features; and have a seamless intersection across the business, technical and organizational architectures. As a result, agile teams will eliminate dependencies and inefficiencies, empowering them to develop high-quality solutions, quickly and efficiently, to solve real-world problems.

But it’s not as easy as it sounds. Building agile teams — especially for full stack development — is a long-term journey, riddled with practical challenges.

Finding full stack developers

Developers in the end-to-end application development process are often expected to deal with the underlying complexity of integrating, configuring, and developing various systems and frameworks. In the era of modular development and microservices, this can be very complex and time-consuming, often requiring your team members to upskill. In smaller teams, this might just be unaffordable.

Needing specialists

Application development requires highly skilled resources across various phases of the development lifecycle such as  UI design, application architecture, security, performance, etc. Firstly, hiring a specialist in each of these areas can be expensive. Even if you can afford this it can be unnecessary. Even counterproductive in some cases such as when there is not enough work to keep a specialist meaningfully engaged, it could affect their morale and that of the team.

Mounting siloes

A KPMG survey in 2019 found that 45% of their respondents mentioned siloes between business and IT as a key driver for adopting agile. Yet, ironically, when you seek to adopt, agile at scale, siloes can become inevitable. This can then disproportionately affect team collaboration, and even extend the distance from your business requirements.

When unable to overcome these practical challenges, agile teams fail to realize the potential they can achieve... They lose speed-to-market, efficiencies, and even human connections, leading them back — sometimes without their own knowledge — too old ways. This can be dangerous: As they will continue doing agile, conducting daily standup meetings, for example, without actually being agile.

But it doesn’t have to be this way!

Low-code can help IT leaders address all these challenges and more to create leaner and agile teams.

To define low-code in simple terms, it is a visual development approach that enables developers to build web and mobile applications using a graphical interface, instead of writing code. As a result, developers and agile teams with varying levels of experience and various skill sets can come together on the common ground towards accelerated development. Here’s how.

Low-code abstracts complexity and prepares smaller agile teams for a full-stack development

Low-code eliminates the need to find and onboard developers with universal knowledge of the application stack by abstracting the complexity and providing accelerators across the development life cycle. Using low-code platforms, developers easily manage end-to-end application development from UI design, focused code development to deployment; as well as easily own micro-functionality (also known as microservices).

Low-code helps generalists perform specialist roles

With a robust low-code platform, developers with conceptual knowledge of the application landscape will be able to handle end-to-end development more seamlessly. For instance, even without being a UI specialist, a developer would be able to build quality UI for their application. Low-code platforms can also handle integration, security, customization, standards compliance, etc.

This makes developers self-sufficient, and the development process nimble.

Low-code breaks team siloes

Visual prototyping has proven itself to be a gamechanger in translating business requirements into application features. As business users play with working screens and different tools, they are able to see how their brief translates into functionality, and therefore learn to articulate better. On the other hand, developers design the UI, process flow, business logic, etc. visually, enabling faster feedback cycles.

A low-code platform can also serve the purpose of a common integrated development environment (IDE) for your team members to work interchangeably on different aspects of the project. Without relying on myriad tools, languages, and frameworks, your developers can collaborate easily, allowing them to spend less time on cross-training, hand-offs, and documentation.

Low-code accelerates development

The most important promise of agile development has always been speed. IT leaders aspire to build agile teams to take their products to market faster and adapt to market demands quicker. Low-code can help you achieve both.

Eliminating bottlenecks and facilitating collaboration, low-code allows business users to engage more deeply and offering ‘visibility through visual prototypes. With a better understanding of requirements right at the beginning, teams and managers save a lot of time and energy that might otherwise be spent on rework, resulting from clarification of requirements. As a result, you can make the best possible version of your product as quickly as possible.

All of this saved time can be invested in developing new features and testing new functionalities with your customers. If that isn’t worth trying, what is!