Categories
Insights

2020 Predictions: Shifting Dynamics of Evolving Ecosystems

2019 was the year we witnessed business leaders intensify their efforts to embrace digital transformation initiatives and build an adaptive, technical and operational foundation. The challenges were plenty, many of which still need to be addressed.

Companies have had to deal with technical debt and organizational silos, which has increased resource allocation to their core tech stacks. Several digital transformation initiatives fell short on delivering desired returns. Many companies have eagerly adopted new technologies. While all of this was intended to achieve operational efficiency and viability, it has led to dealing with technical challenges.

With 2020 around the corner, the predictions are optimistic and radical. As the challenges continue to be actively addressed, let’s take a look at some of the aspects that will gain momentum in 2020.

CIOs and business leaders will embody transformative rolesbecoming ‘chief enablers.’

These executives will chase tech-driven innovation with grit and break silos of teams to build ecosystems. The focus will revolve around people management, tech-driven innovation and ecosystem-building skills. In 2020, CIOs will be looking to automate their IT tasks and upskill everyone in order to address the increasing pressure to improve efficiency and control costs. This will not translate to layoffs; instead, Forrester Analytics data predicts agile DevOps teams will be created by training teams to manage more complex tasks.

Businesses will leverage the potential of emerging technologies to address challenges.

From decentralized autonomous organizations to immersive workplaces and digital ecosystems, companies will consider emerging technologies to reduce costs and invest in growth. In discussions about the outlook for the global IT market at the Gartner IT Symposium, analysts predicted that in 2020, enterprise software spending will reach $507 billion, a 10.9% growth from 2019.

Companies will adopt an immersive and adaptive IT approach.

Following shape-shifting characteristics of organizations, “fluid IT capability” will be nurtured, where the boundaries between IT and business will fade. Enterprises will embrace agile development practices to ensure better collaboration between business and IT. To achieve agility, businesses will work toward connecting people, applications and devices seamlessly.

With the increasing need to bridge silos, I believe developing enterprise applications with faster release cycles will result in the increasing adoption of low-code platforms. The fact that the low-code development platform market is growing at a rate of 40% and is expected to reach $21.2 billion by 2022 confirms the potential of modernization using emerging technologies.

Initiatives to upskill the workforce will be significant.

I believe this will come to fruition as IT leaders will have to address the challenge of cost control in an economically volatile environment. Cross-domain knowledge workers will be given importance, where employees with higher skills will be paid more and retained. Companies will invest in prepping employees to work together with automation tools and technologies. Employee development and improving the learning agility of teams will become the main priorities.

Companies will design their business applications experience around employees.

As the digital workplace evolves, employees will expect business applications they use and develop to deliver more. This prediction is based on the notion that the “one size fits all” approach offered by some companies will need to change. Low-code platforms will enable application development in alignment with job requirements, and self-service DevOps will democratize the way enterprise applications are deployed and used.

Employee digital dexterity will be the essence of future digital workplaces.

How work gets done will be transformed by employee-facing technologies. Collaborative, cloud-based work management tools will be adopted to create a digital dexterous workforce. Given that the competitive advantage of most companies is derived from how employees use technology, emerging technologies will be adopted widely to make employees and teams more agile, inclusive and engaged.

I foresee 2020 being a year that will witness far-reaching, fast-paced changes. Tech-driven innovation will drive changes in the digital workplace and the ecosystem. Emerging technologies and software platforms will revolutionize how enterprises develop, deliver and manage applications used by their employees and customers. Driven to achieve embedded connectivity, improve business agility and foster innovation, companies will evolve based on the shape-shifting dynamics of the workforce, workspace and marketplace. The best way forward is to plan ahead.

Originally published in Forbes by Vijay Pullur, CEO WaveMaker.

Categories
Insights

Realizing the Benefits of Containers for Rapid Application Delivery

Docker and container technology are well-known in Enterprise today. The simplified view of containers as a miniaturization of VMs seems to yield benefits of portability and faster startup times. But what is less apparent is the benefit they bring to the business. To understand this, we must first look at various scenarios in which the technology can be applied. Just as Java technology applied to IoT or Android is different from that applied to Enterprise software, the benefits realized from any technology, along with its challenges, vary depending upon the context of its application.

In this post, we’ll explore a couple of contexts in which container technology can be applied and how its benefits and challenges differ.

Containers for infrastructure optimization

This is the most common context. Here, containers are adopted by IT as a form of software packaging and distribution. Typically, IT expects to be provided with containers instead of application binaries by the development teams. So containers act as a sort of black box that contains all the software and its dependencies. Developers require to package and deliver a set of container images along with relevant configuration files–that describe how these containers may talk to each other (ports), what storage needs they have (volumes), and so on. From an IT stand-point this creates a homogenous black-box approach to deploying pretty much anything in the Enterprise, and this makes it especially suited to large, data-center scale deployments.

In this condition, the application and adoption of container technology is largely IT-oriented. It favours IT over developers as the latter need to do a lot of heavy-lifting–converting their app binaries and dependencies into container images and pushing them into a container registry. Most container management platforms out there focus on providing the right tools to IT to pull those images from a registry and provision them on a set of machines (physical or virtual). The focus of such platforms is purely on run-time aspects, such as container orchestration, with a very little context of the app or the app stack itself.

The key benefit of approaching container technology in this context is the optimization of infrastructure resource. Platforms like Kubernetes were born out of such a need to optimize infrastructure usage at very large scales (say, millions of containers). However, there are two points of caution. One, this may result in further isolation between IT and developers causing more throw-the-problem-over-the-wall scenarios. No matter how perfect the technology, experience tells us that more de-siloed communication and collaboration is the approach towards hassle-free and rapid delivery of applications in production. Hence, “DevOps”. Two, it is questionable whether all applications are suited to such a black-box hands-off approach between developers and IT. Also, the effectiveness of this approach in real usage remains to be seen.

Containers for rapid application delivery

In this case, application delivery teams adopt containers with the primary goal of speeding up the time-to-market for their apps or products. Using the rapid portability advantages of containers, development and devops engineers put together the app composition, wire together various services/ micro-services–by use of service discovery–and setup configurations for various environments. This context of container usage is more app-focused and less infrastructure-focused (though the resource optimization benefits of containers accrue over time as more apps adopt containers for delivery). Also, the approach is both design-time and run-time focused and favours development and DevOps teams over IT. It seeks to make development teams self-sufficient in getting their apps into the hands of their users.

Few platforms focus on these aspects that provide developers the required tools to automate the generation of container images, service versioning, and configuration for multiple environments of the app. The most important benefits of such platforms are rapid containerization of existing apps, rapid provisioning and configuration, and easy promotion of apps from one environment to another. Orchestration takes care of scalability and high-availability requirements, and these are configured entirely from an application perspective.

The greatest benefit for enterprises using containers for rapid application delivery is time-to-market for their apps rather than infrastructure optimization. As the market for containers matures further, expect to see a shift in focus towards this direction.

Introducing WaveMaker HyScale

Wavemaker HyScale is an app containerization and container management platform that takes the view that an application’s time-to-market is a far more important focus for Enterprise business than infra-resource optimization. The platform is built ground-up with the application in mind and every aspect is designed around the app’s stack, the app’s services, and the app’s configuration. Hence there are very few (if any) aspects of the platform that require users to deal with the underlying container technology aspects. In fact, HyScale makes it very easy for users to adopt the platform–and thereby adopt containers–without even requiring to know Docker, or use any Docker commands or even any kind of build/ deploy YAML configuration files.

HyScale allows development teams to stay focused on the app and become self-servicing at the same time, allowing them to rapidly deploy and iterate over their app.

Contact us to know more about how WaveMaker HyScale can empower your organization to achieve faster time-to-market with containers and without having to re-skill or re-tool you development workflows.

Categories
Insights

What are CIOs expecting from low-code platforms in recent times

CIOs are finding it harder to meet their digital goals with obstacles like,

  • Finding skilled developers and development resources
  • Customers with ever-hungry digital application demands
  • Customers seeking new experiences with their legacy applications
  • The problem of solving infinite customer demands with finite developers
  • Clearing IT backlog   
  • Managing and keeping the harmony of individual IT silos
  • Maintaining pace with the enterprise app explosion

These obstacles manifest into expectations, imperatives, and challenges that organizations need to be aware of and take appropriate actions. Many organizations have responded by using one of a growing breed of “low-code,” rapid development platforms to overcome the obstacles. Low-code application Platform delivery business applications through a Rapid Application Development and Delivery approach, where the apps are created visually involving a minimum of hand-coding and upfront investment in setup, training, and deployment.

Visual development:

The fundamental expectation from a low-code app development platform is to offer a WYSIWYG development environment where developers can drag and drop components to design responsive user interfaces that adapt to a device’s screen resolution. Some Low-code Platforms take an extra step to offer out-of-the-box templates for commonly used layouts and screens such as dashboards. The demand for enterprise mobile apps has meant that Low-code Platforms have also started to offer cross-platform mobile app development with access to native mobile device features while abstracting the underlying operating system complexities.

Simplified Integration

Virtually every business application depends on data to create a meaningful application. But data is available from disparate systems ranging from proprietary enterprise systems to APIs from external entities and everything in between. Hence, data integration consumes an inordinate amount of time and resources during enterprise application development. A Low-code Platform is expected to provide a visual approach for developers to connect to these data sources and embed data elements directly into the application. Some platforms also allow professional developers to design data models and configure business logic directly inside the low-code app.

Instant Deployment

Beyond the need to eliminate or reduce application coding, Low-code Platforms are expected to streamline and speed up the application delivery process itself. One key characteristic is the ability to instantly deploy an application with zero DevOps. Such platforms also offer a single point of control for app maintenance and updates. While other low-code app development platforms extend the capabilities to security, governance, version control, infrastructure auto-scaling, and more.

What CIOs get by investing in a low-code platform

  1. Business IT Alignment:
    Low-code app development platforms enable close collaboration between developers, business analysts, and subject matter experts. This greatly benefits enterprises as rework is greatly reduced and cost overrun is avoided to a large extent.
  2. Clear IT Backlog:
    The linear approach of conventional software development models presents significant opportunities to reduce waste and fast-forward delivery. Low-code platforms streamline and speed up the development and delivery process, achieving a substantial reduction of the IT backlog.
  3. Democratization of App Delivery:
    With the ever-rising demand for applications, enterprises are expanding their internal talent pools, for building noncritical or long-tail apps using nontraditional developer talent like technical business users.
  4. Consumer-grade Business Apps:
    Today, customers and employees expect to access apps from a variety of devices, putting additional pressure on developers. Low-code Platforms with modern frameworks can provide consumer-grade applications using enterprise-grade technology at a fraction of the cost.
  5. Speed Innovation:
    Competitive advantage lies with companies that focus the most on ‘Systems of Innovation’. Low-code platforms are ideal for such systems that require the most experimentation and experience the highest rate of change.
  6. Cost and Effort:
    Do more with less is a philosophy that CIOs have to live with these days. But, with low code application platforms, CIOs come closer to achieving that. Enterprises can have the best of both worlds where they can build enterprise-grade apps of the highest quality in a matter of days to weeks as compared to months in the traditional approach to development.
  7. Repurpose & Reuse Resources:
    Whenever enterprises have a mandate to modernize, CIOs have a big dilemma in handling existing resources with legacy technical skills but with knowledge of the core business process. But with low code application platform, with their unique visual development approach, CIOs get an opportunity to reuse their existing resources and modernizing legacy projects without any issues.

With the WaveMaker low-code platforms, the above expectations and more can be met.

Get started with a free trial of WaveMaker low-code platform today!

Categories
Insights

Predictions for low code development using RAD platforms!

It’s that time of the year!!  Predictions for Low Code Development using RAD Platforms.
First of all wishing everyone a great new year and all the success for your products, services, customers and partners! It is that time of the year, where many in the technology industry spend time penning down predictions on the future of technology and everything revolving around it.  In the past few days, I have read various predictions on technology, tech marketing, sales enablement, tech disruptions, Cyber Security, and the list goes on and on…
I thought to contribute one more prediction to the many, out there.
This blog is my personal take on what 2017 will look for the RAD (Rapid Application Development) and more specifically trends within Applications developed using such an approach. This is based on my experiences working with customers, partners, speaking to folks in this industry and general analysis of the market trends.

Adoption

  • More Enterprises will continue to invest heavily in searching, exploring and concept proofing RAD for their own development needs.
  • RAD will move from experimental discussion to a serious topic of discussion and consideration among architects, development leaders and application influencers within enterprises as a way to increase productivity to develop Applications.
  • While RAD and low code development platforms came to being to democratize app development and continue to do so, we will see more of professional application developers join the bandwagon of using RAD platforms as a way to develop sophisticated enterprise applications.

Scope of RAD Platforms

  • RAD vendors will evolve from only development to full-fledged development, deployment and application hosting platforms
  •  As professional developers get deeply involved with RAD, they will want to bring in best practices in app development, deployment and DevOps from their vast experiences into application lifecycle. They will push the borders of RAD to increase its scope to include features around DevOps integration, code Branching, automated testing, cloud deployment, real time integration etc.
  • IoT platform integration will emerge as a key use for applications.

Ease of Development
RAD platforms will be expected to provide drag and drop out of box packaged integrations to commonly used services (Payment Gateways, SaaS Platforms, Identity Services, Cloud Services etc). As part of this, API based integration will become a de facto way to develop applications and integrate with internal as well as external systems.        

Ecosystem Play
For enterprises to fully utilize the power of RAD platforms, they will start to coexist RAD with other complementary platforms in the overall App Ecosystem.

  • RAD and API Management Platforms complement each other. These two platforms can feed off each other. RAD can help solve the last mile problem of easy app development for API management platforms. RAD can help create the APIs for App management platforms.
  • With IoT gaining traction, RAD and IoT platforms will gain more traction in this year.
  • SaaS Platforms will use RAD as an effective way to increase developer adoption and ecosystem creation.

Hope this prediction list has been interesting. Let’s see how 2017 pans out for RAD / Low  Code Platforms. While I am not a fortune-teller and do not intend to be one, and guarantee the above predictions, there is one thing I can guarantee, that the ride will be exciting for  RAD platform vendors as well as enterprises that adopt it. So stay tuned and let’s see how this unfolds itself.

Categories
Insights

How to eliminate silos in a large organization

As an Architect for WaveMaker, I have come across multiple IT environments.  They are getting more and more complex by the day, in spite of all advances with cloud computing and deployment options. IT Environments in large complex organization are typically dispersed and have multiple silos as shown in the graphic below.

In addition, sub-groups typically have their own processes and technologies. This makes integration across organization and centralization of IT applications a big challenge.

This problem gets aggravated with each M&A activity. Acquisitions provide a great opportunity for innovation with possibility of integrating assets of different organizations. But different technologies, systems and processes hinder the realization of these opportunities.

Consolidation of IT for these organization is a good position to be in as shown in the graphic below. But it is not trivial to achieve. More than the technology, managing resources, skills and practices across organization become bigger challenges.

Now, what if we can achieve integration of these different systems without actually consolidating IT systems?  What if different existing systems can co-exist while realizing the benefits of consolidation? How would you go about doing it?

Step 1: Ensure all systems are API-enabled

If you want to make your application future proof, there is no other alternative other than to build APIs. How to make different types of applications API enabled, is a topic for another blog.

Let’s look at the organization now in the graphic below.

So what has changed?

Now, every system is open for communication. There may be different systems using different technologies, but they can all talk to each other with a common simple language. APIs.

As we have all the systems accessible, what next? How do we consolidate the information from here?

Step 2: Consolidate endpoints with API management

You must have looked at API management from the point of view of identity, authentication, rate limiting, throttling, metering etc. But to make best use of internal APIs, we need to transform them,  aggregate them and cache them where needed.

Take an example of application like Kayak. They aggregate APIs from multiple airlines.

  • APIs have different formats, so it needs to be first transformed to Kayak format.
  • Some APIs may not be available reliably, so it needs to be cached
  • Other airlines may not even have APIs. In which case, Protocol/API wrappers needs to be created over them.
  • And these APIs must be aggregated to Kayak APIs. UI and other consumers should not call these APIs separately.

Similar is the requirement of a complex organization. Think of your large organization as vendors across multiple silos. Would you not like to manage all your vendors from a single place?

Current API Management products need to evolve to meet these challenges. API Management technologies, for most of its life, was geared to public APIs that you wanted to monetize. They have also been priced by traffic usage. Recently many of these API Management vendors have started focusing on these internal enterprise APIs.

The graphic below shows how an API management platform is consolidated.

After the end of second step you are in a state where you have consolidated endpoints. A happy, future proof state to be in. But this also means need for applications using these APIs. Not only the IT systems, but multiple potential applications waiting to integrate these APIs to speed innovation to a different level.

Step 3: Enable rapid application delivery

With so much of information available, you clearly can think of many more applications, than your IT can develop. Coding is time consuming. Current trend is to go for ready to use components than to write them from scratch.

Going a step further, you don’t want to fall into figuring out the integration of these ready to use components either (boilerplate code). Developers with minimum technical/UI skills should also be able to deliver applications. But that simply increases the risk of poor quality applications.

This is where, low code rapid application delivery platform can help you generate consistent beautiful looking applications. Reusable widgets, styles and templates are provided by the UI experts and other developers can simply use it with drag drop features.

In summary, I have shown you a path to consolidate all your silos via APIs, manage them using a API management tool and finally build innovative apps much more rapidly.

Categories
Insights

7 Monsters that spook your Enterprise Applications

Why is it that 75% of the business and IT executives anticipate their software projects will fail? Why is failure rate often a planned expense that is written off long before development ever begins? Here’s a fun infographic to not only understand the major friction points in delivering successful enterprise applications but also learn how to tackle these monsters and speed custom app creation.

Do tell us about the monsters that scare you the most and any other ghouls we may have missed. Happy Halloween!

Categories
Insights

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.

Categories
Enterprise Application Development

How to Create API-Centric Web Apps

As we are all aware, in today’s hyper-connected world of applications, it is not uncommon for any product, service, or application to have APIs. APIs (Application Programming Interface) has become the de-facto foundational technology for enterprise app development and more specifically for Web applications.

An API-Centric or API-Driven Web Application is a web application that basically executes most, if not, all of its functionality through API calls. In an API-Centric web application, the front-end communicates with the backend using just APIs.

There are a number of advantages of developing an API-centric web application, namely,

  1. Easy consumption on multiple devices. RESTful APIs provide a lightweight integration model that significantly helps in creating mobile applications.
  2. Business logic is well contained with individual APIs.
  3. Ease of application development as the focus of application in on the front end-user interaction.
  4. Forces Reuse, as APIs developed can be used by multiple applications on multiple form factors.
  5. With the proliferation of APIs (Open, Cloud, SaaS), etc., developing applications becomes faster and easier.

In this post, we will see how developers can easily create API-Centric Web applications using WaveMaker Studio. Using Import functionality, a developer can use a wizard to import REST, SOAP APIs into the application development. Figure 1, shows how a REST API is imported in Studio,

REST APIs can be secured or non-secured. WaveMaker REST API Import Wizard allows for quick consumption of Secured as well as Non-Secured REST APIs. Secured APIs can be imported in 2 ways,

  • Using Basic HTTP Authentication, passing in Username and Password. Enable the HTTP Authentication check box as shown in Figure 2, to import the API.
  • Passing Security Tokens via HTTP Header properties. For example in order to authenticate via OAuth Security, Authorization: Bearer token is sent in the header to get back an OAuth access token. See Figure 3 that shows how the Authorization Token is passed to the API. Similarly other tokens, cookies can be used as required by the REST API.

API-Centric Applications also make it easier for external applications (Mobile as well as Web) to integrate into it easily. It does it by exposing REST APIs to the external world.

WaveMaker Studio soon [1] will have support for creating a Swagger 2.0 compliant API Specification file for the auto-generated REST APIs as part of the Application developed. See the previous post on API Designer that talks about Studio-Auto generating REST APIs. In the upcoming version, the API Designer will generate Swagger conformant REST API documentation. More about it in a later blog post. Figure 4 shows below the Swagger 2.0 document for the HR DB (Sample DB) REST APIs auto-generated by Studio.

This Swagger document can also be taken and used to publish the APIs for the external world using WaveMaker Gateway product.

Excited about developing API-Centric applications using Studio?  If so, log in to WaveMaker Online and create one. If you have any suggestions and feedback contact us.

Mayur Shah (mayur.shah@wavemaker.com)

WaveMaker Passionate Technologist

Categories
Insights

The Rapid Application Delivery (RAD) Reality

Traditionally RAD has referred to Rapid Application Development, a way of building applications that contrasts with the more formal Waterfall model. As you would expect, RAD produced results quickly using tools that generated the application code from a high-level description or definition (in other words ‘software design specification’). Readjusting the design specification meant the application could be regenerated, thus saving time needed to rebuild the application to accommodate business changes. So, as a corollary, RAD supported Enterprise Agility.

Shortcoming of Rapid Application Development

Such code (re)generation from a model or specification was done using code-generating tools* that focused on database applications – and that includes a lot of applications. The generated code was rarely as good as the code written by a skilled human programmer. But really, many applications did not need hand-crafted code.
The perceived need for highly performant code confined RAD tools to prototyping, and away from final production (real-life) applications. The generated code was hardly readable and very difficult to maintain. Neither could such code be taken into professional development tools (the modern-day IDE) for enhancement. This was a real blocker for writing production-grade applications.
Code-generation was really a tradeoff between how quickly one can hack an application together and the resources it needed at runtime. Indeed, the need for constant business innovation was changing the speed at which enterprise applications were being thought up and written.

RAD for live apps gaining acceptance

Two important factors have started to tilt the balance in favor of RAD or generated code: (1) consumerization of IT or increasing importance of user interface (experience), and (2) adoption of the cloud model or scaling through commodity hardware.
1. UX Factor. Good UX can be the main difference between a hugely successful app and a complete failure of an app in the hands of intended users.

Good UX balances amazing looks, engaging experience, and ease of use. These are not easy for developer teams to build into apps, neither is it natural for them. But with the changing profile of employees and customers, most enterprises are realizing the importance of front-end focused applications, and tools that could help achieve good results quickly.
2. Cloud model. The crashing cost of computing and storage means the primary concern of software development is no longer hardware scarcity and optimized resource utilization. Cloud platforms built on commodity hardware and horizontal-scaling designs have further relaxed the need for handcrafted and highly performant code.

Rapid Application Delivery is the new RAD

The factors that lead to the increasing acceptability of Rapid Application Development (RAD) point us to the inclusion of Rapid Application Deployment as an important supplement. This changes RAD to Rapid Application Development and Deployment (RADD), or simply Rapid Application Delivery (the new RAD).
This renewed interest in RAD is reducing time to deliver new apps – the time between when a business feels the need for an app and the time it is ready to use. A successful RAD platform may have to focus on all 3 elements involved in the delivery of applications: Development, Integration, and Deployment. Also, RAD tools need to assist in getting the UX to finish.
* Quoted from the book “Code Complete” By Steve McConnell. More here at Chapter 30.

Categories
Insights

Designing the sandbox for Enterprise Innovation

The previous post in this series, discussed issues confronting an enterprise and how they translate into the need for building innovative applications, and here is an outline the sandbox that could meet this need.
While it is easier to understand the need for innovative business applications, enabling their development in an enterprise is not easy. Let us explore four major factors that shape an enterprise innovation platform.
Speed: An enterprise innovation platform should enable applications to be developed quickly, integrated with data sources or System of Records in the company, and deployed for ready use by the business. While the speed of application development is important, it is also necessary to get the user experience and scalability right – two traditional time-consuming elements.
Ideation: Innovative applications need ideas, inputs, and participation from many different people in the enterprise, even during stages of development. While most developer tools are not accessible to business users and those beyond IT, a collaborative environment provides an opportunity for the company to innovate faster.
Involvement: Apart from critiquing and suggesting improvements post facto, it might be good to involve business users early on in application building. The innovation infrastructure should provide a way for “citizen developers” (business-user-developer) in the company to compose applications using thin software staff.
Evolution: Really, no one knows exactly, and it cannot be pre-determined, what applications are needed for the company to succeed through innovation. At times the specs are unclear to start with or can only become clear when the application (and its underlying intent or strategy) is used in the market. That means the innovation infrastructure must be designed for multi-round evolution of application with zero hindrance to change and always open to chance.

The Sandbox should obviate ‘Shadow IT’

Business users and software developers are not happy at the pace of innovation in their companies and find it hard to understand numerous processes and limitations that prohibit them from moving faster. In some cases, this results in ‘The Shadow IT’. While the intent may be good, the path may prove not to be.
Internet is full of stories of things gone wrong with Shadow IT. The worst of all is when sincere efforts at innovation end up in wasted resources and frustrated talent.
This necessitates an IT-sanctioned platform that not only encourages enterprise innovation but also makes innovation application projects effortless as much as possible.

How the Sandbox makes it easy

Development
The speed and ease of development of apps is the key to enterprise innovation infrastructure (the Innovation Sandbox). Replace traditional methods of long-drawn software projects (possibly through an RFP process) with Rapid Application Delivery (RAD).
Speed of development is important, but not at the cost of user experience of the application. This is important, as every user (including employees of the company), is influenced by the great apps of the consumer world.
Therefore this sandbox environment must enable a wider section of the enterprise to participate in building applications and not be limited to highly professional developers.
Integration
Any enterprise application has to integrate with important data stored in the company’s System of Records (applications that hold key data) and perhaps with Systems of Differentiation (applications that automate processes).
Enterprise application integration is achieved rapidly when such integration is done through Application Programming Interfaces (or APIs). The simpler architecture of REST APIs and learnings from the consumer web are finding widespread adoption in the enterprise.
Deployment
Building an app for scalability is a challenge that can slow down any development team. Gradual decline in hardware pricing and increasing power of commodity hardware means developers no longer need to build software for hardware scarcity, they can assume a scalable platform underneath.The sandbox has to enable designing for the cloud, where applications are built to horizontally scale (through addition of computing resources as needed at runtime, without the need for software changes).
An IT-administered private cloud (under IT control, flexible on-demand provisioning, and enterprise data-safe, hence private) needs to power the enterprise innovation infrastructure to remove dependence on IT for provisioning computing resources and reduce wait times for apps to become available to business users.
Collaboration
Innovative applications cannot be conceived and built-in in isolation. The wider the participation, the higher the chances of innovation in the enterprise. Collaboration tools integrated into the development process improves visibility of apps being built, API design, and coordination within the team as well as outside.
Management
While the sandbox should be a simple, fully integrated environment, the task of managing such an environment is obviously complex. Doing this complex job of configuring, managing, and monitoring this system, needs powerful and integrated management tools.

Sandbox means freedom

The Sandbox for enterprise innovation (a new piece of software running on an IT-sanctioned environment) should provide the essential freedom from issues that confront today’s enterprise app development teams. The picture above captures the essential ingredients of such an infrastructure. Clearly, to think outside the box is to think rapid development, to think Cloud and rapid integration through published APIs.
As Peter High, the author of “World Class IT: Why Businesses Succeed When IT Triumphs” says “Infrastructure excellence separates proactive organizations from reactive ones.” Creating an innovation sandbox for their enterprise is fast becoming an important responsibility of the CIO office.