Any new software project comes with its planning. In the beginning, the business users share their business requirements with the business analyst (BA). The moment BA starts capturing business requirements and prepare SRS document (Software Requirement Specification), it triggers the initiation of the project and here begins the duty of the Project Manager. A Project Manager manages the complete project from the requirement phase to its delivery as a product into production. Project Manager interacts with the business user as well as a business analyst to understand the complexity of the business requirement and based on that he prepare the effort estimate and hence the team size.
Team Sizing and Associated Cost:
Team sizing is one of the biggest responsibility of the project manager. It is based on the multiple factors and a bad decision by the project manager in team sizing could fail the overall project. The following are the factors which impact the team sizing and the associated cost.
1) Allocated Budget:
Business user not only provides the business requirement but also the amount they can spend on building the software application which covers their overall business requirements. If requirements and associated building effort are huge and budget is less then it becomes a big challenge for the project manager to make a choice on the team size. Suppose, the project is complex and it requires senior developers but the budget is limited as the cost of deploying senior developers is higher than junior developers but junior developers lack in their skill to develop the product alone. In such a scenario, the project Manager selects a team of developers who have one senior developer as a lead and multiple junior developers working under him. Doing so, the Project manager can manage to have required number of resources with appropriate skills within the stipulated project budget from the business.
2) Resource Skills:
Depending on the business requirements and the agreed technology to implement those requirements into the desired software product decides on the resource skills. If the technology is niche then the probability of finding project resource is quite less and if there are not ample developers available in the market could increase the hiring cost of such technical resource and the project manager has to keep in mind the project budget along with the team size. Therefore, the resource skills and the availability of the resource are another key factors which impact the team sizing.
3) Sub-teams:
A project team is not just composed of developers but it also has a testing team as well. Nobody wants to travel in an aircraft built by himself. Therefore, every organization worth considering to have a Quality Analyst team which can validate the software product and add value to the project. Again, the testing team requires the budget to be allocated from the overall project budget when it comes to the required testing experience and the resource testing skills. Some project may have other sub-teams as well such as compliance team, production or UAT support team, etc.
4) Infrastructure cost:
When we build any software product it requires the set of multiple environments such as SIT (System Integration), UAT (User Acceptance Test), and production environment which runs the actual show. The infrastructure includes physical machines, operating system license, runtime environment license, server license, development and testing tools license, etc. These all come with the infrastructure cost for a project.
The project manager takes all of the above factors into consideration before it can decide on the team sizing, required project development and testing tools and a number of test environments. He also takes care of the project planning for its smooth execution.
Project Planning and Estimation
Project manager appoints a lead from the development team as well as from the testing team. Both leads work together along with BA and Project manager in order to evaluate the effort estimate. Based on the effort estimate, the project manager decides on the type of Software development life cycle (SDLC or STLC) to be chosen for the project execution. The following are the factors which impact the project planning.
1) Choice of SDLC:
Project Manager along with team decides on the type of SDLC model for the project execution. Suppose if the requirements are not stable and subject to change over the period of time then choosing Agile model suits the project execution needs and if requirements are stable then Waterfall model suits the best to the project execution needs.
2) Resource Management against project delay:
Suppose in a project, the team has decided to work on SDLC (Software Development Life Cycle) than managing the resources against the project deliverables is the main challenge since each of the project phases is dependent on the other. E.g., if requirement phase is delayed then development phase will be delayed and hence the typical testing phase which all together going to impact the product go-live date. Therefore, it is very important to do the effective project planning with the proper start and end date of each phase and sub-phases within each phase and should make sure that each phase is achieving the deadline to catch the project scheduled go-live date on time.
3) Documentation:
Project manager along with the testing and development lead should focus on the development and testing documentation. I will say the testing team should be much focused on the typical testing plan, test strategy, test cases, exit criteria, etc. This is because any product can be declared as successful or useful if it is properly tested against its requirement and pass the required level of quality and compliance which a testing team could provide in an efficient way.
Conclusion:
In any project, the documents, delays, and cost are interrelated factors. Therefore, it is the responsibility of the project manager and other teams, esp. the testing team to make sure the software product is built in the right direction and ready to be delivered on time as per the planned estimation and within the project level stipulated budget.
- What is Alpha and Beta Testing?
- Basic Concepts of System Testing – A Beginners Guide
- What Types of Testing Tools used in Client-Server Application Testing
- Adapting To Exploratory Testing Is Not Easy For Every Tester
- Disruptive Testing
- Model Based Testing: Testing Type You Must Know!
- GUI Testing In Software Testing
- Essential Elements in the IoT Software Testing
- Functional Testing
- User Acceptance Testing: What? Why? & How?