When we talk about an agile enterprise, we usually refer to its ability to organize and make the best use of its available resources to deliver projects on time. Factors like this and then some more – being able to make quick deployment of the right people to the project, establishing governance practices that allow quick decision making, and standardizing key processes – lead to an increase in agility and performance of an enterprise.
Some may ask whether enterprise agility is the same as digital transformation. The answer is no. Digital transformation deals with the ‘how to deliver’ aspect of a business strategy, adapting your business offering to cater to the digitally savvy customer and omnichannel customer engagement. Enterprise agility deals with the nuts and bolts of this adaptive ability. It is more technical in nature dealing with the whole life cycle of application development, including intra-departmental APIs, rapid app building platforms, cloud technology and collaborative microapps.
The traditionally accepted waterfall model of app development required each stage of the development process to be completed fully before the next phase can start. Reviewing and documentation take place at the end of each phase to figure out whether the project is moving along the right path and whether to continue or discard it. Software testing in case of waterfall method takes place only after the development process is complete. This method has its limitations as user expectation might change even when the developer is working on the UI screens and server APIs. This means discarding the entire application and starting all over again. Beside this, there are other disadvantages of the waterfall method –
Though it has certain shortcomings, the waterfall model is sometimes beneficial for the limited functionality of small budget apps. But when it comes to enterprise and consumer mobile apps, this model fails to meet cost and time to market expectations. This is where agile methodologies make its mark. It breaks down the application development process into small steps, while at the same time integrating review, documentation and testing at each step. It takes an iterative approach to application building which is streamlined and flexible, allowing for changes to be made on an as needed basis.
In the run to compete in the market, every organization is trying to become faster and better in what they are doing. No matter how efficient they are, it is always difficult to determine what changes to make to create the maximum impact in the market. One way to determine the agility of your organization is to look at the software development lifecycle. Let us look at the phases that constitute an app’s lifecycle –
With time, new and emerging trends in enterprise application started impacting application development in a big way. Ease of usability and responsive design became the norm of the day. Technology today is more consumer oriented to increase accessibility and ease of operation for users of enterprise applications. Catering to this requirement, applications today are hosted, developed, and customized on the cloud. Traditional methods of building software applications failed to meet these demands, not just for web applications but for mobile applications as well.
Low-code development emerged as an easy answer for successfully delivering applications and improve business agility. It enables development teams to rapidly develop, test, and deploy applications with little to no hand-coding. This process makes use of declarative approaches specifying the actions of the desired application which the platform then creates or renders. It follows an iterative process where customers are involved at each phase of development. Changes are incorporated immediately, making the process much faster.
Let’s look at how low-code addresses app development across its lifecycle –
Low-code platforms have modernized the way enterprises build, deliver and manage web and mobile applications, improving business agility and fostering innovation. The benefits have a direct bearing on the cost and schedule of enterprise application delivery.
The agile development approach to building application encourages the team to deliver the project within the deadline, resulting in earlier market reach. It contrasts the waterfall model’s lack of flexibility and its linear stages to software development.
The agile model focuses on customer collaboration, continuous delivery, constant feedback and communication between developers, customers and users while delivering software incrementally. Agile can work wonders for app development, provided you know how to make agile work for your business needs.
Originally published in The Tech Portal
“Open standards for information technology” seem to be a new term that everyone is talking about recently. But, as a matter of fact, standards have been here for a long time. The socket and the plug that you use for charging your electronic devices, USB cables that fit perfectly into the given slots, or the WiFi signals that your devices connect to - all of these adhere to open standards.
As opposed to this, there are proprietary standards. As the name suggests, proprietary standards are the ones that are “closed” - those which are compatible only with a few specific configurations. The addition of features within the system itself is a cakewalk. But, when it comes to the integration of technologies belonging to a different system, it is either a tedious task or not possible at all.
This turned the attention of business owners to open standard-based technology architecture. The use of open standards fosters innovations resulting in disruptive technologies engulfing the market. At the end, the end-user wins by not getting locked into one large company’s way of conducting business.
In general, open-source refers to any software program that has an editable source code, available for users and developers to modify it as per their requirements. Open-source software is usually developed as a public collaboration and can be used by anyone freely. On the other hand, open standard software is defined as software that follows the guidelines laid down to keep technologies “open”. These guidelines allow free sharing of all data types with perfect fidelity. Open standards help avoid vendor lock-in and thereby, enhance interoperability.
Concept-wise, open-source and open standards groups are alike in more ways than they are different. The goal of both groups is to create an immense amount of shared value that can be used by anyone freely. Both open source and open standards advocates have similar ideas about governing an open project, but their approaches to it are different.
Application development can gain a lot more by collaborating both open source and open standard software. In the technical sphere, open-source projects based on open standards stand better chances to receive access and support on governance matters and other industry acceptable documentation. It can open funding opportunities that can impact the enterprise’s goals.
Now, let’s look at some business benefits of adopting open standards.
In the present scenario, for enterprise applications to offer a complete service, it needs to have several third-party integrations. Let’s consider a taxi booking application that people access from their smartphones. The app needs to track the phone’s GPS to detect its location and then give this information to the driver so that it can reach the user at the exact location. This functionality of navigation is added to the application by integrating a mapping service - say, Google maps. For successful integration of separate applications, the software and the data must be made to work together without any miscommunication. This is possible only with open standards which enable different software systems to share data easily with speed and reliability.
So, now when one application needs to work with diverse systems having services distributed across multiple domains, there is a need to have a connecting link for the swift transfer of data. Application Programming Interfaces (APIs) make this connecting link possible. Here is where interoperability steps in. If your business application adheres to open standards, there are standard-based APIs that one can use to connect with any system. But, if your application follows proprietary standards, the choices are limited, and one needs to develop custom APIs for the same. This leads to vendor lock-in. You are stuck with using a system owned by a specific vendor. Due to this, the shortcomings of those systems affect the efficiency of your application as well. Instead, building an application with open standards, you are not tied down by any vendor or its shortcomings.
A business application generally needs to be so designed that it is compatible across various systems and varied screens. If the application follows closed standards, this is only possible when each compatibility is individually addressed. One may need to design extensive proprietary interfaces for enabling compatibility with each system thus, limiting interoperability. On the other hand, open standards will pave the way for a fully interoperable business application that has a simple plug-and-play set up for all systems across all devices. Thus, you save a lot of man-hours spent on developing custom interfaces or offering extensive integration services to customers.
It is extremely difficult to convert the data if an application, which is becoming obsolete, supports proprietary files. With open standards, however, file types and data are protected against applications becoming obsolete. If a file type follows open standards, the new application can easily use the data or convert it.
It is easier to port one application across multiple platforms if the implementation follows standardized rules and guidelines. Further, it requires less training to develop the application on different platforms as well. In contrast, proprietary applications typically require more training and knowledge as information is not publicly available about them.
By saving man-hours, you reduce the time to market. Again, when your application is up and ready in a short time span and integration service needs are non-existent, you also save a lot on development costs. With low development costs and no vendor lock-in, the total cost of ownership of the application is low as well.
In the present-day world, there are new technologies emerging at a very fast pace. Taking this into consideration, it would be preferable to have an application that can readily catch up with all the advancements in technology. Looking from a business point of view, open standards are a necessity while open source is a choice. By choosing software frameworks that are open standards-compliant, the resulting business applications will adhere to the accepted levels of security and modes of data interchange and exchange. It also improves the accessibility and quality of your business application. Whereas, you may choose an open-source or proprietary software for building your applications purely based on your needs and preferences.
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.
Stack Overflow recently announced the results of their annual developer survey. This year, over 50,000 developers in 170+ countries answered 45 questions ranging from the programming language they use the most to whether they preferred Star Wars or Star Trek, and everything in between. Maybe that is why they call it “the most comprehensive developer survey ever conducted.”
The survey provides insights into popular technologies, diversity, compensation, and sci-fi preferences. You can go ahead and get your geek on with the survey results here. But in this post, we will interpret the results from an application delivery perspective, focusing on the technologies and challenges.
Looking back, WaveMaker made a prescient choice by rebuilding its RAD Platform a couple of years ago using AngularJS. For those who are new to WaveMaker, versions prior to Studio 7 were based on the Dojo framework.
Amidst the rapid technological changes, the challenges to application delivery remain and continue to put pressure on IT to deliver applications at the speed of business. As per the Stack Overflow survey, developers cited the following challenges at work:
Sounds familiar isn't it? One way to broadly categorize these gripes would be under:
Do share what, according to you, are the challenges and solutions in the comments section.
In an organization, business applications are the glue that ties teams and business processes together. Advances in technology, computing, and industry trends shape the architecture of business applications. And like any other software, business applications have also undergone fundamental changes and evolved over time.
Basically, any business application consists of the following elements:
Let us take a walk down the memory lane and look at the evolution of business applications from the point of view of user interface (UI), logic, and data.
The very first business applications were based on the terminal server architecture during the heydays of mainframes and microcomputers. At that time, all application logic and data resided on the server. There was no clear separation of logic and data on the server side. The user had a terminal with low computing power. The user interface was limited to character display terminals and input was limited to a keyboard.
As microcomputers decreased in price and increased in power from the 1980s to the late 1990s, many organizations transitioned computation from centralized servers to fat clients. For the first time, business applications had a rich user interface that was installed on these microcomputers (desktops). Also, there was a very limited separation among the elements on the server side.
During the 2000s, web applications matured enough to rival application software developed for a specific microarchitecture. Although all the elements of the application resided on the server, the advent of service-oriented architecture gave rise to a 3-tier architecture with clear separation of the UI, logic, and data. Data that was otherwise locked in monolithic systems was liberated to a great extent and along with emerging web technologies, giving rise to rich internet applications.
The advent of social, mobile, and cloud, along with the consumerization of IT, is placing greater demands on business applications. The proliferation of smart mobile devices and the Internet of Things has given rise to a modified 3-tier architecture wherein the UI resides on some of the devices and the application data stays in sync. Organizations are using modern platforms to create business applications that are available on any device, anywhere, any time.
How do you think the application model will evolve in the next 10 years?
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.