Project Management Concepts
by Ronni Kahalani, Copenhagen School of Design & Technology.
With inspiration from the book Software Engineering - A Practitioner's Approach.
Project management involves the planning, monitoring,
and control of people, process, and events,
from a preliminary concept to full operational deployment.
Who am I?
Thank you for stopping by.
I’m Ronni. I hope you’re well and wish you a safe and worthy journey.
This presentation is part of the Software Engineering Series, from my lectures at Copenhagen School of Design & Technology.
You can view the Introducing Myself, if you want to know a little more about who I am.
All my presentations and materials are free and available at my blog post: Software Engineering.
Don’t let me uphold you,
continue your journey, go to next slide.
2
Agenda
Intro
Management techniques required to plan, organize, monitor, and control software projects.
Intro
“I've visited dozens of commercial shops, both good and bad, and I've observed scores of IT managers, again, both good and bad.
Too often, I've watched in horror as these managers futilely struggled through nightmarish projects, Squirmed under impossible deadlines, or delivered systems that outraged their users and went on to devour huge chunks of maintenance time. “
- by Meiler Page-Jones
If a postmortem were to be conducted for every project, it is very likely that a consistent theme would be encountered:
Project management was weak.
Quick Look
Quick Look
The Management Spectrum
Effective software project management focuses on the 4Ps.
The Management Spectrum
Effective software project management focuses on the 4Ps:
The People
“People factor" is so important that the Software Engineering Institute has developed a People-CMM (People Capability Maturity Model).
“Every organization needs to continually improve its ability to attract, develop, motivate, organize, and retain the workforce needed to accomplish its strategic business objectives“
People-CMM is a companion to the Software Capability Maturity Model-Integration. (ed.8 - ch.37 / ed.9 - ch.28) that guides organizations in the creation of a mature software process.
The People
Defines the following key practice areas for software people:
The Product
Before a project can be planned:
Why?
The Product
In many cases, 1st step in software requirements engineering.
You and other stakeholders must meet to define product objectives and scope.
The Process
A small number of framework activities are applicable to all software projects, regardless of their size or complexity.
Adapted to the characteristics of the software project and the requirements of the project team:
Umbrella activities-such as software quality assurance, software configuration management, and measurement�- overlay the process model.
The Project
Conduct planned and controlled software projects for one primary reason…Why?
- It is the only known way to manage complexity!
And yet, software teams still struggle ☹
- Study 250 large software projects between 1998 – 2004, � (ed.8 – p.686 / ed.9 – p.492)
People
Managers argue that people are primary, but their actions sometimes belie their words.
The Stakeholders
The software process/project is populated by stakeholders who can be categorized into 1 of 5 constituencies:
Project team must be organized in a way that maximizes each person's skills and abilities.
- And that's the job of the team leader.
Team Leaders
Jerry Weinberg suggests an MOI model of leadership:
Another view of the characteristics that define an effective project manager emphasizes 4 key traits:
The Software Team
There are almost as many human organizational structures for software development as there are organizations that develop software.
“Best“ team structure depends on:
The Software Team
Mantei describes 7 project factors that should be considered when planning the structure of software engineering teams:
The Software Team
Constantine suggests 4 "organizational paradigms“ for software engineering teams:
The Software Team
“Jelled team” - by DeMarco and Lister from the book “Peopleware”
What’s that? (ed.9 – p.494)
They share a common goal, a common culture, and in many cases, a "sense of eliteness" that makes them unique.
They've got momentum!
The Software Team
Not all teams jell, many teams suffer from "team toxicity.“� – by Jackman
She defines 5 factors that "foster a potentially toxic team environment“:
The Software Team
In addition to the 5 toxins…
The Software Team
In addition to the 5 toxins…
It is important to note that recognition of human differences is�the first step toward creating teams that jell.
Agile Teams
To review, the agile philosophy encourages:
However, the agile philosophy stresses individual competency coupled with group collaboration as critical success factors for the team.
Agile Teams
- by Cockburn and Highsmith:
Agile Teams
Agile teams are self-organizing.
An agile team might conduct daily team meetings to coordinate and synchronize the work that must be accomplished for that day.
Coordination and Communication Issues
There are many reasons that software projects get into trouble
- facts of life…
Deal with them effectively, establish effective methods for coordinating:
See “Safe Home” (ed.8 – p.693 / ed.9 – p.496)
The Product
The dilemma at the very beginning of a software project.
The Product
A software project manager is confronted with a dilemma at the very beginning of a software project.
At a minimum, the scope of the product�must be established and bounded.
Software Scope
The first software project management activity is the determination of software scope.
Answer following questions:
Must be:
Problem Decomposition
Sometimes called partitioning or problem elaboration.
During the scoping activity no attempt is made to fully decompose the problem.
Human beings tend to apply a divide-and-conquer strategy when they are confronted with a complex problem.
The strategy that applies as project planning begins.
The Process
The team decides which process model to use.
The Process
The team decides which process model is most appropriate for:
The team defines a preliminary project plan based on the set of process framework activities.
Once the preliminary plan is established, process decomposition begins.
Melding the Product and the Process
Assume that the organization has adopted the generic framework activities:
The team members who work on a product function will apply each of the framework activities to it.
A matrix is created.
Melding the Product and the Process
Each major product function (word -processing software) is listed in the left-hand column.
Framework activities are listed in the top row
Melding the Product and the Process
The Project
Understand what can go wrong so that problems can be avoided.
The Project
Understand what can go wrong so that problems can be avoided
The Project
Jaded industry professionals often refer to the "90-90 rule“.
But enough negativity!
How does a manager act to avoid the problems just noted?
The Project
Reel suggests a 5-part common sense approach to software projects:
The W5hh Principle
Series of questions that lead to a definition of key project characteristics and the resultant project plan.
The W5hh Principle
Barry Boehm states: "You need an organizing principle that scales down to provide simple project plans for simple projects.“
Suggests an approach that addresses:
Applicable regardless of the size or complexity
The W5hh Principle
Series of questions that lead to a definition of key project characteristics and the resultant project plan:
Applicable regardless of the size or complexity
Critical Practices
The Airlie Council has developed a list of�“critical software practices for performance-based management."
Critical practices include:
Each of these critical practices is addressed throughout Part 4.
Summary
Software project management is an umbrella activity within software engineering.
Summary
The project management activity encompasses:
The pivotal element in all software projects is people.
Questions?
Anything? What’s on your mind? Come on ask me anything…
Feedback?
Thank you for your precious time.
I hope it was worth it and would love to get your feedback.