Six failures from poor application quality

By | February 26, 2010, 7:32am PST

Summary: Although human issues are critical, downtime and other problems also arise for highly technical reasons. Dr. Bill Curtis, Chief Scientist of CAST Software, links common causes of failure to business outcomes.

The endless catalog of IT failure rests on a foundation of poor judgment, inadequate communication across business groups and information silos, and conflicting agendas. Most of my blogging discusses what happens when these human failings intersect IT projects.

Although human issues are critical, downtime and other problems also arise from highly technical causes of failure. Interestingly, there is often a human dimension even when problems are rooted in technology.

To explore this topic, I asked Dr. Bill Curtis, SVP & Chief Scientist of CAST Software, to write a guest post linking common causes of failure to business outcomes.

Bill is one of the world’s foremost authorities on software development process and improvement. He is best known for leading development of the Capability Maturity Model (CMM), a global standard for evaluating the capability of software development organizations. You may not recognize his name, but almost certainly, you’ve interacted with applications developed using processes he pioneered.

———

Most organizations wait until an embarrassing disaster strikes before even considering the link between application quality and business benefit. Although these same companies can quantify the costs of failure, they still struggle to build a business case justifying proactive investment in application quality, which can prevent these embarrassments.

To help stimulate a discussion about risk and reward in preventing failure, this post presents the top six ways that poor application quality affects business.

1. Poor business “fit” (mis-functional applications)

The biggest complaints about operational business applications are that they just don’t do what business users wanted. Consequently, employees implement endless workarounds, managers use hidden spreadsheets, and the business fails to benefit from its application investment.

The biggest cause of mis-functional applications is missed or inaccurate user requirements.  It is easy blame IT for doing a bad job of requirements analysis, but the root cause often lies in immature business processes that vary widely across the business.

In many organizations, these processes are often so poorly defined that requirements analysis resembles an archaeological dig.

2. Outages

The most damaging outages are usually those in customer-facing systems such as airline reservation, customer service, or online shopping. The costs of downtime, which frequently hit six digits per hour, can also involve lost revenue. Other related costs may include reactivating the system, recovering transaction fragments, spikes in help desk utilization, and even liquidated damages.

The root causes of outages are usually non-functional application problems that are generally invisible to end users until they cause a problem. Typically, developers did not engineer the application defensively to handle the myriad operational challenges that can beset a system, such as excessive customer load or glitches in other applications with which it interacts.

3. Security breaches

The cost of security breaches can be staggering, especially considering expenses associated with closing the vulnerability, repairing any malicious damage, alerting customers whose records may have been penetrated, and then rectifying any damage caused to them. For instance, I was recently among tens of thousands who received replacement credit cards because hackers penetrated a vendor’s transaction records.

Security breaches most often result when developers inadvertently allow pathways into the application that skirt authentication procedures or expose the internal structure of the application through user messages. Attackers can use vulnerabilities such as these to inject malicious functions into the application during user interactions.

4. Business dis-agility

As organizations automate more processes, business agility is directly affected by the speed with which applications can be modified or enhanced to meet rapidly changing requirements. The longer it takes to modify or enhance an application, the less agile and competitive the business.

When an application becomes needlessly complex and its architecture decays through poorly engineered modifications, the time to release new functions and the number of new defects injected into the application grow proportionately.

With each decline in application quality, the business must wait longer to implement adjustments that enhance the company’s competitive market position.

5. Poor performance

Although we rarely calculate the cost of lost productivity caused by degraded application performance, costs to the business are alarming when considering impact across a large department such as sales, claims processing, or customer service. Even a five percent reduction in application performance can result in hundreds of thousands of dollars in lost productivity each quarter.

The root cause usually involves programs that may be functionally correct, but written with poor coding practices that cause excessive processing as usage or data volume increases. Performance problems are difficult to detect during development unless testers have the resources needed to simulate high loads the application may experience after deployment.

6. Data corruption

Data corruption is often not detected until users see a bill or report containing wildly inaccurate information. The cost of reconstructing the database and re-releasing invoices, documents, or other corrected materials can be extensive.

Frequently, data corruption results when developers do not use approved methods for accessing the database, leading to application data changes executed in an uncontrolled, or poorly coordinated, manner.

Fixing the problems

Although many of these problems can slip through testing undetected, there are application quality practices that can detect them:

  • Peer reviews of the application’s design and code are effective in detecting defects that might otherwise slip past test cases written to verify compliance with functional requirements.
  • Static code analysis is also a good method to detect poor design or coding practices that may cause the impacts described here.
  • Dynamic analysis is another technique useful for uncovering certain classes of problems such as performance degradation.

IT executives should match their investment in quality practices such as peer reviews, testing, and static code analysis to the magnitude of the business risks these investments are expected to mitigate.

———

[Thanks to Bill Curtis for writing this guest post. Photo from CAST Software.]

Kick off your day with ZDNet's daily e-mail newsletter. It's the freshest tech news and opinion, served hot. Get it.

Topics

Michael Krigsman is a recognized authority on the causes and prevention of IT failures.

Disclosure

Michael Krigsman

Michael Krigsman writes and speaks about technology in a manner that most observers consider to be fair and balanced. Michael believes that writing about IT failures, which often have complex causes, creates a unique obligation to be reasonable and accurate in both reporting and analysis.

Michael maintains active personal and professional relationships with enterprise technology buyers, vendors, analyst firms (or individual analysts), consultants, and system integrators. As CEO of Asuret, Michael sells and delivers paid services to members of these same groups.

Vendors regularly reimburse Michael's out-of-pocket travel expenses to attend industry conferences and events. Conference organizers frequently waive entry fees when Michael attends industry events. Michael often speaks at industry conferences and events.

He is a member of the Enterprise Irregulars, a loose association of consultants, investors, industry representatives, analysts, and users of enterprise software.

For daily updates on Michael's activities, follow him on Twitter.

Biography

Michael Krigsman

Michael Krigsman is CEO of Asuret, Inc., a consulting company dedicated to reducing technology implementation failures. Asuret's suite of software tools improve the success rate of enterprise software deployments by quantifying and measuring governance issues that cause most project failures. Michael led the research effort underlying Asuret's model of collective intelligence and its practical application to reducing IT failures in consulting environments. He is a recognized authority on the causes and prevention of IT failures and is frequently quoted in the press on IT project and related CIO issues. He is considered an enterprise software industry "influencer" and provides advice to technology buyers, vendors, and services firms.

Previously, Michael served as CEO of Cambridge Publications, which develops tools and processes for software implementations and related business practice automation projects. Michael has been involved with hundreds of software development projects, for companies ranging from small startups to Fortune 500 organizations. Michael graduated with an M.B.A. from Boston University and a B.A. from Bard College. He is a Board member of the America's Cup Hall of Fame and the Herreshoff Marine Museum in Bristol, RI.

Talkback Most Recent of 10 Talkback(s)

  • Software quality
    Most of the truly epic failures come back to communication. Upper management does not have an adequate understanding of how IT works. IT management cannot or will not make them understand. Business processes are not documented or followed. Development managers do not require valid estimates and track tasks that are of estimate. Developers thing they are artists, not the engineers and technicians they are supposed to be.

    They all bear the burden of the failure.

    I've work on project large and small, from mainframe to PC and the successful ones always were well planned, well executed, and everybody knew how things worked and what the status was. And when that last minute 'must have' requirement got forced in the project manager presented upper management with the risk and cost and insisted on a formal signoff to include it. Everyone is responsible for their own stupidity.
    ZDNet Gravatar
    lars626
    26th Feb 2010
  • The devil can be in the details, and nothing should beat a good test suite.
    A nice top down overview, but the devil can be in the details, and the top down may not catch those details.

    For example: "data corruption."

    Yes, it may be that devs might not be using "approved methods for accessing the database."

    BUT - it might also be the case that data is being corrupted by the hardware.

    This overview does not account for stuff like that.

    "Peer reviews of the application?s design and code are effective in detecting defects that might otherwise slip past test cases written to verify compliance with functional requirements."

    I'd argue that a good test suite should be creating higher quality code than peer reviewed code. If not, then I'd wonder about the quality of the test suite.
    ZDNet Gravatar
    CobraA1
    26th Feb 2010
  • I agree, but...
    Test suite alone isn't enough. Your app may pass all the test, but the user most likely will find a way to break the software (i.e. unexpected input).

    Having your app peer reviewed may help identify these scenarios.
    ZDNet Gravatar
    nDuDut
    27th Feb 2010
  • Then the preconditions aren't being tested enough.
    In that case, the preconditions of the functions/methods (what happens when you first enter a function/method) aren't being tested properly. You should always be checking inputs from outside sources.

    Unexpected inputs should be a part of the tests!
    ZDNet Gravatar
    CobraA1
    27th Feb 2010
  • . . . and as an added note . . .
    . . . and as an added note . . .

    . . . it's HARD to create a solid system, period. We're not magicians, and we have to work in budgets and time schedules. The solid, secure way is often the long, expensive way.

    New technologies can help, but often new technologies also bring added complexity and their own set of issues.
    ZDNet Gravatar
    CobraA1
    26th Feb 2010
  • RE: Six failures of poor application quality
    Don't forget DRM. This usually cripples software while increasing piracy. Companies look at pricing software as what the market will accept. When you have people pirating you obviously got the "what the market will accept" part wrong on all counts. Add in the cost of DRM development and testing plus the horde of lawyers needed and you just washed you profit margin away and add a negative to customers views.
    ZDNet Gravatar
    msdead
    26th Feb 2010
  • Your reply is a little misguided
    I believe the author's post was in the context of enterprise / business applications. DRM in business isn't really that big of an issue.
    ZDNet Gravatar
    nDuDut
    27th Feb 2010
  • RE: Six failures of poor application quality
    "The biggest cause of mis-functional applications is missed or inaccurate user requirements. It is easy blame IT for doing a bad job of requirements analysis, but the root cause often lies in immature business processes that vary widely across the business."

    Actually, doing a good job of requirements also helps a business understand and standardize their processes. When I start discovery, business peopole will say "You are just getting me to describe our process"; by the time I am done, I usually "I learned a lot about our process by doing this."

    David Wright
    ZDNet Gravatar
    dwwright99@...
    27th Feb 2010
  • Devil in the details
    In school we had an assignment to do a "system analysis" of a real world system. We scheduled 1/2 hr interviews with real world experts/workers on the system which we tape recorded. Then we would spend up to 2-3 hours reviewing the tape, integrating the new information with previously collected info and planning questions for the next interview.

    I worked for a large company that had a world class development system in place (I didn't recognize how good it was until I worked elsewhere!) As well as IT analysts, we had business analysts who came from the business side and were dedicated to working with IT for 3-4 years. It took time to "train" them, but by the middle of their term they were asking good IT based questions as well as business questions. They couldn't program but they knew enough of both sides, IT and Business, that they were a real asset to producing quality software. Part of their job was final testing of our work, but they worked with us setting up the test data.

    I think it boils down to a good partnership between the business side and IT. We have to learn a little of each other's work so we can do our separate jobs better.
    ZDNet Gravatar
    Ron_007
    1st Mar 2010
  • We use Scrumworks
    and it isn't a good fit to our practices. I don't know whether vacation or sick time usually is counted as a goal... maybe the software is designed for workers who never get sick, or who have to do it in vacation time.
    ZDNet Gravatar
    Robert Carnegie 2009
    1st Mar 2010

Talkback - Tell Us What You Think

Formatting +
BB Codes - Note: HTML is not supported in forums
  • [b] Bold [/b]
  • [i] Italic [/i]
  • [u] Underline [/u]
  • [s] Strikethrough [/s]
  • [q] "Quote" [/q]
  • [ol][*] 1. Ordered List [/ol]
  • [ul][*] · Unordered List [/ul]
  • [pre] Preformat [/pre]
  • [quote] "Blockquote" [/quote]
Click Here

The best of ZDNet, delivered

ZDNet Newsletters

Get the best of ZDNet delivered straight to your inbox

Facebook Activity

White Papers, Webcasts, & Resources