This page contains slides supporting the book in PDF and HTML format.
(See the bottom of the page for licensing information.)
| Introduction to the Course
Introduction to the course: motivations, goals, and a brief history of project management
| Software Development Projects and Stakeholders
What is a project and how it differs from other types of work.
Projects and their environment: internal and external influences. The project stakeholders.
Distinguishing characteristics of software development projects. Types of software development projects.
| (Traditional) Software Development Activities
Goals and organization of the (technical) activities which are part of any software development. (That is, the building blocks of a software development project.)
A peculiar case: operations and maintenance.
| (Traditional) Software Development Activities – Brief
A short description of the goals and organization of the (technical) activities which are part of any software development.
To be used in alternative to the previous set of slides.
| Project Initiation: Feasibility and Project Authorization
Qualitative and quantitative techniques to assess a project proposal. Choosing what projects are worth and what should not be started.
Techniques for evaluating merits and demerits of alternative implementation plans. Make or buy.
Writing a feasibility study.
| Formalizing the Project Goals
Formalizing the project goals: MoSCoW and SMART objectives.
Writing a project scope document. The project scope document and software requirements.
| Deciding the work to be performed (Work Breakdown Structure)
Moving from goals to activities: the Work Breakdown Structure (WBS).
Types of WBS. WBS decompisition and building styles.
The WBS dictionary.
Moving from the WBS to a scheduled plan.
Effort, duration, and manpower and the relationship among these three values.
Uncertainty in planning.
Estimating duration, effort, and manpower. Program Evaluation and Review Technique (PERT) Expert judgement and reasoning by analogy.
Algorithmic estimation techniques (high level introduction).
| Function Points
Overview of the “Function Points” technique.
Using FP to estimate software development projects. Benefits and limitations.
Overview of the “Constructive Cost Modeling” technique.
Using COCOMO to estimate software development projects. Benefits and limitations.
| Object Points
Overview of the “Object Points” technique.
Using Object Points to estimate software development projects. Benefits and limitations.
| Project Scheduling
Moving from a WBS to a scheduled plan: identifying and managing dependencies.
Critical Path method.
| Optimizing the Plan
Plan optimization techniques: project crashing, fast tracking, and critical chain management.
This set of slides introduces three traditional techniques used to shorten your plan and meet the deadlines in critical situations.
| Cost and Budgeting
Determining the financial needs of a project (costing) and allocating financial resources over time (budgeting).
Cost Element Structures (CES) and the main cost elements of a software development project.
Monitoring and controlling expenditure over time.
Expense authorization procedures.
| Project Execution, Monitoring, and Control
Enough planning! How to make a plan into action: project execution activities.
Kicking activities off and collecting the outputs of work. Traditional and agile techniques.
Project monitoring and control: managing schedule, budget, and quality.
An integrated approach: Earned Value Analysis (EVA).
| Agile Monitoring and Control
How to use earned value analysis in agile projects.
| Project Closing
Closing a project and ensuring a proper transition to new activities.
| Managing Changes
The volatility of requirements and project scope.
The impact of changes in a project. Techniques to manage changes effectively and limit the perturbations introduced by uncontrolled changes.
Keeping a project under scope.
| Risk Managemenent
The volatility of project assumptions.
Defining appropriate strategies to identify, manage, and control risks.
Qualitative (and quantitative) risk management. Some common mistakes we tend to do.
| Quality Management
Managing quality in a project: defining acceptable quality goals and ensuring the goals are met.
Quality assessemnt techniques. Verification and validation, inspection, testing.
The difficulties of testing in software development projects.
| Managing People
The human factor in projects.
Defining staff requirements and setting-up a project team. Managing a team in a project.
Overview of the main theories of work behavior and management techniques. Theory X, X & Y, Maslow’s Hierarchy of Needs, Herzberg’s Hygiene and Motivational Factors, the Hawthorne effect.
Management styles. From autocratic to chaotic, through Blake and Mouton’s managerial grid. Situational leadership.
| Organizational Structures
Organizational structures and their influence on projects. Functional, hierachical, matricial, virtual, and projectized.
Defining an appropriate organizational structure for your project. The influence a project organizational structure exert on a project.
| Managing Communication
You say potato … I understand tomato!
Communication means and styles.
Planning and structuring communication in complex projects.
Meeting and types of meetings. How to try and ensure meetings are really useful and productive. Types of meetings.
| Project Pricing
From costing to pricing. Selling, leasing, licensing. Pricing techniques.
Open software revenue models.
Types of contracts.
Scheduling the payments in a project. The opposing goals of client and supplier. Determining the financial needs for a project over time.
Procurement and outsourcing.
| (Traditional) Software Development Processes
Putting all together: organization of software development projects, both with respect to technical and managerial activities.
Traditional development processes: waterfall and its variants, Rational Unified Process, Open Unified Process, Spiral, Prototype (evolutionary and throw-away), incremental, cleanroom software engineering.
Open-source development models. Mozilla’s organization of software release procedures.
| Agile Software Development
Lean manufacturing and the agile manifesto. Agile software development practices.
Agile software development processes: DSDM, Scrum, XP. Defining and managing speed in Scrum projects.
All the material available on this website, unless explicitly stated otherwise, is © 2014-2016 Adolfo Villafiorita.
The material can be freely consulted, downloaded, and used for non-commercial purposes. If you are using the slides for teaching, you are required to adopt the companion book (“Introduction to Software Project Management” by CRC Press) as the official textbook for your course.
This license does not give you the right to redistribute or to modify the slides (but you can link them from your website, if you attribute the work).
If you are interested in redistributing of modifying the material or if you are just in doubt about what you are allowed or not allowed to do with the material, please contact me.