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 Engineering
These 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 Techniques
These 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
- 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.
You can find more about the concepts above at: