Performance Development life cycle for IT – Part 1
Microsoft ACE team has been involved in performance testing and tuning of web applications within Microsoft for more than ten years and for external customers for more than three years. Over these years of experience in performance testing and tuning, we've noticed that there was a lack of a proactive approach with regard to application performance within software delivery life cycle (SDLC). Due to this, quite frequently the applications ran into costly performance issues which were only identified at the last stage of SDLC. As a remedy to costly performance issues, ACE team has come up with the proposal of PDL-IT baked within SDLC. PDL-IT defines the list of actions/checkpoints at each phase of the SDLC in order to improve performance and reduce performance bugs.
Some of the highlights of PDL-IT are
1. Reduce the risk of costly production performance issues
2. Improve end user satisfaction with high performant applications
3. Standardize performance testing and tuning methodology across your development environment
4. Identify and resolve performance issues at early stages of the SDLC
5. Practice the culture for performance
While SDLC provides generic guidelines about software development process, PDL-IT introduces action items/checkpoints at each phase of SDLC for developing high performant applications. Each checkpoint and action item at early stages would exponentially reduce the costly performance bugs and help in improving the overall performance of the application.
Broadly, action steps for PDL-IT for each stage of SDLC can be described as
Envision: Business/stakeholders define the targeted performance of the application based on either the historical data for existing applications or anticipated usage patterns for new applications. Budgeting is also done during this phase.
Design: Thorough architecture review from the performance standpoint and conduct performance modeling for system scalability and future growth.
Build: Making sure developers are following coding best practices for performance and code profiling to identify and patch performance problems such as slow running functions, expensive operations, etc.
Stabilize: Identifying the performance bottlenecks and bugs, behavior of the system under load, utilization of network by thorough performance testing in production equivalent environment.
Deploy: Understanding the production environment, following IIS best practices from performance standpoint and performance deployment review.
Production: Monitoring the production environment proactively for slow running pages and user issues.
In the following blog posts on PDL-IT, we will review in-depth the action items for each phase of PDL-IT.