You are on page 1of 21

Software project management

Software Project Management


Maha Gomaa Talha Dina Ibrahim Hassan Bassant Saied Rabia Nasr Alaa Mohamed Abdelsalm 13/12/2010

1Page

Technical report

Software project management

Abstract
Project management is the process of organizing the software product construction. It helps project control and enhances product performance.

2Page

Technical report

Software project management

Introduction:
Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software. The project manager plans and guides the software project. The project manager is responsible for identifying the users and determining their needs. The project manager coordinates the team, ensuring that each task has an appropriate software engineer assigned and that each engineer has sufficient knowledge to perform it. To do this well, the project manager must be familiar with every aspect of software engineering.

3Page

Technical report

Software project management

Outlines:
1. General talk about software project management:
1.1. What is project management? 1.2. Benefits of applying software project management.

2. Project manager:
2.1. Tasks of software project manager. 2.1. Required skills to be a project manager.

3. Project management steps:


3.1. Project planning. 3.2. Project scheduling.

4. Risk management:
4.1. Risk identification. 4.2. Risk analysis. 4.3. Risk planning.

5. Quality assurance:
5.1. Quality Basics. 5.2. Quality Assurance Activities in Projects.

4Page

Technical report

Software project management

1. General talk about software project management:


1.1. What is project management?
<How to manage the what>
. Software project management is a methodical approach to planning and guiding project processes from start to finish. Where software projects are planned, monitored and controlled.

.Project management is the discipline of planning, organizing, securing and managing resources to bring about the successful completion of specific engineering project goals and objectives. It is sometimes conflated with program management, however technically that is actually a higher level construction: a group of related and somehow interdependent engineering projects. .Software project management remains different from project management in other, more established fields for a number of reasons: Software is a brain product only, unconstrained by the laws of physics or by the limits of manufacturing processes.

Who builds software?


- Business analysts or requirements analysts who talk to users and determine the behavioral of the software. - Designers and architects who plan the technical solution. - Programmers who write the code. - Testers who verify that the software meets its requirements.

5Page

Technical report

Software project management

1.2. Benefits of applying software project management.


- Shorter implementation time. - Improved product quality. - Improved team productivity. - Better documentation. - Risks will be identified and managed. - Cost savings. - Achieve an agreed outcome.

Project management has technique for measuring project progress in an objective manner which is: Earned value management (EVM).

-Project manager:
- Manage events which depend on each other in different ways - Be able to schedule the various members of the project team, including specific tasks for each member - Has the ability of predicting and dealing with uncertainties and emergency situations which may arise during the project . - Make sure that tasks are finished on time and that new tasks are assigned

6Page

Technical report

Software project management

2. Project Manager
2.1. Tasks of software project manager:
When they are appointed, project managers should be given terms of reference that define their: - Objectives. - Responsibilities. - Limits of authority.

The objective of every project manager is to deliver the product on time, within budget and with the required quality. Although the precise responsibilities of a project manager will vary from company to company and from project to project, they should always include planning and forecasting.

2.1.1. Interpersonal responsibilities, which include:


Leading the project team. Motivating all concerned until the project accomplishes its goal. Liaising with initiators, senior management and suppliers. Being the 'figurehead', i.e. setting the example to the project team and representing the project on formal occasions.

2.1.2. Informational responsibilities, which include:


- Monitoring the performance of staff and the implementation of the project plan. - Disseminating information about tasks to the project team. - Disseminating information about project status to initiators and senior management.

2.1.3. Decisional responsibilities, which include:


- Allocating resources according to the project plan, and adjusting those allocations when circumstances dictate (i.e. the project manager has responsibility for the budget).
7Page Technical report

Software project management


- Handling disturbances to the smooth progress of the project such as equipment failures and personnel problems. - Be able to manage uncertainty, rapid change, ambiguity, surprises, and a less defined environment.

2.2. A manager can control 4 things:


- Resources. - Time. - Product. - Risk.

2.3. Required skills to be a project manager:


Good project managers have high tolerance for surprises, uncertainty, and ambiguity. Projects rarely progress the way that they are defined, and managers need to manage the uncertainty that comes with that.

2.3.1. Personal Skills:


Project Managers must be able to motivate and sustain people. Project team members will look to the project manager to solve problems and help with removing obstacles. Project managers must be able to address and solve problems within the team, as well as those that occur outside the team. There are numerous ways, both subtle and direct, in which project managers can help team members.

2.3.1.1. Some examples include the following:


Team members will be closely watching all actions of the project manager. Therefore, project managers must be honest, direct, straightforward, and knowledgeable in all dealings with people and with the project. A good manager knows how to work hard and have fun, and this approach becomes contagious. A positive attitude. Project managers must always have a positive attitude, even when there are substantial difficulties, problems, or project obstacles.

8Page

Technical report

Software project management


Define expectations. Managers who manage must clearly define what is expected of team members. It is important to do this in writingget agreement from the individual team members. This leaves no room for problems later, when someone states Its not my job. Performance expectations must be defined at the start of the project. Be considerate. Project management is a demanding job with a need for multiple skills at many levels. Above all, be considerate and respectful, and give people and team members the time and consideration they deserve. Make people aware that their efforts are appreciated and the work that they do is important, because it is. A letter, personal word, or e-mail of appreciation goes a long way. Be direct. Project managers are respected if they are direct, open, and deal with all types of problems. Never conceal problems or avoid addressing them. If a problem is bigger than the project manager or the team can deal with, escalate it to senior management. Never make commitments that cannot be delivered.

2.3.2.Technical Skills
There are two schools of thought about the level needed for technical skills. Some project managers prefer to have little technical knowledge about the projects they manage, preferring to leave the technical management to other junior managers, such as programming managers or network managers. Others have detailed technical skills of computer languages, software, and networks. There is no hard and fast rule. It really depends on the type and size of projects, their structure, resources available, and the project environment.

2.3.3.Management Skills
Project managers need other key skills besides those that are purely technical to lead and deliver on their projects successfully. A good project manager needs to understand many facets of the business aspect of running a project, so critical skills touch on expertise in the areas of organization, communication, finance, and human resources.

9Page

Technical report

Software project management


2.3.4. Coping Skills Being flexible Being persistent and firm when necessary Being creative, even when the project does not call for it Absorbing large volumes of data from multiple sources Being patient but able to differentiate between patience and action Being able to handle large amounts of continuous, often unrelenting stress

11Page

Technical report

Software project management

3. Project management steps:


The initiation phase:
The first phase of project management is the Initiation phase. It's during this initial time that the project goal is established. During Phase 1, if a project manager has been assigned, this person works with the involved parties, otherwise known as the project stakeholders, to fully determine how to measure the success of the project once all work is complete .

3.1. Project planning.


The purpose of project planning is to identify the scope of the project, estimate the work involved, and create a project schedule. Project planning begins with requirements that define the software to be developed. The project plan is then developed to describe the tasks that will lead to completion. The Project Planning Phase involves creating of a set of plans to help guide your team through the execution and closure phases of the project. The plans created during this phase will help you to manage time, cost, quality, change, risk and issues. They will also help you manage staff and external suppliers, to ensure that you deliver the project on time and within budget.

It consists of:
- A statement of work (SOW) that describes all work products that will be produced and a list of people who will perform that work. - A resource list that contains a list of all resources that will be needed for the product and their availability. - A work breakdown structure and a set of estimates. - A project schedule. - A risk plan that identifies any risks that might be encountered and indicates how those risks would be handled should they occur.
11Page Technical report

Software project management

The project plan is used by many people in the organization.


The project manager uses it to communicate the projects status to the stakeholders and senior managers, and to plan the teams activities. The team members use it to understand the context for the work they are doing. The senior managers use it to verify that the projects cost and schedule are reasonable and under control.

Over view about planning phase:


The project team members should be identified before creating the project plan. The project manager should first identify the key staff skills that are needed on the project, then determine which resources best provide those skills and the project manager must take care to ensure that the resources, which are available, will meet project requirements. To ensure team success, team guidelines, a meeting schedule, and status reporting standards should be decided upon after the group is first formed.

When all activity information has been collected, allocated resources should be assigned to each activity. This will create an initial project schedule. At this point, the schedule may need to be revised to reflect the impact of allocated resources. Estimated one-time and recurring expenditures should also be documented when appropriate.

12Page

Technical report

Software project management

3.2. Project scheduling.


The project schedule is a calendar that links the tasks to be done with the resources that will do them. Before a project schedule can be created, the project manager must have a work breakdown structure (WBS), an effort estimate for each task, and a resource list with availability for each resource. If these are not yet available, it may be possible to create something that looks like a schedule, but it will essentially be a work of fiction.

Identify Dependencies:
Once resources are allocated, the next step in creating a project schedule is to identify dependencies between tasks. A task has a dependency if it involves an activity, resource, or work product that is subsequently required by another task. Dependencies come in many forms: a test plan cant be executed until a build of the software is delivered; code might depend on classes or modules built in earlier stages; a user interface cant be built until the design is reviewed. If Wideband Delphi is used to generate estimates, many of these dependencies will already be represented in the assumptions.

13Page

Technical report

Software project management

4. Risk management:
4.1. Defining Software Risk Management.
Making informed decisions by consciously assessing what can go wrong, as well as the likelihood and severity of the impact is at the heart of risk management. In fact, all areas in systems development are potential sources of software risks (see Figure 1)

Software technical risk can be defined as a measure of the probability and severity of adverse effects inherent in the development of software that does not meet its intended functions and performance requirements. The greater the risk, the greater the reward must be to make it worthwhile to take the chance. In software development, the possibility of reward is high, but so is the potential for disaster. The need for software risk management is illustrated in Gilbs risk principle. If you dont actively attack the risks, they will actively attack you". There are basic risks that are generic to almost all software projects. Although there is a basic component of risk management inherent in good project management, risk management differs from project management in the following ways:

14Page

Technical report

Software project management

Within risk management the emphasis is shifted from crisis management to anticipatory management Four major reasons for implementing software risk management: 1. Avoiding software project disasters, including run away budgets and schedules, defect-ridden software products, and operational failures. 2. Avoiding rework caused by erroneous, missing, or ambiguous requirements, design or code, which typically consumes 40-50% of the total cost of software development. 3. Avoiding overkill with detection and prevention techniques in areas of minimal or no risk. 4. Stimulating a win-win software solution where the customer receives the product they need and the vendor makes the profits they expect.

4.2. Defining Risk.


So, what are risks? Risks are simply potential problems. For example, every time we cross the street, we run the risk of being hit by a car. The risk does not start until we make the commitment, until we step in the street. It ends when the problem occurs (the car hits us) or the possibility of risk is eliminated (we safely step onto the sidewalk of the other side of the street). A software project may encounter various types of risks: Technical risks include problems with languages, project size, project functionality, platforms, methods, standards, or processes. These risks may result from excessive constraints, lack of experience, poorly defined parameters, or dependencies on organizations outside the direct control of the project team. Management risks include lack of planning, lack of management experience and training, communications problems, organizational issues, lack of authority, and control problems.
15Page Technical report

Software project management


Financial risks include cash flow, capital and budgetary issues, and return on investment constraints. Contractual and legal risks include changing requirements, marketdriven schedules, health & safety issues, government regulation, and product warranty issues. Personnel risks include staffing lags, experience and training problems, ethical and moral issues, staff conflicts, and productivity issues. Other resource risks include unavailability or late delivery of equipment & supplies, inadequate tools, inadequate facilities, distributed locations, unavailability of computer resources, and slow response times.

4.3. Risk Management Process:


Risk identification Identify project, product and business risks. Risk analysis Assess the likelihood and consequences of these risks. Risk planning Draw up plans to avoid or minimize the effects of the risk. Risk monitoring Monitor the risks throughout the project.

16Page

Technical report

Software project management

5. Quality assurance:
What is Software Quality Assurance?
Software QA involves the entire software development process that improving the process, making sure that any agreed-upon standards and procedures are followed, and ensuring that problems are found and dealt with. Quality is obviously a subjective term; the accounting department might define quality in terms of profits, an end-user might define quality as user-friendly and a tester might define quality as bug-free. The software quality assurance group works with the software project during its early stages to establish plans, standards, and procedures that will add value to the software project and satisfy the constraints of the project. Compliance issues are first addressed within the software project and resolved if possible. For issues not resolvable within the software project, the software quality assurance group escalates the issue to an appropriate level of management for resolution.

5.1. Quality Basics. What is Project Quality Plan?


It is a set of activities planned at the beginning of the project that helps achieve Quality in the Project being executed. The Purpose of the Project Quality Plan is to define activities that intend to deliver products while focusing on achieving customer's quality expectations. These activities are defined on the basis of the quality standards set by the organization delivering the product. These activities includes the implementation of Quality Events (peer reviews, checklist execution).

17Page

Technical report

Software project management

Types of standards of software quality assurance:


Documentation Standards: it specifies form and content for planning, control, and product documentation and provides consistency throughout a project. Design Standards: They provide rules and methods for translating the software requirements into the software design and for representing it in the design documentation. Code Standards: specify the language in which the code is to be written and define any restrictions on use of language features. They define legal language structures, style conventions, rules for data structures and interfaces, and internal code documentation.

Guidelines to write the Project Quality Plan:


The following list provides you the various Quality Elements that should be included in a detailed Project Quality Plan: Management Responsibility: Describes the quality responsibilities of all stakeholders. Design Control: This specifies the procedures for Design Review. Document Control: This defines the process to control Project Documents at each Project Phase. Inspection Testing: This details the plans for Acceptance Testing and Integration Testing. Quality Records: This describes the procedures for maintaining the Quality Records (variance reports, executed checklists, etc.) during project execution as well as after the project completion. Training: This should specify any training requirements for the project team.

18Page

Technical report

Software project management

5.2. Quality Assurance Activities in Projects. Evaluating your Project Quality Plan:
For quality assurance to be effective, two things must be ensured:

First, the Project Quality plan must be sufficient to achieve the required quality standards expected of the organization. The plan must be detailed listing all quality requirements and standards, but also include all the steps taken to ensure that those requirements and standards are met. Secondly, quality assurance (i.e. final product testing) should be independent of the project itself (as well as the project manager). This comes down from the project management guidelines for effective quality assurance, and builds on a broad-based, organizational approach to standards-based product testing.

19Page

Technical report

Software project management

Project Closeout Phase


The Project Closeout Phase is the last phase in the project lifecycle. Closeout begins when the user accepts the project deliverables and the project oversight authority concludes that the project has met the goals established. The major focus of project closeout is administrative closure and logistics.

Project Closeout Task


Turnover to Operations The most important aspect of project closeout is the physical turnover of control of the Product, good, or service delivered by the project. All project deliverables will need to be Maintained and supported after the project team disbands. An operational unit of the Organization (for which the deliverable is developed) assumes responsibility for the support of the deliverable.

21Page

Technical report

Software project management

Resources:
http://www.stellman-greene.com/aspm/content/view/14/38/ http://en.wikipedia.org/wiki/Project_planning http://www.method123.com/project-planning-phase.php http://www.brighthub.com/office/project-management/articles/1672.aspx http://www.brighthub.com/office/project-management/articles/1673.aspx http://www.techsoup.org/learningcenter/software/page7648.cfm http://www.answers.com/topic/project-management http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci951200,00.html Software Engineering, 7th edition, Chapter 5 Principles of Software Engineering Management http://vig.pearsoned.co.uk/samplechapter/0130219142.pdf http://www.theirm.org/publications/documents/Risk_Management_Standard_030820.pdf http://www.pmforum.org/library/tips/2007/PDFs/LaBrosse-9-07.pdf http://itknowledgeexchange.techtarget.com/quality-assurance/10-skills-to-make-a-perfect/project-manager http://www.csc.liv.ac.uk/~mjw/teaching/soft-eng/lect05.pdf http://devedzic.fon.rs/publications/SEKE-Handbook-2.pdf http://cisas.unipd.it/didactics/STS_school/Software_development/Guide_to_the_SW_proje ct_mangement-0508.pdf http://www.realcomm.com/RC07Placement/Library/Emp/RCPS_job_description_project_manager_1a.pdf http://www.stellman-greene.com/aspm/images/ch03.pdf http://www.cs.utoronto.ca/~sme/CSC444F/slides/L03-ProjectManagement.pdf http://iisit.org/Vol6/IISITv6p723-729Gillard599.pdf http://satc.gsfc.nasa.gov/assure/agbsec3.txt

21Page

Technical report