The error rate in network interactions, the utilization of system components, the design of database queries, and the presentation on the end-user layer say everything about how we allow the details to shape the end-user experience and perceived performance.
Hardware != Better Performance
Many tried to cure performance issues by adding more powerful hardware. For some fundamental problems, this might bring a slight improvement, but when request volumes are high, response times are still beyond agreed KPIs.
Modern Cloud Infrastructure != Better Performance
Let's assume you migrate your monolithic application in a lift and shift exercise to the cloud by deploying the code on the latest cloud stacks. Do you think this would solve your performance problems this application is suffering?
Agile != Better Performance
You can transform your waterfall to agile projects and deploy code much faster in smaller increments to production. There is no guarantee that performance problems in your systems will be wiped out thanks to the more frequent deployments on production.
Observability != Better Performance
When response times and reliability are not that great, organizations turn to observability and hope that this helps to improve and avoid user experience issues. I am a big supporter of observability solutions and have solved hundreds of performance issues, but it's always too late and more of a reactive approach. Observability alone does not improve system performance.
Performance is nothing if not the details!
When we make performance a shared responsibility in our teams, we are on a good path to building all the essential components with performance in mind. Similar to any critical requirement, we must treat performance requirements with respect. Based on my experience, performance often fails due to systematic shortcomings such as:
No performance requirements
No performance risk analysis
No workload modeling
No early performance validation
No design for performance
No performance validation
No performance monitoring and tracing
No continuous performance feedback
No performance engineering skills
Performance is nothing if not the details of design and code that identify the practices and methodologies that define user experience and reliability.
Performance is truly in the details.
Keep up the great work! Happy Performance Engineering!
Comments