How SaaS Transforms Software Development

In the early days of the Internet, there weren’t many Internet applications. Instead, applications were overwhelmingly written for Windows, Linux, and Macintosh operating systems. “Software delivery” often meant copying a binary to a server or creating a blue-screen Windows installer and making it available on a CD-ROM for sale in physical stores. (I remember when you had to pay extra to have your product shipped on 25 floppy disks instead of this CD-ROM.)

Releases were made very rarely – just once a year or even longer. Development cycles were measured in weeks at best, and the time between finding a bug and delivering a fix was often measured in months. The versions were monolithic. A release had to be as close to perfect as possible, as opportunities to provide bug fixes were infrequent and difficult to manage.

Things are moving a little faster today, thanks in large part to software-as-a-service (SaaS) applications, which are a big part of the development done today. SaaS applications typically have a JSON-based back-end API that communicates with any browser. They can also communicate with native apps on Apple and Android phones, but increasingly the device an app is running on is becoming irrelevant.

Regardless of the front-end, the overall approach is a radical departure from the classically distributed Windows or Mac application. SaaS applications can be repaired, updated and deployed in minutes instead of months. SaaS has fundamentally changed the way software is developed and delivered.

So why have SaaS applications become so desirable and successful?

There are four reasons I can see:

  1. Development teams control all code execution.
  2. The code runs in a strictly defined and highly controlled environment.
  3. Delivery can be immediate and frequent.
  4. Teams can observe how their customers use the software.

All your codes belong to us

In the client/server world, we wrote and compiled code inside the company, but then released that code out into the wild, where it ran on who knows what machines, operating systems, and setups. Of course, everything worked on Windows and Mac, but these machines were all different and we had little control over how the code was executed or how the application was configured. If you had lots of app settings, users could configure the app in ways you never considered or even thought possible.

With the advent of SaaS, no code is released into the wild. The back-end of a SaaS application runs completely under our control and in environments that we configure, regulate and even modify as needed. Front-end code also resides on our servers, delivered on demand and running in a limited number of web browsers.

A strictly defined environment

Yes, there are many browsers, but the number is limited and browsers are mostly known and testable environment. SaaS applications encounter only a limited number of runtime environments, allowing development teams to do more extensive testing work than they could in the traditional distribution model.

Problems still exist with the variety of Android phones, but more and more developers are offering their app in browser-based solutions, reducing worries about the multitude of different physical devices running many different versions of your software.

And now that Internet Explorer is finally out of our misery, the remaining browsers are doing a pretty good job of implementing the standards that make everyday web application development easier.

Immediate and frequent delivery

SaaS applications end the fear of delivering an unknown, baffling bug to customers, with no way to fix it for weeks or months. The days of delivering a patch to an installed product are over. Instead, if a catastrophic bug makes its way through the development pipeline and into production, you can find out as soon as it happens. You can take immediate action, revert to a known good state, or turn off a functionality flag, virtually before any of your customers even notice. Often you can fix the bug and deploy the fix in minutes instead of months.

And it’s not just bugs. You no longer need to keep new features as “inventory”, waiting for the next major release. Previously, if you built a new feature within the first few weeks of a major release, that feature would have to wait potentially months before being released to customers. Now a SaaS application can deliver new functionality immediately to customers whenever the team declares it is ready.

Totally observable

Since a SasS application runs in a limited set of browsers, it is much easier to observe what is happening in the runtime environment. Tools like Datadog and Dynatrace allow you to observe and track everything that happens in your application. Error monitoring with tools like Rollbar can flag customer issues and problems as they arise, dramatically reducing your mean time to awareness.

Observability thus becomes, in effect, a real-time thing rather than something that happens indirectly when customers report issues. Apps run on internet-connected devices, whether a computer with a browser or a mobile device, and can therefore easily report issues, how the app is used and what the app is doing. app does.

Know your customer

In the client/server world, traditional software vendors struggled to know who their customers were, let alone what they were doing with the software and how often they were using it. You could literally buy software, install it, and use it without anyone else knowing you were doing it.

SaaS applications allow us to see just about everything our customers do with the software. Their data is stored on our servers, and we can see what they are doing now and the history of what they have done in the past. It’s not Big Brother watching, or a threat to customer privacy. SaaS applications do not typically store personally identifiable information. On the contrary, monitoring customer behavior allows SaaS companies to partner more closely with customers and work to help them see the real value of our products by examining their usage patterns and data.

As a result, we can aggregate customer activity and focus development in high-use areas. We can see how customers are using and not using the product. We can help them use the product better. We can show where they use best practices and where they don’t. We can tailor our efforts to customers who need help and spend our time more productively.

Knowing who your customers are and how they use your product is solid information, and SaaS applications allow you to do just that. This leads to better results for your business and your customers. SaaS is not only a better way to deliver software, but also a way to build software that better meets the needs of your customers.

Copyright © 2022 IDG Communications, Inc.

Comments are closed.