Days ago, I was discussing the idea of performance tuning with a number of fellow testers and the discussion direction was heading mainly towards the responsibilities than the methodology.
The main question was who is responsible for the performance tuning?
I think we have to define what is performance tuning in the beginning, Performance tuning is the improvement of system performance , either to solve a performance problem or to achieve a goal.
Back to the main point about who is responsible for the performance tuning, it is a team responsibility.
In a tuning process, you will need different expertise to achieve the tuning goal.
You will need the following people:
Architects to review the system design and suggest which part could be replaced or enhanced to improve the system performance.
Performance testers, to design and execute tests to find and point out where is the performance bottlenecks.
Developers to assess the code and suggest which methods or block of codes can be improved to help solve the performance bottlenecks.
Management to set priorities and clearly elaborate which part of the system is more vital or important to the customer and business to start with.
With the collaboration of all of the mentioned people, you can proceed with a productive performance tuning, achieve the best results and avoid reworks in my opinion.
Please share your tips, experience, comments, and questions for further enriching this topic of discussion.