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. 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, 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 process 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, gave rise to rich internet applications.

Mobile era: 2010s

The advent of social, mobile and cloud, along with consumerization of IT, is placing greater demands on business applications. Proliferation of smart mobile devices and 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, any where, any time.

How do you think the application model will evolve in the next 10 years?

 

Categories
Insights

4 catalysts for a citizen developer revolution

How can IT fuel the grass roots movement for citizen development and pave the way for frictionless enterprise application delivery?

Citizen development efforts are poised to grow rapidly in the next few years, led by increasing adoption of cloud-based platforms, which simplify access to corporate data. Enterprises across the board are keen to embrace citizen developer tools not only to amass productivity gains but also because business users are tired of waiting for IT to deliver the applications they need at the speed of business. Let us look at how you can create the right conditions and catalysts for a citizen developer revolution at your enterprise.

Who is a citizen developer?

According to Gartner, “a citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT. In the past, end-user application development has typically been limited to single-user or workgroup solutions built with tools like Microsoft Excel and Access. However, today, end users can build departmental, enterprise and even public applications using shared services, fourth-generation language (4GL)-style development platforms and cloud computing services.”

Preconditions for citizen development

The above definition also contains two preconditions that are necessary for citizen development:

  • IT-sanctioned environment: Creating applications using tools that are not sanctioned by IT is “shadow IT” at best, not citizen development. Citizen development yields best results when it is done in partnership with the IT department. In fact, enterprises should take a step further and choose a platform that relies on open systems and technologies to avoid vendor lock-in.
  • Low-code development platform: Business are frustrated with having to wait for months in the IT queue and then getting something that was not what they asked for. They are looking for platforms that reduce cycle times and improve organizational agility by delivering applications at the pace of business. Enterprises should use low-code tools that use rapid application development model, which supports visual (drag-and-drop) development and incorporates user feedback iteratively using rapid prototyping.

Catalysts that foster citizen development

Aside from the necessary preconditions, enterprise IT needs to take the leadership role by doing the following to foster a grass roots citizen development movement that benefits both business and IT:

  • Set legacy data free: In most enterprises, decades of delivering enterprise IT apps using proprietary software has locked not only IT dollars but also a substantial amount of enterprise data. In order to democratize application development, the data residing in legacy systems needs to be set free. If you are still using legacy systems (and you’re not alone), immediately set in motion a plan to modernize legacy applications built on proprietary software such as Lotus Notes, Oracle Forms and Microsoft Access.
  • Jumpstart application design: Custom applications built using no/low-code tools tend to stand out for their primordial UI and non-conformant design. Make sure you choose low-code tools that support out-of-the-box themes and templates for dashboards, login and more. Templates not only reduce the time to design the app but also provide standardization across enterprise apps. It would be even better if IT can create standard theme that can be readily applied to an application created by business users.
  • Enable last-mile development: To really bridge the business-IT gap, business users should be empowered to deliver even sophisticated applications. But limited coding skills for customization hold them back. Hence, commonly used code for integration, APIs, compliance or security should be readily available and reusable across applications. For instance, WaveMaker RAD Platform provides Prefabs, reusable micro apps that abstract underlying complexity, so that business users can simply mash up an app using these reusable, independent and tested micro apps.
  • Strike the governance balance: While the benefits of citizen development are indisputable, the risks of serious security or compliance problems should not be discounted. Finding the right balance between productivity and control is vital for citizen development to succeed. IT leaders should unite application developers and business users so they can work together to efficiently optimize both the applications and the processes. For instance, IT should closely evaluate and choose a low-code tool that offers highly configurable governance capabilities such as role-based access controls. Ultimately, citizen developers should be able to create secure, compliant applications while offering IT the transparency of maintaining control.