Software Development Project Plan
Drafting a Software Project Plan requires knowledge about how Software Development(SDLC) works. In this article, I will be discussing a typical IT Software Project Plan. In a typical Software Development, the changes are moved through environments. The process generally involves taking a change through development, quality assurance, user acceptance and then to production. The words software and system are used interchangeable and both mean the same.
A software development project plan and its tasks will vary depending on the type of implementation but this template can be used as a starting point for planning. Now let's have a look at each of the development phases and understand what needs to be accomplished in each of the phases.
- High Level Requirements - Task to identify the business requirements and generally provided by the SME(Subject Matter Expert). Optionally, the architect and business analyst may be required for software design.
- Estimation - One of the most tricky and challenging tasks in any IT Task. The estimation needs to be done for all the phases. It is tricky and challenging because the team has to estimate without the requirements being fully defined.
- Business Case - The business case generally contains the software development project details like scope, budget, risks, resourcing and other key details of the project. High level requirements and estimation feed into the business case as they will do dedicate the cost and schedule of the software project plan.
The analysis phase is the phase where requirement analysis is done. In this phase, the business requirements are defined. Tasks within analysis phase -
- Requirement Gathering - The task where the requirements are gathered.
- Draft Requirements Document - Document the requirements in a Business Requirements Document.
- Requirements Review - The requirement document should be reviewed by the project team.
- Requirements Sign-off - The process of getting sign-off via email or in writing.
Whom does the requirements analysis depends on the culture or the process followed by the organization? In some companies, the SME writes up the Business Requirements and then the Business Analysts will create a Functional Requirements Document. In some, the Business Analyst does all the tasks.
The design phase in a software project plan is primarily run by the architects. The architects will look at the business requirements and current system design(if applicable) to come with up with the new systems design.
The design document is then used by the developers to build the system. Tasks within the design phase -
- High Level Design Document - Design document which has the system design.
- Design Review - Review the system design with the developer.
The build phase of the software development project is the phase in which the developers will plan to build the software or system. It is also known as development or coding.
The build phase is generally divided into smaller chunks called components as it makes it easier to track. Generally, you should break the components down into small components of 3 - 5 days.
- Build - The actual development or coding of the system.
- Integration Testing - When the individual components are ready integration testing needs to be done to ensure all the components are working together.
- Configure QA Environment - After the integration testing is complete the systems needs to be moved to the QA environment for the Quality Assurance to happen.
Quality Assurance Library
Quality Assurance Library is the test plan and set of test cases which can be used to test the system. The Quality Assurance Library is built in parallel with the development phase.
The phase starts with requirement analysis so that the testers can understand the requirements. Then comes the test plan and test cases. The test plan and test cases are reviewed before the test execution starts.
The quality aims to complete as many scenarios as possible and sometimes test scenarios that are not necessarily true from a business perspective, The idea of QA is to test the system thoroughly.
- Requirement Analysis - The testing team analyses and understands the business requirements.
- Draft Test Plan and Test Cases - The testing team will put the test plan and test cases. The QA team.
- Review Test Case Library - The business analyst and quality assurance manager review the test plan and test case to make the right amount of coverage has been given.
- Sign-off Test Case Library - The test cases and plan are signed off.
Quality Assurance Test
In the quality assurance test phase the newly built or changed software is tested to make sure it is doing what it supposed to do. The test plan and test cases created in the previous phase are executed by the QA team. Any issues found are raised as defects and assigned back to the developers.
- Test Execution: The tests are executed and issues identified. Any issues identified are fixed in this phase.
- Performance Testing: The system is tested for peak loads and to check the performance in peak loads. The system needs to perform normally with high loads.
- QA Sign-off: The quality assurance manager needs to certify that the system is tested.
- Configure UA Environment: After the QA is complete the change needs to move to User Acceptance environment for testing by business users.
User Acceptance Testing
User Acceptance Testing also known as UAT is the process of business users testing to make sure the system changes are inline with the business processes.
- Draft Test Cases: The business users draft the test cases as per the business scenarios.
- Execute Test Cases: The business users execute the test cases.
- Sign-off UAT: The business manager signs off the UAT so that the systems can be promoted to the next environment which is Pre Prod.
Implementation planning is a key step in any software development project plan. During the implementation task, a step-by-step plan is drafted for implementation of the changes in the production systems. The implementation plan is used by the deployment team to do the deployment.
Pre-Production is a dress rehearsal of the tasks to be done in the production implementation. The pre-production environment helps the team to identify any gaps in the planning before proceeding with the production implementation.
- Configure Pre-Production: The deployment team will follow the steps which will be followed during production environment implementation.
- Test Pre-Production: The business users or the technical team tests the pre production environment to make sure the system is working fine.
The key to pre-production testing is to make sure that the system is usable and stable. The testing should be focused on making sure the new changes are working as expected.
The day when the changes will be applied to production.
- Configure Production: The implementation or changes applied to production environment as per the implementation plan.
- Verify Production: The business users will do verification of the new system without creating permanent data or records. It is mostly limited to logging in and doing basic navigation.
- Go Live: Go Live is when the new system is verified and ready to be use.
Post Go Live Support
After the new systems go live there will be a certain time until which the team which worked on the project is put on standby to fix any issues that are identified after the system goes live.
We also recommend the following -
Detailed step-by-step explaining the structure of plan for Software Implementation with MS Project, using Traffic Light Indicators to manage projects plans, Agile Project Plans in MS Project and Excel.
A slightly advanced version of excel project plan to include notes and timeline. Also, see Excel Project Plan template with Gantt Chart. Project Proposal for Software Development for a business rules engine system.