Activities for the SPM
In part one of this two-part series, you read about the role of the organization in a software project initiation. Part two reviews the Software Planner Initiation (SPI) activities, which are carried out by either the Software Project Manager (SPM) or a person designated by him. The SPM takes ownership of all the SPI activities. SPM may take networking and Sys Admin personnel to set up a network and development environment. Let us consider each of the SPI activities below.
The SPM Studies the Specs Received from the Client Including:
- Technical specs
- Delivery commitments
- Milestone details
- The SPM studies all of these to be certain they are complete and make an assessment of achieving them. He will interact with Project Management Office (PMO) or the customer as required and fill the gaps in the specs, if any.
The SPM Carries Out Software Estimation:
- Size of software to be produced
- Effort needed for executing the project successfully along with needed skill sets of the personnel
- Schedule for the project execution
- Cost estimation for the project
The SPM estimates the size of the software product to be produced. He chooses an appropriate size measure based on the organizational standard and customer preference, if any. Then he converts the size into effort in person days or hours using appropriate productivity figures. He then works out the schedule of development and the cost of development.
Obtains Budgetary Sanctions for the Estimates.
The SPM would submit the software estimates to the appropriate authority in the organization and interface to obtain necessary sanctions for the budget. This sanction is necessary to obtain the required resources for the execution of the project. The SPM would follow the organizational processes for this activity.
Provides Requests for Necessary Resources:
- Personnel– the necessary mix of skills, development platform experience, domain expertise and level. This is normally carried out by the HR department. In larger organizations it is common to have a resource cell that is vested with the authority of allocating people to projects. If people were to be recruited, this department would interact with HR for recruitment.
- Hardware resources – this request falls to the Sys Admin department which allocates necessary hardware for the execution of the project. Sys Admin would procure special hardware, if any is required for the project, and make it available to the SPM.
- Software resources - this request would be given to the Sys Admin department who allocates necessary system software and a development kit for the execution of the project. Sys Admin would procure special software, if any were required for the project, and make it available to the SPM.
- Seating facility – this would be assigned to the Administration or Facilities department. They would provide a necessary seating facility for the project team in such a way that the team is collocated.
- Networking and Internet – this would be for the Sys Admin department, who would provide necessary interconnection for the project team, providing required security and Internet facilities.
Prepares Project Plans
Project Planning is an involved activity and is probably the single factor that can cause project success or failure. Since this is a large subject I addressed a separate paper on this subject. However, in a nutshell, the following plans are prepared.
- Project Management Plan – this contains details of the project scope, milestones, tools & techniques used in the project, communication and issue resolution mechanisms, etc. are detailed.
- Configuration & Change Management Plan – this plan contains details of development configuration, development state promotion, change management procedures, naming conventions and so on.
- Quality Assurance Plan – this plan contains quality assurance activities proposed for the project, metrics to benchmark the project, quality assurance roles and responsibilities for the project etc..
- Project Execution and Delivery schedule – this is a detailed work breakdown-based schedule listing all the activities with resources and dates assigned for each of the activities, giving the probable dates of reaching the set milestones, deliveries and project completion.
- Product Integration Plan – this plan contains the proposed approach for integrating the product and integration testing along with roles and responsibilities for product integration.
- Deployment Plan – this plan contains details of hardware and software required for deploying the solution, the schedule of deployment, roles and responsibilities for deployment etc.
- Induction Training Plan – this plan contains the details of topics to be covered for training new entrants to the project, pointers to course material, roles and responsibilities for conducting the induction training and its evaluation etc.
- Handover Plan – This plan contains details of hardware and software components to be handed over to the client's representatives, acceptance mechanisms, roles and responsibilities of persons involved in handing over the completed project to the customer etc..
- Issue Resolution Plan – this plan contains details about reporting issues, obtaining resolution, roles and responsibilities etc..
Sets Up Development Environment
Development environment involves seating the project team together, ensure that all the developers have the necessary development tool kit and access to communication facilities, that the QA personnel have all necessary testing tools and a separate test environment, and so on. The following activities are included:
- Set up seating facility – take possession of the seats provided by the Admin/Facility department and allocate them to team members in such a way that each member is located in the related group and ensure that the complete team is seated.
- Set up hardware – provide necessary hardware resources to the team members.
- Set up system software and development tool kit – ensure that all team members are provided with necessary system software, database management system, development tool kit including editors, compilers, debuggers and so on.
- Set up information sharing directories – organize the information such as user requirements, design documents, project plans, training materials, issue reporting formats, test plans and all other formats and templates needed for the team working in convenient directories and providing need-based access to all the team members and ensuring security thereon.
- Set up networking and Internet – ensure that all the hardware of the project team is interconnected and Internet is provided to the team on an as needed basis.
- Set up work allocation and execution mechanisms – deploy work registers at commonly accessible places and inform the teams of communication protocols for making work allocation, as well as reporting work completion and keeping the team informed of the same.
- Identification of appropriate standards and guidelines for coding, designing, testing, reviewing, and defining them where they are not available.
- Arrange project-specific skill training required, if any, to project team members; as needed, arrange classroom or self-study training to the team members and all activities connected with such training.
- Train project team on all aspects of project execution as specified in the project plans.
- Organize the project team into its constituent functions, module teams, QA teams, Database team etc.
- Conduct a Project Kickoff meeting with other concerned departments and obtain commitments for project-specific service levels and issue resolution mechanisms. This is carried out with the help of the PMO (Project Management Office) who would arrange the meeting and invite all necessary department representatives to be present. In this meeting, the SPM presents the details of the project including milestones and the support needed from those present as well as the SLAs needed. After negotiating the SLAs, all present note their commitments and implement and adhere to those during the project execution. Typically, SQA (Software Quality Assurance), Sys Admin, Admin/Facility, Networking, Marketing & CRM (Customer Relationship Management) department representatives would attend this meeting.
This is the last activity of the SPI. The SPM invites the Internal Auditor designated for the project to audit the project for conformance with the defined Project Initiation Process of the organization. The audit may unearth non-conformances, if any, and report them to the SPM. The SPM arranges for the rectification of the non-conformances and closes them.This concludes the Software Project Initiation, and the project execution phase starts.