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 roles, becoming '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.
Docker and container technology are well-known in Enterprise today. The simplified view of containers as 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.
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 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 resources. 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.
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 set up 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 favors the 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.
Wavemaker HyScale is 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.
CIOs are finding it harder to meet their digital goals with obstacles like,
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 delivers 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.
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.
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.
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.
With the WaveMaker low-code platforms, the above expectations and more can be met.
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.
Scope of RAD Platforms
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.
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.
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.
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 organizations 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 organizations and the centralization of IT applications a big challenge.
This problem gets aggravated with each M&A activity. Acquisitions provide a great opportunity for innovation with the possibility of integrating assets of different organizations. But different technologies, systems, and processes hinder the realization of these opportunities.
Consolidation of IT for these organizations 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 organizations 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?
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?
You must have looked at API management from the point of view of identity, authentication, rate limiting, throttling, metering, etc. But to make the best use of internal APIs, we need to transform them, aggregate them, and cache them where needed.
Take an example of an application like Kayak. They aggregate APIs from multiple airlines.
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 their life, we're 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 the second step, you are in a state where you have consolidated endpoints. A happy, future-proof state to be in. But this also means they need 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.
With so much information available, you clearly can think of many more applications, than your IT can develop. Coding is time-consuming. The 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 a 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 them with drag-drop features.
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 up custom app creation.
Do tell us about the monsters that scare you the most and any other ghouls we may have missed. Happy Halloween!
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.
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.
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.
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:
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.
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,
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,
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  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.
Mayur Shah (firstname.lastname@example.org)
WaveMaker Passionate Technologist
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.
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.
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.
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.
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.
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.
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.
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.
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 the 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.
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 improve visibility of apps being built, API design, and coordination within the team as well as outside.
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.
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.