Efficiency: The Need for Speed and Robustness


CAST-Efficiency-the-need-for-speed-and-robustnessIn today’s world, we expect everything to run efficiently. People do not have time to lose.

One small efficiency improvement, when spread over many users, can lead to massive time and money savings. This also applies to your business applications. How much time would you and your company save if your business applications were more efficient? Probably much more than you think.

But, in what forms can efficiency express itself? Well, for starters:


How many times have we not been upset by an application that does not start fast enough on our computers or on our smartphones? When a user faces this kind of annoyance, what happens? The company who developed this piece of software suffers from a bad public image. The user loses productivity every time he starts the application. Consider real-time applications used to launch rockets and satellites; such applications have no option for any delays.

We cannot forget the famous saying, “time is money.”

Therefore applications should be time efficient.


Some applications are more critical than others. If your music player crashes often, it is annoying, but not really important. But what if your email provider is not available for multiple hours? What if your spreadsheet application crashes every time you input too much data? And what if the train control software system or air traffic monitoring system crashes? The impact of such a crash is not just annoying, it can cost the lives of thousands of people, and it must be taken very seriously.

So such applications must be robust and survive in all conditions.

Fulfilling expectations

Everyone is ready to express their expectations or, more often than not, complain. But to fulfill these expectations and avoid complaints, requires a lot of work and constant actions.

Early measurements

The first action is the measurement of the application’s quality using appropriate tools. The early measurement allows the possibility to detect defects in term of speed or robustness in the early stages of the application development lifecycle, and therefore remediate it from the beginning. An example of remediation is to review the entire architecture of the application. If these types of defects are not detected from the beginning, the changes will be impossible later.

Continuous monitoring

Once remediation is done and the application already fulfills the constraints in term of efficiency, continuous monitoring can detect other issues related to memory consumption or the use of a variable without it being initialized first. These types of issues seem, at first approach, to have small consequences, but it can end with the crashing of the entire application or a very low speed. For every type of defect found (memory consumption, performance, architecture, etc.) an appropriate remediation must be also planned.

Measurement is the key

Starting with a good level of efficiency for an application is good, keeping it there is even better. So the first step in order to keep a good level of efficiency is to do a constant measurement of quality applications using the appropriate tools to detect all the potential issues before it’s too late and the damage is already done.


As with reliability, the causes of performance inefficiency are often found in violations of good architectural and coding practice -- which can be detected by measuring the static quality attributes of an application. These static attributes predict potential operational performance bottlenecks and future scalability problems, especially for applications requiring high execution speed for handling complex algorithms or huge volumes of data.

Assessing performance efficiency requires checking at least the following software engineering best practices and technical attributes:

  1. Application architecture practices
  2. Appropriate interactions with expensive and/or remote resources
  3. Data access performance and data management
  4. Memory, network, and disk space management
  5. Coding practices
  6. Compliance with object-oriented and structured programming best practices (as appropriate)
  7. Compliance with SQL programming best practices

Have you had issues with efficiency in your software application development? Share your story in a comment.

Filed in: Technical Debt
Get the Pulse Newsletter  Sign up for the latest Software Intelligence news Subscribe Now <>
Open source is part of almost every software capability we use today. At the  very least libraries, frameworks or databases that get used in mission critical  IT systems. In some cases entire systems being build on top of open source  foundations. Since we have been benchmarking IT software for years, we thought  we would set our sights on some of the most commonly used open source software  (OSS) projects. Software Intelligence Report <> Papers
In our 29-criteria evaluation of the static application security testing (SAST)  market, we identified the 10 most significant vendors — CAST, CA Veracode,  Checkmarx, IBM, Micro Focus, Parasoft, Rogue Wave Software, SiteLock,  SonarSource, and Synopsys — and researched, analyzed, and scored them. This  report shows how each measures up and helps security professionals make the  right choice. Forrester Wave: Static Application Security Testing, Q4 2017  Analyst Paper
Making sense of cloud transitions for financial and telecoms firms Cloud  migration 2.0: shifting priorities for application modernization in 2019  Research Report
Narcisa Zysman
Narcisa Zysman Senior Product Manager at CAST
Load more reviews
Thank you for the review! Your review must be approved first
New code

You've already submitted a review for this item