Categories
Insights

Rethinking Customer Engagement? Think Agility in app Development

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.

Why the need for agility?

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 –

  • Once the application reaches the testing stage, it is difficult to go back and make changes
  • It takes a long time to release a working software and increases the cost of maintenance
  • Not a good model for complex projects where requirements keep changing in response to customer review
  • Components have to be designed and constructed from the ground up as per project requirement and hence are not reusable
  • Factors like the emergence of new competitors, cheaper alternatives, software providing better functionalities with new technology increase the risk of developing an application for longer time

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.

The current trend

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 –

  • Planning and analysis stage – Business analysts and project managers are involved in analyzing the market requirements and crafting a strategy to deliver applications
  • Documentation – This stage requires documenting all the technical requirements and details
  • Prototyping stage – This comprises of the UI/UX component where the designers create the sketch, wireframes, prototype for stakeholders’ approval
  • Development stage – At this stage, developers perform the front-end and back-end segments of coding
  • Testing stage – Performed continuously, this stage comprises of testing tech requirements, device compatibility, security features, interface followed by bug fixing
  • Publishing and maintenance – This stage is covered by the DevOps, taking care of publishing the app to different platforms, updating releases, infrastructure and app maintenance

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.

The low-code way of app development

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 provides a browser-based application development environment relieving the developers from the hassle of installing, setup, ongoing configuration, etc.
  • It enables the development of good looking and rich user interactive applications, creating pixel perfect responsive UI for both mobile as well as desktop devices.
  • Low-code can help auto-generate code based on open standards by leveraging client-side frameworks and server-side technologies with the help of APIs.
  • Low-code provides predefined well tested technology stack for application development, doing away with the need to maintain multiple teams to support it
  • It simplifies the development process wherein both business units and professional developers can work together combining domain knowledge and the technical know-how in building the application
  • Low-code takes an API-led integration approach so that applications can easily integrate into an external, internal or cloud-based service. This allows for faster and easier development of the application.

What is your agility score?

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

Categories
Insights

The Impact of Open Standard and Open Source on Enterprise Application Development

“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 standard. As the name suggests, proprietary standards are the ones that are “closed” – those which are compatible only with a few specific configurations. Addition of features within the system itself is a cakewalk. But, when it comes to 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.

Open Source and Open Standard

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 goals of both the groups is to create an immense amount of shared value which 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.

Enhanced Integration

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 enables different software systems to share data easily with speed and reliability.

Avoid Vendor Lock-in

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 that 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.

Save Time

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.

Better protection for files

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.

Easy to port

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.

Added benefits

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.

Which one to choose?

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 is 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 the needs and preferences.

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
Enterprise Application Development

Stack Overflow Survey 2016: Implications for application delivery

Interpreting the Stack Overflow 2016 Developer Survey results from an application delivery perspective

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.

Front (end) and center

First things first, JavaScript overtook Java as the most popular tag on Stack Overflow. In fact, all the front-end technologies have gained popular ground. With consumers demanding engaging experiences across different devices, front-end and mobile technologies will only grow more popular. I’ll go out on a limb here and make a prediction that next year Android will overtake Java to become the second most popular tag on Stack Overflow.

The rise and rise of AngularJS

AngularJS now seems to be the go-to web application development framework. In just a few years, its popularity has skyrocketed and it appears to be the dominant JavaScript framework out there. The Stack Overflow survey results corroborate this fact as AngularJS appears multiple times in the top technology combinations preferred by front-end developers.  It also figures prominently in the technology combinations of full-stack and back-end developers. Even among developers who are not developing with the language or technology, AngularJS is one of the top 3 technologies that they would most want to work with.

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.

Challenges to application delivery

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:

  • Processes and communication: It is clear that developers would prefer it if the requirements were clearly defined and documented, expectations were reasonable and processes were more efficient. It is not surprising that one in six projects have a cost overrun of 200% and a schedule overrun of almost 70% according to an HBR study. One of the solutions is to align business and IT by creating an engaging environment at every stage of application delivery so that they can work more closely. Some of the leading companies are now turning to Rapid Application Development to reduce the friction points in delivering successful enterprise applications.
  • Resources and technologies: CIOs are under pressure from the demands of business requirements that cannot be handled by the limited staff strength. Also, IT managers continue to grapple with the lack of resources for the technologies that in demand. A case in point is the demand for front-end and mobile development resources. According to the survey results, salaries in the range of $95,000 to $105,000 are not uncommon for mobile and front-end developers. Similar problems exist with legacy technologies for which resources are difficult to find and retain. Consequently, it puts a lot of pressure on the already thin operating margin and budget. Hence, enterprises are now evaluating modern RAD platforms that are open and extensible. For instance, the WaveMaker RAD Platform requires 80% lesser coding required compared to traditional software development because of intuitive visual development. Also, the generated application and code can be customized by semi-skilled front-end developers with ease. As far as mobile is concerned, more companies are choosing hybrid mobile app development over native to avoid hiring resources with specific skills for iOS, Android, and Windows separately.

Do share what, according to you, are the challenges and solutions in the comments section.

Categories
Insights

Evolution of business applications

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.

Elements of a business application

Basically, any business application consists of the following elements:

  • User Interface: The means by which the user interacts with the application.
  • Business Logic: The set of rules that represent the business process and govern the functioning of the application.
  • Data: Information on which the business logic is based. It is generally presented to or input by the user.

Evolution of application model

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.

Mainframe era: 1950s to 1980s

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.

Client-server era: 1980s to 1990s

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.

Web era: 2000s

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.

Mobile era: 2010s

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?

 

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.