Suppose you are working as a team lead in the software house and a task is assigned to you. The task is to develop two different software applications. One of them is a large-scale industrial software application and the other is small scale software application. As a team lead, you have to decide a development model for this task. Will you use the same development model for both the software applications or use different models for them? Discuss your solution with solid reasoning.
A software project manager is the most important person inside a team who takes the overall responsibilities to manage the software projects and play an important role in the successful completion of the projects. A project manager has to face many difficult situations to accomplish these works. In fact, the job responsibilities of a project manager range from invisible activities like building up team morale to highly visible customer presentations. Most of the managers take responsibility for writing the project proposal, project cost estimation, scheduling, project staffing, software process tailoring, project monitoring and control, software configuration management, risk management, managerial report writing and presentation and interfacing with clients. The task of a project manager are classified into two major types:
Project monitoring and control
Project planning is undertaken immediately after the feasibility study phase and before the starting of the requirement analysis and specification phase. Once a project has been found to be feasible, Software project managers started project planning. Project planning is completed before any development phase starts. Project planning involves estimating several characteristics of a project and then plan the project activities based on these estimations. Project planning is done with most care and attention. A wrong estimation can result in schedule slippage. Schedule delay can cause customer dissatisfaction, which may lead to a project failure. For effective project planning, in addition to a very good knowledge of various estimation techniques, past experience is also very important. During the project planning the project manager performs the following activities:
Project Estimation: Project Size Estimation is the most important parameter based on which all other estimations like cost, duration and effort are made.
Cost Estimation: Total expenses to develop the software product is estimated.
Time Estimation: The total time required to complete the project.
Effort Estimation: The effort needed to complete the project is estimated.
The effectiveness of all later planning activities is dependent on the accuracy of these three estimations.
Scheduling: After completion of estimation of all the project parameters, scheduling for manpower and other resources are done.
Staffing: Team structure and staffing plans are made.
Risk Management: The project manager should identify the unanticipated risks that may occur during project development risk, analysis the damage might cause these risks and take risk reduction plan to cope up with these risks.
Miscellaneous plans: This includes making several other plans such as quality assurance plan, configuration management plan, etc.
The order in which the planning activities are undertaken is shown in the below figure:
Project monitoring and control
Project monitoring and control activities are undertaken once the development activities start. The main focus of project monitoring and control activities is to ensure that the software development proceeds as per plan. This includes checking whether the project is going on as per plan or not if any problem created then the project manager must take necessary action to solve the problem.
Role of a software project manager: There are many roles of a project manager in the development of software.
Lead the team: The project manager must be a good leader who makes a team of different members of various skills and can complete their individual task.
Motivate the team-member: One of the key roles of a software project manager is to encourage team member to work properly for the successful completion of the project.
Tracking the progress: The project manager should keep an eye on the progress of the project. A project manager must track whether the project is going as per plan or not. If any problem arises, then take necessary action to solve the problem. Moreover, check whether the product is developed by maintaining correct coding standards or not.
Liaison: Project manager is the link between the development team and the customer. Project manager analysis the customer requirements and convey it to the development team and keep telling the progress of the project to the customer. Moreover, the project manager checks whether the project is fulfilling the customer requirements or not.
Documenting project report: The project manager prepares the documentation of the project for future purpose. The reports contain detailed features of the product and various techniques. These reports help to maintain and enhance the quality of the project in the future.
Necessary skills of software project manager: A good theoretical knowledge of various project management technique is needed to become a successful project manager, but only theoretical knowledge is not enough. Moreover, a project manager must have good decision-making abilities, good communication skills and the ability to control the team members with keeping a good rapport with them and the ability to get the work done by them. Some skills such as tracking and controlling the progress of the project, customer interaction, good knowledge of estimation techniques and previous experience are needed.
Skills that are the most important to become a successful project manager are given below:
Knowledge of project estimation techniques
Good decision-making abilities at the right time
Previous experience of managing a similar type of projects
Good communication skill to meet the customer satisfaction
A project manager must encourage all the team members to successfully develop the product
He must know the various type of risks that may occur and the solution for these problems