September 30, 2015

Modern RAD for Modern Enterprise Applications

The age-old problem chasing Enterprise IT custom application software development is the inability to deliver applications on time and at the speed with which business demands. Some stats here will validate this:

One in six projects have a cost overrun of 200%, on average, and a schedule overrun of almost 70%. Source: HBR Study

75% of business and IT executives anticipate their software projects will fail. Source: Geneca Study

Enterprises over the years have been dealing with some key challenges not limited to, complexity in dealing with technology stacks, lack of faster approaches to application development, lack of business user participation through the lifecycle, lack of on-demand infrastructure readiness etc.

Another major complaint of employees is the lack of usability and user experience design of enterprise applications. Former NYTimes.com Design Director Khoi Vinh captured this common frustration in his seminal 2007 article.

"If it looks like a cow, swims like a dolphin and quacks like a duck, It must be Enterprise Software"

Now let us take a step back and talk about how we solve this enterprise conundrum of developing custom applications at rapid pace with good-looking user experience and with enterprise standards. To do this, let us understand a concept called Rapid Application Development and its history.

What is Rapid Application Development?

A system development approach that employs tools, techniques, and methodologies designed to speed application development. Source: Fundamentals of Information Systems 7th Edition by Ralph Stair and George Reynolds

RAD tools have been around since the late 80’s. Multiple attempts have been made to improve application development productivity. Historically, the key focus of these tools was mostly just on code generation. Developers still had to worry about app infrastructure, code openness and extensibility, application integration plumbing, hosting, and monitoring of apps. While these tools helped in developer productivity, it came short of fulfilling the enterprise desire to create applications that are rich in user experiences.

Era of Consumerization

The consumerization of IT has raised the bar with respect to User Experience and Usability. Enterprises are expected to carry over the learnings from the consumer world and pay high attention to this. We have witnessed the emergence of these technologies that has fundamentally shaped the nature of computing. These include and are not limited to, user-centered design, cloud computing, Web APIs, Enterprise mobility, Client-Side Development Frameworks, and Continuous delivery.

So the next logical question is can we combine the modern technological innovations and RAD together to provide a wholesome platform to Enterprises looking to develop modern user-centric responsive custom web applications at speeds that can match business expectations.

This is the emergence of what I call Modern RAD (Modern Rapid Application Delivery) platforms.

What do Modern RAD platforms offer?

Modern RAD not only focuses on reducing application development timelines, but also addresses a whole slew of other related aspects of modern web applications required for today’s modern enterprise. Modern RAD emphasizes on:

  • Ready-made Application Infrastructure: Providing a browser based development environment. No more hassle of installing, setup, ongoing configuration etc.
  • Usability: Making sure good-looking and rich user interactive applications can be developed. Increased attention to creating pixel perfect responsive UI applications on both Desktop as well as Mobile Devices.
  • Full Stack Development: By leveraging modern client side frameworks and server side technologies, Modern RAD is now capable to auto generate code for the entire application (client side, Server side as well as integration touchpoints to external systems and services via APIs).
  • Pre-Defined Best of Breed Technology Stack: Providing a pre-defined well tested best of breed of software components as the technology stack for application development. No more worries about enterprises having to maintain multiple teams to support complex permutations of technology stacks.
  • Business User Participation: Simplifying the application development process such that technical business users can work together with professional developers in developing the application. This greatly benefits enterprises as business user comes in with domain knowledge and can validate the implementation, as it is being developed.
  • API-led Integration: Providing REST API-based integration approach such that application can easily integrate to an internal, external as well as Cloud-based service. This allows for faster, easier development and avoids reinventing the wheel again.
    and  finally one more important thing,
  • Displace Stigma attached to RAD: There is a stigma attached to using RAD platforms. “How good is the application created using RAD, as compared to a self-developed one?” Scalability, Security, Extensibility, Maintainability, Enterprise Architecture, Modularity of generated Code get questioned. Modern RAD this time around, also lays a great emphasis on this. In addition to features that help increase develop productivity, these items are addressed at greater degree to comfort Enterprises in adopting and deploying at large scale.

Is Modern Rapid Application Development the answer to the problems that plague today’s Enterprise IT? Or is it too good to be true? What do you think?

You can also watch the recorded videos of our Webinar Modern RAD - Too good to be true?, where we have discussed modern RAD and evaluate its potential for enterprises to cope with rapidly evolving business demands.