Skip to main content

NEW YORK (TheStreet) -- What if a company built a flight of stairs in which seven out of every 1,000 steps didn't work? We would not be very happy with that manufacturer.

Well, that's the normal state of affairs in the software business. In 1997, Steve McConnell estimated that a typical application has a "defect density" of seven bugs per 1,000 lines of code. Of course, software is far more complex than a long flight of stairs. But manufacturers of other products such as automobiles have reduced their error rates drastically.

Why does software have such a high error rate? Unlike hardware, where a limited number of parts interoperates with other parts in defined pathways, software has almost an unlimited number of ways to interact. The permutations and combinations of the various lines of code is vast, and it's practically impossible to design tests for all of them and execute them.

At the heart of the software quality problem are the contradictory demands on developers to build a great application that answers a real business need and to optimize delivery times to ensure a fast time to market. The detailed challenges can broadly be characterized thus:

  • Risk
  • Repetitive work
  • Pressure to optimize development time and time to market.
  • Requirement for a multidisciplinary team of specialists
  • Fluctuating demands of the development life cycle
  • Support for collaboration and team working
  • Policing clean coding
  • Ensuring application quality; optimizing results.
  • Rapidly fixing bugs and issues
  • Upgrading customers without high overhead
  • Staying current with new technologies

The pressure of all these challenges mean that, sooner or later, the application developers' concerns will typically spawn the type of complaints illustrated in the figure here.

Image placeholder title

Cloud computing has a chance to vastly improve the quality metrics related to coding. By providing a secure, reliable and highly functional platform on which developers can build, test and even run their applications, a good PaaS (Platform as a Service cloud environment) should help application developers address all of the key challenges we have identified above.

One of the basic changes is that, cloud computing simply removes large portions of development from the typical application developer's responsibility. By some estimates that can account for 60% to 70% of new code lines.

PaaS systems try to alleviate the tension between ensuring a rapid time to market and not compromising on the quality of work of the application.

PaaS features

Does it speed development/ time to market?

Does it improve application quality?

'pay as you go' pricing model

YES

 

Speed and ease of deployment

YES

 

Minimal involvement with underlying infrastructure

YES

 

Collaboration tools

YES

YES

Interoperability

YES

YES

Reduction of environment-related bugs

YES

YES

Built-in user security and authentication

YES

YES

Pre-configured components

YES

YES

Pre-configured tools

YES

YES

Database integration

YES

YES

Responsibility for ongoing maintenance and security of platform transferred to PaaS provider

YES

YES

Large chunks of code already tested and in production

YES

YES

Fewer code defects

YES

YES

Consistency of platform between testing and production environments is guaranteed

YES

YES

Simplification of fixes - fix once, improve for all customers

YES

YES

Customer upgrades easily achieved

YES

YES

Scalability and elasticity

YES

YES

Easier to manage the fluctuating demand of the development life-cycle

YES

YES

Access to otherwise-unaffordable technologies

 

YES

Simple to incorporate new technologies across the entire App

YES

YES

Automates routine tasks - freeing up time for developers to spend on developing the application

YES

YES

Figure: Features of PaaS solutions and impact on development time and quality

The PaaS systems will already be tested and compatible with most browsers and mobile devices. This reduces bug possibilities in code for all these devices. Having already been tested for a variety of environments, developers can be assured of a smoother transition to customers when environment-related bugs are often identified.

PaaS tends to have robust user-security built in. Developers need not program complex security code that may be flawed. PaaS will usually offer some pre-configured components considered useful in building the application. For example, necessary tables and code segments might exist for countries, zip codes, currency codes, and even major data objects like customers or products. Pre-configured components such as these reduce repetitive work and mean developers fix once rather than thousands of times.

Responsibility for ongoing maintenance and security of platform transferred to PaaS developer and PaaS hosting organization. Not only are mundane tasks taken away from the development team, freeing them to concentrate on developing core functionality and UI, the platform is provided with guaranteed levels of service.

The PaaS's most important contribution is to relieve the tension between rapid time to market and product quality. From an investor perspective, cloud technology firms that offload the development effort will become a compelling need for all future development. Companies such as salesforce.com and Intuit are building their PaaS platforms to take advantage of this strong trend.

Application Development Sucks: Whitepaper.

This article is commentary by an independent contributor. At the time of publication, the author held no positions in the stocks mentioned.