Baking Performance Into the Life Cycle

To engineer for performance, you need to embed a performance culture in your development life cycle, and you need a methodology. When you use a methodology, you know where to start, how to proceed, and when you are finished.

Keys to Performance EngineeringThese are fundamental concepts to performance engineering:

Set objectives and measure.

Performance modeling helps you design performance for your scenarios.

Measuring continues throughout the life cycle and helps you determine whether you are moving towards your objectives.

High ROI TechniquesThese are some of the most effective techniques we use to directly impact performance results:

Performance Objectives

Performance Design Guidelines

Performance Modeling

Performance Design Inspections

Performance Code Inspections

Performance Testing

Performance Tuning

Performance Deployment Inspections

Key Notes

Think about performance up front versus after the fact. If performance isn't a part of your scenarios, you're ignoring your user's experience, or you're ignoring your businesses. Don't expect users to ask for performance. They just expect it.

Use objectives and constraints to set boundaries. Objectives tell you how much to invest in performance and what good looks like (for users, for the system, and for the business).

Use Objective-driven inspections over code reviews. Don't tune your code for tuning's sake. Know what good looks like. Model and measure to know where to spend your time. (Make sure your ladder is up against the right wall!)

Use design guidelines to make performance actionable. Build a repository for your performance knowledge. Wikis are great for this. Capture your insights as principles, patterns, guidelines, ... etc. Don't think of this as a blanket set of rules to follow. Think of it as a knowledge base that you and your teams can draw from when desiging solutions, doing inspections, tuning performance ... etc.