X

Join Our WhatsApp Group to get latest updates

Join Now

Software Project Management

Software Project Management

 

3.1 Activities in project management 

 3.2 Software project planning 

 3.3 Software project management plan 

3.4 Software project scheduling and techniques 

 3.5 Software project team management and organization 

 3.6 Project estimation techniques 

 3.7 COCOMO model 

 3.8 Risk analysis and management 

 3.9 Risk management process 

 3.10 Software configuration management 

 3.11Software change management 

 3.12Version and release management


What is Project? 

A project is a group of tasks that need to complete to reach a clear result. A project also defines as a set of inputs and outputs which are required to achieve a goal. Projects can vary from simple to difficult and can be operated by one person or a hundred.


What is software project management? 

Software project management is an art and discipline of planning and supervising software projects. It is a subdiscipline of software project management in which software projects planned, implemented, monitored and controlled. 

It is a procedure of managing, allocating and timing resources to develop computer software that fulfills requirements.


Project Manager 

A project manager is a character who has the overall responsibility for the planning, design, execution, monitoring, controlling and closure of a project. A project manager represents an essential role in the achievement of the projects.


Role of a Project Manager: 

1. Leader:  A project manager must lead his team and should provide them direction to make them understand what is expected from all of them. 

 2. Medium:  The Project manager is a medium between his clients and his team. He must coordinate and transfer all the appropriate information from the clients to his team and report to the senior management.

3. Mentor:  He should be there to guide his team at each step and make sure that the team has an attachment. He provides a recommendation to his team and points them in the right direction.


Responsibilities of a Project Manager:

  • Managing risks and issues. 
  • Create the project team and assigns tasks to several team members. 
  • Activity planning and sequencing. 
  • Monitoring and reporting progress. 
  • Modifies the project plan to deal with the situation.


Activities in project management:

Software Project Management consists of many activities, that includes planning of the project, deciding the scope of product, estimation of cost in different terms, scheduling of tasks, etc. 

The list of activities are as follows: 

  1. Project planning and Tracking 
  2. Project Resource Management 
  3. Scope Management 
  4. Estimation Management 
  5. Project Risk Management 
  6. Scheduling Management 
  7. Project Communication Management 
  8. Configuration Management


1. Project Planning: It is a set of multiple processes, or we can say that it a task that performed before the construction of the product starts. 


2. Scope Management: It describes the scope of the project. Scope management is important because it clearly defines what would do and what would not. Scope Management create the project to contain restricted and quantitative tasks, which may merely be documented and successively avoids price and time overrun.


3. Estimation management: This is not only about cost estimation because whenever we start to develop software, but we also figure out their size(line of code), efforts, time as well as cost. 

 And if we talk about cost, it includes all the elements such as:

  •  Size of software 
  • Quality 
  • Hardware 
  • Communication 
  • Training 
  • Additional Software and tools 
  • Skilled manpower


4. Scheduling Management: Scheduling Management in software refers to all the activities to complete in the specified order and within time slotted to each activity. Project managers define multiple tasks and arrange them keeping various factors in mind. 


5. Project Resource Management: In software Development, all the elements are referred to as resources for the project. It can be a human resource, productive tools, and libraries. 

 Resource management includes: 

  • Create a project team and assign responsibilities to every team member 
  • Developing a resource plan is derived from the project plan. 
  • Adjustment of resources. 


6. Project Risk Management: Risk management consists of all the activities like identification, analyzing and preparing the plan for predictable and unpredictable risk in the project. 

 Several points show the risks in the project: 

  •  The Experienced team leaves the project, and the new team joins it. 
  •  Changes in requirement. 
  •  Change in technologies and the environment. 
  •  Market competition. 


7. Project Communication Management: Communication is an essential factor in the success of the project. It is a bridge between client, organization, team members and as well as other stakeholders of the project such as hardware suppliers. 


8. Project Configuration Management: Configuration management is about to control the changes in software like requirements, design, and development of the product.


Software Project Planning

A Software Project is the complete methodology of programming advancement from requirement gathering to testing and support, completed by the execution procedures, in a specified period to achieve intended software product. 

  • Before starting a software project, it is essential to determine the tasks to be performed and properly manage allocation of tasks among individuals involved in the software development. Hence, planning is important as it results in effective software development. 
  • Project planning is an organized and integrated management process, which focuses on activities required for successful completion of the project. It prevents obstacles that arise in the project such as changes in projects or organization’s objectives, non-availability of resources, and so on. 
  • Project planning also helps in better utilization of resources and optimal usage of the allotted time for a project. The other objectives of project planning are listed below. 

  1.  It defines the roles and responsibilities of the project management team members. 
  2.  It ensures that the project management team works according to the business  objectives. 
  3.  It checks feasibility of the schedule and user requirements. 
  4.  It determines project constraints.


Project Scheduling

Project-task scheduling is a significant project planning activity. It comprises deciding which functions would be taken up when. To schedule the project plan, a software project manager wants to do the following: 

1. Identify all the functions required to complete the project. 

2. Break down large functions into small activities. 

3. Determine the dependency among various activities. 

4. Establish the most likely size for the time duration required to complete the activities. 

5. Allocate resources to activities. 

6. Plan the beginning and ending dates for different activities. 

7. Determine the critical path. A critical way is the group of activities that decide the duration of the project. 

 

Different Techniques of Project Scheduling

Project Scheduling typically includes various techniques, an outline of each technique is provided below. 

1. Mathematical Analysis 

Critical Path Method (CPM) and Program Evaluation and Review Technique (PERT) are the two most commonly used techniques by project managers. These methods are used to calculate the time span of the project through the scope of the project.  

a. Critical Path Method 

Every project’s tree diagram has a critical path. The Critical Path Method estimates the maximum and minimum time required to complete a project. CPM also helps to identify critical tasks that should be incorporated into a project. Delivery time changes do not affect the schedule. The scope of the project and the list of activities necessary for the completion of the project are needed for using CPM. Next, the time taken by each activity is calculated. Then, all the dependent variables are identified. This helps in identifying and separating the independent variables. Finally, it adds milestones to the project. 

b. Program Evaluation and Review Technique (PERT) 

PERT is a way to schedule the flow of tasks in a project and estimate the total time taken to complete it. This technique helps represent how each task is dependent on the other. To schedule a project using PERT, one has to define activities, arrange them in an orderly manner and define milestones. You can calculate timelines for a project on the basis of the level of confidence: 

  • Optimistic timing 
  • Most-likely timing 
  • Pessimistic timing



2. Duration Compression 

Duration compression helps to cut short a schedule if needed. It can adjust the set schedule by making changes without changing the scope in case, the project is running late. Two methodologies that can be applied: fast tracking and crashing. 

a. Fast Tracking 

Fast-tracking is another way to use CPM. Fast-tracking finds ways to speed up the pace at which a project is being implemented by either simultaneously executing many tasks or by overlapping many tasks to each other. 

b. Crashing  

Crashing deals with involving more resources to finish the project on time. For this to happen, you need spare resources to be available at your disposal. Moreover, all the tasks cannot be done by adding extra resources. 

3. Simulation 

The expected duration of the project is calculated by using a different set of tasks in simulation. The schedule is created on the basis of assumptions, so it can be used even if the scope is changed or the tasks are not clear enough. 

4. Resource-Leveling Heuristics 

Cutting the delivery time or avoiding under or overutilization of resources by making adjustments with the schedule or resources is called resource leveling heuristics. Dividing the tasks as per the available resources, so that no resource is under or over-utilized. The only demerit of this methodology is it may increase the project’s cost and time. 

5. Task List 

The task list is the simplest project scheduling technique of all the techniques available. Documented in a spreadsheet or word processor is the list of all possible tasks involved in a project. This method is simple and the most popular of all methods. It is very useful while implementing small projects. But for large projects with numerous aspects to consider task list is not a feasible method.  

6. Gantt Chart 

For tracking progress and reporting purposes, the Gantt Chart is a visualization technique used in project management. It is used by project managers most of the time to get an idea about the average time needed to finish a project. A project schedule Gantt chart is a bar chart that represents key activities in sequence on the left vs time. Each task is represented by a bar that reflects the start and date of the activity, and therefore its duration. 

img........


work breakdown structure 

The work breakdown structure formalism supports the manager to breakdown the function systematically after the project manager has broken down the purpose and constructs the work breakdown structure; he has to find the dependency among the activities. Dependency among the various activities determines the order in which the various events would be carried out. 


 Team Management 

Team management includes the processes required to make the most effective use of the people involved with the project. The project team includes the project manager and the project staff who have been assigned with the responsibility to work on the project. 

Team Management Process The major processes involved in team management are: 

Plan: Team identification, the process of identifying the skills and competencies required for carrying out the project activities and assign roles and responsibilities. 

Do: Team building, organizing the team and building their capacity to perform on the project, provide coaching and mentoring. 

Check: Evaluate team and individual performance, monitor skills, and motivation. 

Adapt: Improve team performance, build skills and set new targets 

Inputs: Inputs for the project team management include the following documents or sources of information: 

    •  WBS 
    •  Project Scope Statement 
    •  HR organization policies 
    •  Assessment of team skills 
    •  Performance reviews 

Outputs: The project team will use the above information to develop four important  documents for the project: 

    •  Staffing management plan 
    •  Resource responsibility matrix 
    •  Team evaluations 
    •  Development plans


 Software Project Team Organization 

There are many ways to organize the project team. Some important ways are as follows : 

  •  Hierarchical team organization 
  •  Chief-programmer team organization 
  •  Matrix team, organization 
  •  Egoless team organization 
  •  Democratic team organization 


Hierarchical team organization : 

In this, the people of organization at different levels following a tree structure. People at bottom level generally possess most detailed knowledge about the system. People at higher levels have broader appreciation of the whole project. 

 Chief-programmer team organization : 

This team organization is composed of a small team consisting the following team members : 

    •  The Chief programmer : It is the person who is actively involved in the planning, specification and design process and ideally in the implementation process as well. 
    • The project assistant : It is the closest technical co-worker of the chief programmer. 
    • The project secretary : It relieves the chief programmer and all other programmers of administration tools. 
    • Specialists : These people select the implementation language, implement individual system components and employ software tools and carry out tasks. 
    • Matrix Team Organization : In matrix team organization, people are divided into specialist groups. Each group has a manager. Example of Metric team organization is as follows : 
    • Egoless Team Organization : Egoless programming is a state of mind in which programmer are supposed to separate themselves from their product. In this team organization goals are set and decisions are made by group consensus. Here group, ‘leadership’ rotates based on tasks to be performed and differing abilities of members. 
    • Democratic Team Organization : It is quite similar to the egoless team organization, but one member is the team leader with some responsibilities : 

 

Coordination 

Final decisions, when consensus cannot be reached. 


Software Engineering | Project size estimation techniques 

Estimation of the size of the software is an essential part of Software Project Management. It helps the project manager to further predict the effort and time which will be needed to build the project. Various measures are used in project size estimation. Some of these are: 

    1. Lines of Code 
    2. Number of entities in ER diagram 
    3.  Total number of processes in detailed data flow diagram 
    4. Function points 

1. Lines of Code (LOC): 

As the name suggests, LOC count the total number of lines of source code in a project. The units of LOC are: 

    •  KLOC-Thousand lines of code 
    •  NLOC- Non-comment lines of code 
    •  KDSI- Thousands of delivered source instruction 
    •  The size is estimated by comparing it with the existing systems of the same kind. The experts use it to predict the required size of various components of software and then add them to get the total size. 

 2. Number of entities in ER diagram: 

ER model provides a static view of the project. It describes the entities and their relationships. The number of entities in ER model can be used to measure the estimation of the size of the project. The number of entities depends on the size of the project. This is because more entities needed more classes/structures thus leading to more coding. 

Advantage :

  • Size estimation can be done during the initial stages of planning. 
  • The number of entities is independent of the programming technologies used. 


Disadvantages: 

    • No fixed standards exist. Some entities contribute more project size than others. 
    • Just like FPA, it is less used in the cost estimation model. Hence, it must be converted to LOC. 


3. Total number of processes in detailed data flow diagram: 

Data Flow Diagram(DFD) represents the functional view of software. The model depicts the main processes/functions involved in software and the flow of data between them. Utilization of the number of functions in DFD to predict software size. Already existing processes of similar type are studied and used to estimate the size of the process. Sum of the estimated size of each process gives the final estimated size. 


Advantages: 

    •  It is independent of the programming language. 
    •  Each major process can be decomposed into smaller processes. This will increase the accuracy of estimation 


Disadvantages: 

    • Studying similar kinds of processes to estimate size takes additional time and effort. 
    •  All software projects are not required for the construction of DFD. 

4. Function Point Analysis:

In this method, the number and type of functions supported by the software are utilized to find FPC(function point count). The steps in function point analysis are: 

    • Count the number of functions of each proposed type. 
    • Compute the Unadjusted Function Points(UFP). 
    • Find Total Degree of Influence(TDI). 
    •  Compute Value Adjustment Factor(VAF). 
    •  Find the Function Point Count(FPC). 


....Comming Soon

Post a Comment

Previous Post Next Post