Performance Development lifecycle for IT - Part 2
As a follow-up post to PDL-IT part-1, this is the part-2 of PDL-IT. In this post I would discuss the details about the action items proposed by PDL-IT during Envision and Design phase of SDLC. The rest of the phases would be covered in the subsequent posts.
In standard SDLC, Envision or requirements phase deals with gathering business details about the usage of application, finalizing budget and allocating resources for the project. A very important aspect of business details about the project is its performance requirements. The stakeholders of the application need to define the performance targets such as response time, concurrent load, throughput, etc for an application before the application goes in architecture design stage. Some of the questions that business needs to answer before going into architecture phase of the projects are
1. What should be the concurrent load my application needs to support in production at peak hour?
2. What should be the page load time tolerable for the end users for my application?
3. What should be the throughput of the system, i.e. no. of transactions per seconds?
4. What should be the network usage by the application that is tolerable to the end users especially if the end users are situated in low-bandwidth regions?
5. Any other performance factors that needs to be defined.
For the existing applications (old version), some of the above questions can be answered based on the historical data available for the application. Historical data can be easily obtained from analyzing the production IIS logs of the existing system in production. However, for the first version of the application, the questions needs to be answered based on the business demands and anticipated user traffic.
To summarize, two main actions items in drafting the business requirements during envision phase are
1. 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.
2. The targeted performance of the application can be defined in terms of three performance parameters but not limited to
· Max. Concurrent user load.
· Page response time
· Throughput (Transactions/sec)
Another important action item during envision phase as part of PDL-IT is allocating sufficient budget and time for resources in order to undergo performance related training and to conduct performance testing. This can be summarized into three action items.
1. Budget for developer training around application performance best practices
2. Sufficient time is baked into the overall project plan for performance testing
3. Budget is set aside for appropriate sized testing environment to be built out
In a standard SDLC process, design of architecture and choice for architectural components and interactions among components is made during Design phase. Among the functionally equivalent software architectures, the choice for the components should be driven by the non-functional factors such as performance, reliability and topological/economical constraints. With the defined performance targets during Envision phase, performance becomes a major factor in the choice of the components. Different layers of the architecture can impact the overall performance of the application - hence each layer needs to be scrutinized from performance standpoint.
Design phase for PDL-IT consists of:
1. Conduct performance architecture review to identify potential performance impact at different layers of the architecture components and technology
2. Build a performance model to project the system capacity, to plan future system growth and to create scalability units.
The subsequent posts on PDL-IT would consist discussion on actions items of PDL-IT during Build, Stabilize, Deploy and production phases of SDLC.