Introduction to Software Project Management (Hardback) book cover

Introduction to Software Project Management

By Adolfo Villafiorita

Auerbach Publications

296 pages | 63 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9781466559530
pub: 2014-02-25
$105.00
x
eBook (VitalSource) : 9781498759731
pub: 2015-09-15
from $28.98


FREE Standard Shipping!

Description

Although software development is one of the most complex activities carried out by man, sound development processes and proper project management can help ensure your software projects are delivered on time and under budget. Providing the know-how to manage software projects effectively, Introduction to Software Project Management supplies an accessible introduction to software project management.

The book begins with an overview of the fundamental techniques of project management and the technical aspects of software development. This section supplies the understanding of the techniques required to mitigate uncertainty in projects and better control the complexity of software development projects. The second part illustrates the technical activities of software development in a coherent process—describing how to customize this process to fit a wide range of software development scenarios.

  • Examines project management frameworks and software development standards, including ESA and NASA guidelines, PRINCE2®, and PMBOK®
  • Addresses open source development practices and tools so readers can adopt best practices and get started with tools that are available for free
  • Explains how to tailor the development process to different kinds of products and formalities, including the development of web applications
  • Includes access to additional material for both practitioners and teachers at www.spmbook.com

Supplying an analysis of existing development and management frameworks, the book describes how to set up an open-source tool infrastructure to manage projects. Since practitioners must be able to mix traditional and agile techniques effectively, the book covers both and explains how to use traditional techniques for planning and developing software components alongside agile methodologies. It does so in a manner that will help you to foster freedom and creativity in assembling the processes that will best serve your needs.

Table of Contents

Introduction

What is a Project

Projects and Operational Work

Programs, Subprojects, and Portfolios

Programs

Subprojects

Portfolios

What is a Software Project

Application Development

Process and Systems Reengineering Services

System Integration Services

Other Types of Projects

Managing Projects

The Project Manager and the Project Stakeholder

Project Stakeholders

Code of Conducts and Ethical Aspects

Software Project Management

Goals and Organization of the Book

Further References

Questions and Topics for Discussion

References

The Basics: Software Development Activities and Their Organization

Software Requirements Definition

Requirements Elicitation

Requirements Structuring

User Experience Design

Requirements Validation

Business Modeling

Mapping the Organizational Structure

Modeling the Business Processes

Mapping the Existing IT Infrastructure

Mapping Business Entities

Design and Implementation

System Design

Implementation

Verification and Validation

Testing

Organizing Testing Activities

Test Plan Definition

Test Execution and Reporting

Deployment

Operations and Maintenance

Supporting and Monitoring Operations

Maintenance

Organizing Support and Maintenance Activities

Questions and Topics for Discussion

References

Making IT Right: Managing Goals, Time, and Costs

Before You Start: Assessing Value and Risks

Project Value: Aspects to Consider

Project Risks: Aspects to Consider

Techniques to Assess Value and Risks

Financial Methods

Score Matrices

SWOT Analysis

Stakeholder Analysis

Assessing Sustainability

A Recap of Project Selection Techniques

The Project Feasibility Document

Formalizing the Project Goals

Project Goals and Requirements

Project Assumptions and Constraints

Project Outputs and Control Points

Project Roster

Deciding the Work

Building a WBS

WBS Decomposition Styles

WBS Dictionary

WBS Construction Methodologies

Estimating

Effort, Duration, and Resources

The "Quick" Approach to Estimation

The Uncertainty of Estimations

PERT

Algorithmic Techniques

Function Points

COCOMO

Web Objects

Effort and Project Phases

Scheduling a Plan

Identify Dependencies among Activities

Type of Dependencies

Lead and Lag Time

Network Graphs

Identify the Critical Path

Allocate and Level Resources

Qualifying the Resources Needed for a Task

Specifying Resource Availability

Allocating Resources to a Plan

The Gantt Chart

Optimizing a Plan

Renegotiating Goals and Deadlines

Phase the Project

Project Crashing

Fast Tracking

Critical Chain Management

Budgeting and Accounting

Project Costs

Cost Element Structures

Determining the Project Costs

Managing Project Costs

Project Execution

Kicking Activities Off

Collect the Output of Activities

Collect Information about the Project Status

The Project Routine in Agile Methods

Project Monitoring and Control

Bookkeeping Your Plan: Actual Start and End Dates

Monitoring Time and Work

Monitoring Costs

An Integrated Approach: Earned Value Analysis

Planned Value

Actual Costs

Earned Value

Assessing a Plan Health Using Earned Value Analysis

Some Considerations about Earned Value Analysis

Monitoring Progress, the Agile Way

Agile-Earned Value Analysis

Project Closing

Getting Client Acceptance

Installing Project Deliverables

Archiving Old Deliverables

Documenting the Project

Performing a Financial Closure

Post-Implementation Audit

Staff-Releasing

An Example

Initiating

Building a Plan

Creating a Budget for the Project

Changing the Plan to Meet External Deadlines

Changing the Project Approach

Reducing or Changing the Project Scope

Allocating Resources More Efficiently

Fast Tracking the Plan

Questions and Topics for Discussion

References

Making IT Better: Managing Changes, Risks, and Quality

Managing Changes

Managing Changes in the Traditional Approach

Managing Changes in the Agile Methods

Configuration Management

Configuration Management Goals and Practices

Versioning Systems and Software Evolution Models

Risk Management

Define Standards

Identify Risks

Some Common Risks in Software Development

Classify Risks

Risk Management Strategies

Budgeting for Risks

Risk Monitoring and Control

Review and Share

Revise and Iterate

Quality Management

Quality Planning

Quality Assurance

Quality Control

Establishing a Metrics Program

Size Metrics

Complexity Metrics

Quality Metrics

Questions and Topics for Discussion

References

Making IT Perfect: Managing People and Organizing Communication

Managing People

Define Staff Requirements

Selecting Internal Staff

Selecting External Staff

Managing Staff

Management Styles

Project Organization Structures

Hierarchical

Matricial Organizations

RACI Matrix

Agile Teams

Managing Communication

Planning a Communication Strategy

Communication Styles

Meetings

Managing Meetings

Types of Meetings

Delphi

Planning Poker

Questions and Topics for Discussion

References

Software Project Pricing

From Cost to Pricing

Software Pricing

Software Pricing Models

Selling and Licensing Software

Open Source Software

Project Pricing Strategies

Determining the Project Price

Contractual Agreements

Contractual Agreements and Project Budget

Procurement and Outsourcing

Vendor Solicitation

Procurement Timing Activities

An Example

Questions and Topics for Discussion

References

Managing Software Development Projects

Project Life Cycles

From Traditional to Agile

The Waterfall

The V-Model

The Rational Unified Process

The Spiral

Prototyping/Evolutionary

Cleanroom Software Engineering

Agile Methodologies

Extreme Programming

Dynamic System Development Method

Scrum

Kanban

Open Source Development Practices

Open Source Development Challenges

An Open Source Development Process

Open Source Project Steering

Open Source Development

Open Source Releases

Questions and Topics for Discussion

References

Development and Management Standards

Microsoft Solutions Framework

Foundational Principles

Team Model

Process Model

Disciplines

PMBOK Guide

Knowledge Areas

Process Groups

Processes

PMBOK Guide for Software Development

NASA Practices

NASA System Engineering Practices

NASA Software Management Process Requirements

NASA Software Development Practices

PRINCE2

PRINCE2 Process Model

Starting a Project

Initiating a Project

Directing a Project

Controlling a Stage

Managing Product Delivery

Managing Stage Boundaries

Closing a Project

Planning

PRINCE2 Components

Business Case

Organization

Plans

Control

Change Control

Capability Maturity Model Integration

Questions and Topics for Discussion

References

Open Source Tools for Managing Projects

Project Information Flow

Basic Infrastructure

Basic + Infrastructure

Collaborative Document Writing

Management Infrastructure

References

Index

About the Author

Adolfo Villafiorita PhD, is a senior researcher at Fondazione Bruno Kessler where he leads the ICT4G unit, whose mission is the use of ICT to foster social and economic development. With long experience in the area of formal verification, he has led various technology transfer and development projects in the national and international context. He is a contract professor at the University of Trento, where he teaches software project management.

Subject Categories

BISAC Subject Codes/Headings:
BUS087000
BUSINESS & ECONOMICS / Production & Operations Management
BUS101000
BUSINESS & ECONOMICS / Project Management
COM051230
COMPUTERS / Software Development & Engineering / General