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:
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.