1st Edition

Introduction to Software Project Management

By Adolfo Villafiorita Copyright 2014
    296 Pages 63 B/W Illustrations
    by Auerbach Publications

    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.

    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

    Biography

    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.