BlackLine

Glossary


SLA – The Service Level Agreement describes the performance provided to the customers of a given service or product. Items defined in the SLA include bandwidth, delay, uptime guarantees and responsiveness for key application scenarios. Digital provides built in instrumentation facilities to allow customers to see how an SLA is being met.

DMAIC – A Six Sigma data-driven quality strategy for improving processes. DMAIC is an acronym for five interconnected phases: Define, Measure, Analyze, Improve, and Control. In our approach, SLAs are identified in the Define phase. Systems are instrumented to collect operational metrics in the Measure phase and Analyzed to determine root causes of defects and opportunities for tuning and optimization in the Improvement phase. Further optimizations to the process are realized in the Control phase through training, refinement of SLAs and incorporation of lessons learned in planned and ongoing development.

FMEA - Failure Modes and Effects Analysis is a system of identifying and categorizing reliability problems with a product early in the development cycle and identifying means of improving reliability. This is a system of analysis of how a product may fail, and identifying key actions to reduce the level of product failures.

10x Engineering – Practice of designing for ten times the specified load to protect against sudden spikes in usage or stress on the system. For example, an elevator with a maximum weight limit of 5000 Lbs. should be engineered to handle a true maximum of 50,000 Lbs. so they do not fail at a reasonable load (e.g. 5001 Lbs). Similarly, we strive to engineer systems that perform acceptably under unanticipated conditions.

Synthetic Transactions – In a production system, these are actions run in real time to measure the performance from the end user’s perspective. On a web site, for example, a synthetic transaction would perform the actions of a customer connecting to the site and browsing through its pages. These actions are scheduled and monitored at regular intervals to see how a database or web site reacts under increased load and to validate that alerts and notifications operate as expected.

Performance Engineering

On the web, you have less than 27 seconds to display, communicate and capture the attention of your customer before they go elsewhere (Nielson, 2006). Subtract from this the time required to read and understand your content and it is clear that your solution must perform well to tap into the business potential of the nearly one billion online users on the net today.

Solving performance issues by adding faster or additional hardware is costly, difficult to manage and, unless your solution is designed to scale, rarely solves the problem.

Engineering, Not Performance Tuning

Tuning is an afterthought; Performance Engineering is planned. It begins with your business goals, your customer needs and extends throughout the development and support lifecycle. The cornerstone for success involves carefully defined Service Level Agreements (SLA) and effective management strategies such as DMAIC and Failure Modes and Effects Analysis (FMEA) to set measurable performance objectives and identify issues before they occur:

Concept Phase

  • Practice: Critical business processes are identified based on revenue value, cost savings or other business value.
  • Benefit: Engineering efforts are prioritized and focused on scenarios that will reduce risk (financial transactions) and increase revenue (check out process).

Analysis Phase

  • Practice: Insure that that all non-functional requirements have been captured and are defined in measurable and quantifiable terms.
  • Benefit: Anticipated system load and performance characteristics can be modeled early to identify and reduce implementation risk and costs.

Design Phase

  • Practice: Create and validate test strategy and plan for critical performance scenarios and generate appropriate volume of test data (use “10x Engineering”).
  • Benefit: The testing phase is too late to detect critical performance issues. To reduce risk, a performance test plan must be in place at least mid-way through design.

Development Phases

  • Practice: Employ “10x Engineering” to insulate system against unanticipated spikes or steady increases in production usage or data volumes. Profile all critical scenarios for memory, processors and other resource utilization.
  • Benefit: Good engineers design for peak usage not average usage. Further, as business increases so do the demands on a system. By engineering for sudden spikes (IPO traffic for example) and increased usage over time, we are engineering reliability and increased life expectancy into your systems.

Testing Phase

  • Practice: Exercise performance tests using real-world data volumes and bandwidth conditions.
  • Benefit: Increased confidence validated by load and stress testing based on SLAs defined early in the process.

Operational Phase

  • Practice: Use “Synthetic Transactions” to monitor system health from an end user’s perspective.
  • Benefit: Ability to detect and respond to performance issues before your end users. Ability to respond to a range of issues outside of your system boundary (network latency for example).

Winning the Race – Preparation and Training Pay Off

By taking a proactive approach to Performance Engineering throughout the lifecycle, your business will realize a number of benefits:

  • Increase business revenue and reduce risk by ensuring the system can process transactions and meet specified service levels
  • Reduce risk in software initiatives by detecting unacceptable performance early when you can do something about it (prior to testing and release to your customers)
  • Stay in control of software budgets by eliminating schedule slippage, avoiding system rework or tuning efforts due to performance issues
  • Avoid additional and unnecessary hardware acquisition costs
  • Reduce operational overhead, increased maintenance costs and lost revenue due to poor performance in production

Your Partner in Success

Digital can help you manage system performance, meet your customer expectations, improve user satisfaction, reduce costs and succeed so that you can focus on your business. Let us help you plan and realize your performance objectives.