project management - dovetailing the project with its team · project management dovetailing the...
TRANSCRIPT
Project ManagementDovetailing the Project with its Team
Project ManagementDovetailing the Project with its Team
Mai 18th, 2011
Andreas Cord-LandwehrPeter KlingFriedhelm Meyer auf der HeidePeter Pietrzyk
Project Management Andreas Cord-Landwehr 1
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
A short guide to motivate yourself
Remember “Duke Nukem Forever”
Remember “Toll Collect”
Remember “KDE PIM 4.6”
Remember (maybe) your SWTPra?
. . .
The common slide that everybody uses says:only 1/4 of all IT projects are in a stable state, 1/4 even canceled (data from 2006).
Why Project Management?!Some Examples of how you should not release.
Project Management Andreas Cord-Landwehr 2
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Project Management is the task to. . .
understand the project and part it into doable units of work
organize the work units and make sure that they fit together
achieve the project goals in time and keep track on the progress
while keeping the team together
having an overview on what was/will be/must be done
understanding structures and taking countermeasures in case of problems
Requirements are in different fields
1 take care of the community/team
2 structural work/planning
3 time management
Project-ManagementAt least “my notion” of this term.
Project Management Andreas Cord-Landwehr 3
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Characteristics
1 There is a goal to achieve.
2 It can be achieved in finite time.
3 The resources are limited.
4 We have a unique job that differsto anything that was done before or will be done.
5 The project is so complex that we need to think beforehand.
6 The project is organized/a hierarchy is introduced that is temporary and not necessarilyconnect to any secondary kind of organization.
7 Usually team members have quite different backgrounds
The Project. . . is sometimes a quite ugly beast.
Project Management Andreas Cord-Landwehr 4
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Definition (Community)
[kuh-myoo-ni-tee] – noun, plural -ties.
1 a social group of any size whose members reside in a specific locality, sharegovernment, and often have a common cultural and historical heritage. [. . . ]
3 a social, religious, occupational, or other group sharing common characteristics orinterests and perceived or perceiving itself as distinct in some respect from the largersociety within which it exists (usually preceded by the ): the business community; thecommunity of scholars.
[American Heritage Dictionary]
Examples of Communities
Practical Session: Board-based discussion.
Communities by. . .
Nature family, men, women, children, students, workers
a Goal KDE, Gnome Community, Peace-Movement, Amnesty International
an Assignment an assigned task force, project group, a team, special ops team
The Community. . . is a main argument that rules the outcome.
Project Management Andreas Cord-Landwehr 5
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Definition (Community)
[kuh-myoo-ni-tee] – noun, plural -ties.
1 a social group of any size whose members reside in a specific locality, sharegovernment, and often have a common cultural and historical heritage. [. . . ]
3 a social, religious, occupational, or other group sharing common characteristics orinterests and perceived or perceiving itself as distinct in some respect from the largersociety within which it exists (usually preceded by the ): the business community; thecommunity of scholars.
[American Heritage Dictionary]
Examples of Communities
Communities by. . .
Nature family, men, women, children, students, workers
a Goal KDE, Gnome Community, Peace-Movement, Amnesty International
an Assignment an assigned task force, project group, a team, special ops team
The Community. . . is a main argument that rules the outcome.
Project Management Andreas Cord-Landwehr 5
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Project Team
TasksDeadlines
Long-Term-RunsDecisions
HierarchyTime ManagementCommunity BuildingDiscussions
Pro
ject
Com
munit
y
Project and TeamA life-long relationship.
Project Management Andreas Cord-Landwehr 6
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
1 Team Hierarchy & Project Tasks
2 Decisions & Discussions
3 Working Together & Community Building
4 Deadlines & Progress Management
Outline
Project Management Andreas Cord-Landwehr 7
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Decision Processes in Communities
1 Dictatorial Decisions
2 Decisions by the ONE guy
3 Agreement of the Project Leaders
4 On behalf of the President
5 The Blue Ribbon Commission
6 Control in hands of the Grass-roots
Characteristics
Similar to: Dictatorship
one person has all the power, and somehow he came to this power
decisions are made (in final instance) by only one person
dictator never gives/must give account for his decisions
dictator’s strategy is to push group into direction in which he keeps his power
Team Hierarchy & Project TasksHierarchy of a Group
Project Management Andreas Cord-Landwehr 8
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Decision Processes in Communities
1 Dictatorial Decisions
2 Decisions by the ONE guy
3 Agreement of the Project Leaders
4 On behalf of the President
5 The Blue Ribbon Commission
6 Control in hands of the Grass-roots
Characteristics
Similar to: Monarchy
everybody thinks that one person has all the power
decisions are made (in final instance) by only this single person
usually does not have to give account on what he decides
typically: the guy with the money, the wise guy, some other bizarre rule
Team Hierarchy & Project TasksHierarchy of a Group
Project Management Andreas Cord-Landwehr 8
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Decision Processes in Communities
1 Dictatorial Decisions
2 Decisions by the ONE guy
3 Agreement of the Project Leaders
4 On behalf of the President
5 The Blue Ribbon Commission
6 Control in hands of the Grass-roots
Characteristics
Similar to: Tribunat
power is equally assigned to two persons
decisions are made (in final instance) by agreement of both
tribunes mutually give account for their decisions
tribuns usually assigned by kind of election process
Team Hierarchy & Project TasksHierarchy of a Group
Project Management Andreas Cord-Landwehr 8
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Decision Processes in Communities
1 Dictatorial Decisions
2 Decisions by the ONE guy
3 Agreement of the Project Leaders
4 On behalf of the President
5 The Blue Ribbon Commission
6 Control in hands of the Grass-roots
Characteristics
Similar to: Presidency
one person holds all the power
decisions are made (in final instance) by this person but need to obey rules
must give account for its decisions to team, follow the rules
usually elected in a democratic process
Team Hierarchy & Project TasksHierarchy of a Group
Project Management Andreas Cord-Landwehr 8
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Decision Processes in Communities
1 Dictatorial Decisions
2 Decisions by the ONE guy
3 Agreement of the Project Leaders
4 On behalf of the President
5 The Blue Ribbon Commission
6 Control in hands of the Grass-roots
Characteristics
Similar to: Parliament
committee assigned to solve specific problem/to be responsible for strictly limited field
decisions are made by polls in this committee
the committee as a whole must give account for his decisions
members usually assigned in a democratic process
Team Hierarchy & Project TasksHierarchy of a Group
Project Management Andreas Cord-Landwehr 8
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Decision Processes in Communities
1 Dictatorial Decisions
2 Decisions by the ONE guy
3 Agreement of the Project Leaders
4 On behalf of the President
5 The Blue Ribbon Commission
6 Control in hands of the Grass-roots
Characteristics
Similar to: grass-root democracy ([email protected] during last 5 days)
everybody holds same power
decisions are made by agreement of all/most
nobody/everybody is responsible for everything
no selection necessary, you have power since you are there
Team Hierarchy & Project TasksHierarchy of a Group
Project Management Andreas Cord-Landwehr 8
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Definition (Project Leader)
The Project Leader is the official representative of the Project. They have two mainfunctions, one internal and one external.
In the external function, the Project Leader represents the project to others. Thisinvolves giving talks and presentations about the project and attending trade shows, aswell as building good relationships with other organizations and companies.
Internally, the Project Leader manages the project and defines its vision. They shouldtalk to other developers, especially to the delegates, to see how they can assist theirwork. A main task of the Project Leader therefore involves coordination andcommunication.
[This definition essentially describes the Debian Project Leader.]
Popular Additions/Modifications
twin-leaders
community leader + technical leader
leader supported by a technical committee
Team Hierarchy & Project TasksThe Project Leader
Project Management Andreas Cord-Landwehr 9
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Definition (Project Leader)
The Project Leader is the official representative of the Project. They have two mainfunctions, one internal and one external.
In the external function, the Project Leader represents the project to others. Thisinvolves giving talks and presentations about the project and attending trade shows, aswell as building good relationships with other organizations and companies.
Internally, the Project Leader manages the project and defines its vision. They shouldtalk to other developers, especially to the delegates, to see how they can assist theirwork. A main task of the Project Leader therefore involves coordination andcommunication.
[This definition essentially describes the Debian Project Leader.]
Popular Additions/Modifications
twin-leaders
community leader + technical leader
leader supported by a technical committee
Team Hierarchy & Project TasksThe Project Leader
Project Management Andreas Cord-Landwehr 9
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Project Planning Activities
1 Task Planning (aka parting project into doable units of work)
2 Project Plan (aka how the tasks are related)
3 Capacity Planning (aka what can be done in which time)
4 Cost Planning (aka money)
5 Quality assurance (aka testing, unit-testing, bug-fixing, updating, controlling)
6 Risk planning (aka what do we agree by the target agreement)
How a project is planned (in a community6=company):
the project leader gathers, structures, discusses and compiles the plan together withthe community
community members rate their fields of work and support the project leader
the community as a whole takes care of the overall goal: can it be reached bycombination of the individual tasks?
Team Hierarchy & Project TasksPlanning a Project.
Project Management Andreas Cord-Landwehr 10
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Project Planning Activities
1 Task Planning (aka parting project into doable units of work)
2 Project Plan (aka how the tasks are related)
3 Capacity Planning (aka what can be done in which time)
4 Cost Planning (aka money)
5 Quality assurance (aka testing, unit-testing, bug-fixing, updating, controlling)
6 Risk planning (aka what do we agree by the target agreement)
How a project is planned (in a community6=company):
the project leader gathers, structures, discusses and compiles the plan together withthe community
community members rate their fields of work and support the project leader
the community as a whole takes care of the overall goal: can it be reached bycombination of the individual tasks?
Team Hierarchy & Project TasksPlanning a Project.
Project Management Andreas Cord-Landwehr 10
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Tasks are the building blocks of a project.
Definition (Task)
[. . . ] Task usually refers to a clearly defined piece of work, sometimes of short or limitedduration, assigned to or expected of a person [. . . ].
[American Heritage Dictionary]
Define a task by gathering similar/connected activities, usually orientated with a goal.
Checklist for Definition of a Task (sub-project)
1 Don’t cut it too small, don’t blow it too big.
2 Limit the task and thoroughly describe what has to be done/the expected result.
3 Assign task to a team or a single person, BUT pick one unique person to beresponsible.
4 Let the team create an internal structure.
Soon, tasks will be the basic building blocks for the project plan. Note that tasks are usuallycompilations of several strongly connected small sub-tasks.
Team Hierarchy & Project TasksWork Units of a ProjectDefinition of a Task.
Project Management Andreas Cord-Landwehr 11
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Practical Session: Token-based discussion.
Question: What steps are necessary to make a raisin cake?
Making a Raisin Cake
T1: Recipe google for ‘recipe raisin cake’
T2: Shopping buy 1 cup raisins, 1/2 cup butter, 1 tsp baking soda, 1 cup sugar, 1/2 tspsalt, 1/2 tsp ground cinnamon, 1/2 tsp nutmeg. 1 cup chopped walnuts, 13/4 cups all-purpose flour. . .
T3: Mixing Mix all ingredients.
T4: Setup Preheat oven to 175 degrees C. Lightly grease one 10 x 10 inch bakingpan and put dough in.
T5: Building Bake at 175 degrees C for 35 minutes.
T6: Testing Test if the cake is well done.
T7: Release Eat the cake.
Team Hierarchy & Project TasksExample: Disassembling the ProjectIdentify the individual tasks.
Project Management Andreas Cord-Landwehr 12
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Making a Raisin Cake
T1: Recipe google for ‘recipe raisin cake’
T2: Shopping buy 1 cup raisins, 1/2 cup butter, 1 tsp baking soda, 1 cup sugar, 1/2 tspsalt, 1/2 tsp ground cinnamon, 1/2 tsp nutmeg. 1 cup chopped walnuts, 13/4 cups all-purpose flour. . .
T3: Mixing Mix all ingredients.
T4: Setup Preheat oven to 175 degrees C. Lightly grease one 10 x 10 inch bakingpan and put dough in.
T5: Building Bake at 175 degrees C for 35 minutes.
T6: Testing Test if the cake is well done.
T7: Release Eat the cake.
Team Hierarchy & Project TasksExample: Disassembling the ProjectIdentify the individual tasks.
Project Management Andreas Cord-Landwehr 12
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Project Plan represents the internal structure of a project.
Project Plan
Goal: establish common understanding of the project
How it is designed:
contains every task that should be done
gives time estimates
draws dependencies
names responsibilities (team leaders!)
estimate how critical the task is
T2: Shopping10 min
Alice
T3: Mixing5 min
Bob
T4: Setup10 min
Bob
T6: Testing2 min
Alice
T7: Release10 min
Bob
T1: Recipe10 min
Alice
T5: Building35 min
Bob
OPTIONALDuring the project its progress/bottle necks can beidentified with help of the plan. This plan is a coreresponsibility of the project leader.
Team Hierarchy & Project TasksThe Project (Structure) PlanConnect the Tasks as a Project Plan.
Project Management Andreas Cord-Landwehr 13
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
1 Team Hierarchy & Project Tasks
2 Decisions & Discussions
3 Working Together & Community Building
4 Deadlines & Progress Management
Decisions & DiscussionsHere we are.
Project Management Andreas Cord-Landwehr 14
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Meetings are building blocks for project decisions and exchange of information.However, they sometimes tend rather to be lost time.
7 Tips to organize a not completely useless meeting:
1 Send the invitation at least 48 hours in advance.
2 Include a full list of topics that shall be discussed.
3 Organize an appropriate room and announce it with the invitation.
4 Assign someone for protocol writing and someone for leading discussions.
5 If materials are needed for discussion, distribute them at latest with invitation.
6 Take care that everybody who is important for the meeting attends.
7 For each topic make clear what with which possible outcomes has to be discussed in acertain way until a (possibly) specific deadline.
Decisions & DiscussionsWell, lunch is over, what about a Meeting?DOs and DON’Ts for Meetings.
Project Management Andreas Cord-Landwehr 15
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Headless Chicken Discussion
This is a discussion where a decision is required butnobody makes it. That can be the case either whenthere are two equally good alternatives or if nobody hasthe or grips to the power to make a specific decision.Observation: arguments are looping and looping andlooping. . . And the discussion never comes to an end.
Possible Solutions
in each group there is somebody with a natural authority
even if this guy is not aware of its authority, you can poke him
if there are two (nearly) equally good alternatives: ask supporter for A to prepare theirsolution, ask supporter for B the same. Probably only one team will present thesolution the next meeting time.
Decisions & DiscussionsMaking Decisions 1/2Beware of the Headless-Chicken.
Project Management Andreas Cord-Landwehr 16
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Headless Chicken Discussion
This is a discussion where a decision is required butnobody makes it. That can be the case either whenthere are two equally good alternatives or if nobody hasthe or grips to the power to make a specific decision.Observation: arguments are looping and looping andlooping. . . And the discussion never comes to an end.
Possible Solutions
in each group there is somebody with a natural authority
even if this guy is not aware of its authority, you can poke him
if there are two (nearly) equally good alternatives: ask supporter for A to prepare theirsolution, ask supporter for B the same. Probably only one team will present thesolution the next meeting time.
Decisions & DiscussionsMaking Decisions 1/2Beware of the Headless-Chicken.
Project Management Andreas Cord-Landwehr 16
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Bikeshed Discussion
A Bikeshed discussion often comes along with aheadless-chicken discussion. This is a discussionwhere some absolute low-level but completely unimpor-tant topic is picked out of a complex decision process.This is like discussing the kind of screws for a bikeshedwhen you are actually discussion the cost plan for a nu-clear power plant.
Possible SolutionsA bikeshed discussion usually can only be ended after it is discovered: Recognize it! Thenask the “why”-question.
Decisions & DiscussionsMaking Decisions 2/2Beware of Bikeshed-Discussions.
Project Management Andreas Cord-Landwehr 17
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Bikeshed Discussion
A Bikeshed discussion often comes along with aheadless-chicken discussion. This is a discussionwhere some absolute low-level but completely unimpor-tant topic is picked out of a complex decision process.This is like discussing the kind of screws for a bikeshedwhen you are actually discussion the cost plan for a nu-clear power plant.
Possible SolutionsA bikeshed discussion usually can only be ended after it is discovered: Recognize it! Thenask the “why”-question.
Decisions & DiscussionsMaking Decisions 2/2Beware of Bikeshed-Discussions.
Project Management Andreas Cord-Landwehr 17
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Water-Cooler
Members of a big group are meeting somewhere(maybe even accidentally). They talk about there cur-rent joint work, have an idea, discuss and decide thatthis is a good idea. Everybody goes back to work andimplements this idea.—However, the rest of the groupnever gets clue of this meeting, the arguments or eventhe discussion. It is even to late for counter-arguments.
Possible Solutions
at best: no spontaneous decisions
but if, let others join the decision (even if only withsmall time frames)
in any case, every discussion must be brought to the total group (e.g., be establishedand clear communication strategies)
Decisions & DiscussionsDiscussing TasksBeware of the Water-Cooler
Project Management Andreas Cord-Landwehr 18
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Water-Cooler
Members of a big group are meeting somewhere(maybe even accidentally). They talk about there cur-rent joint work, have an idea, discuss and decide thatthis is a good idea. Everybody goes back to work andimplements this idea.—However, the rest of the groupnever gets clue of this meeting, the arguments or eventhe discussion. It is even to late for counter-arguments.
Possible Solutions
at best: no spontaneous decisions
but if, let others join the decision (even if only withsmall time frames)
in any case, every discussion must be brought to the total group (e.g., be establishedand clear communication strategies)
Decisions & DiscussionsDiscussing TasksBeware of the Water-Cooler
Project Management Andreas Cord-Landwehr 18
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
1 Team Hierarchy & Project Tasks
2 Decisions & Discussions
3 Working Together & Community Building
4 Deadlines & Progress Management
Working Together & Community BuildingHere we are.
Project Management Andreas Cord-Landwehr 19
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
References:doxygen.orgcode.google.com/p/google-styleguidetechbase.kde.org/Policies/Kdelibs_Coding_Stylewiki.eclipse.org/Coding_Conventions
Avoid Common Pitfalls
Establish Coding Guidelines at earliest possiblepoint in time! (naming, indents, filenames,. . . )
Discuss how Commits must look like.
House-Keeping: Assign roles for taking care ofagreed rules.
Constitute Freezes and make everybody to obay.(feature freeze, soft freeze, hard freeze)
Establish a Bug Tracker (and use it).
Transparency on who takes which task and howthe progress is.
Establish Reviews.
Working Together & Community BuildingWorking Together at Source Code.
Project Management Andreas Cord-Landwehr 20
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Example Tools:GIT, SVN
References:techbase.kde.org/Policies/SVN_Commit_Policygit.kernel.orgsubversion.tigris.org
Avoid Common Pitfalls
Establish Coding Guidelines at earliest possiblepoint in time! (naming, indents, filenames,. . . )
Discuss how Commits must look like.
House-Keeping: Assign roles for taking care ofagreed rules.
Constitute Freezes and make everybody to obay.(feature freeze, soft freeze, hard freeze)
Establish a Bug Tracker (and use it).
Transparency on who takes which task and howthe progress is.
Establish Reviews.
Working Together & Community BuildingWorking Together at Source Code.
Project Management Andreas Cord-Landwehr 20
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Avoid Common Pitfalls
Establish Coding Guidelines at earliest possiblepoint in time! (naming, indents, filenames,. . . )
Discuss how Commits must look like.
House-Keeping: Assign roles for taking care ofagreed rules.
Constitute Freezes and make everybody to obay.(feature freeze, soft freeze, hard freeze)
Establish a Bug Tracker (and use it).
Transparency on who takes which task and howthe progress is.
Establish Reviews.
Working Together & Community BuildingWorking Together at Source Code.
Project Management Andreas Cord-Landwehr 20
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Freezes before Ubuntu Lucid Release
Avoid Common Pitfalls
Establish Coding Guidelines at earliest possiblepoint in time! (naming, indents, filenames,. . . )
Discuss how Commits must look like.
House-Keeping: Assign roles for taking care ofagreed rules.
Constitute Freezes and make everybody to obay.(feature freeze, soft freeze, hard freeze)
Establish a Bug Tracker (and use it).
Transparency on who takes which task and howthe progress is.
Establish Reviews.
Working Together & Community BuildingWorking Together at Source Code.
Project Management Andreas Cord-Landwehr 20
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Debian Release Critical Bugs (a release plan)
Example Tools:Redmine, bugzilla, Trac
References:www.redmine.org/www.bugzilla.org/trac.edgewall.org/
Avoid Common Pitfalls
Establish Coding Guidelines at earliest possiblepoint in time! (naming, indents, filenames,. . . )
Discuss how Commits must look like.
House-Keeping: Assign roles for taking care ofagreed rules.
Constitute Freezes and make everybody to obay.(feature freeze, soft freeze, hard freeze)
Establish a Bug Tracker (and use it).
Transparency on who takes which task and howthe progress is.
Establish Reviews.
Working Together & Community BuildingWorking Together at Source Code.
Project Management Andreas Cord-Landwehr 20
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Digest of Planned Features KDE SC 4.7
Avoid Common Pitfalls
Establish Coding Guidelines at earliest possiblepoint in time! (naming, indents, filenames,. . . )
Discuss how Commits must look like.
House-Keeping: Assign roles for taking care ofagreed rules.
Constitute Freezes and make everybody to obay.(feature freeze, soft freeze, hard freeze)
Establish a Bug Tracker (and use it).
Transparency on who takes which task and howthe progress is.
Establish Reviews.
Working Together & Community BuildingWorking Together at Source Code.
Project Management Andreas Cord-Landwehr 20
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Avoid Common Pitfalls
Establish Coding Guidelines at earliest possiblepoint in time! (naming, indents, filenames,. . . )
Discuss how Commits must look like.
House-Keeping: Assign roles for taking care ofagreed rules.
Constitute Freezes and make everybody to obay.(feature freeze, soft freeze, hard freeze)
Establish a Bug Tracker (and use it).
Transparency on who takes which task and howthe progress is.
Establish Reviews.
Working Together & Community BuildingWorking Together at Source Code.
Project Management Andreas Cord-Landwehr 20
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Writing documents is quite similar to writing source code.Only the Commit-diffs are uglier ;-)
Similar Pitfalls
Language Guidelines
Commits
House-Keeper tasks
Roadmap
Also a Bugtracker?
Transparency
Reviews
Working Together & Community BuildingWorking Together at Documents.
Project Management Andreas Cord-Landwehr 21
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Falling Down Guy
Motivated by the blockbuster “Falling Down” withMichael Douglas. A white office-worker gets into trou-ble at his way to work. He helps himself, gets again introuble and this iterates. At the end he thinks that hedid everything right though actually he became the badguy of the movie.A common observation in groups is that there are guyslooking after others. If there are mistakes, they say so.(Sometimes in a slightly impolite way.) However, withtime the become the guys in the community “who arealways only complaining”.
Possible Solutions
do not be the falling down guy ;-)
Working Together & Community BuildingDo not Become the Bad Guy.
Project Management Andreas Cord-Landwehr 22
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Falling Down Guy
Motivated by the blockbuster “Falling Down” withMichael Douglas. A white office-worker gets into trou-ble at his way to work. He helps himself, gets again introuble and this iterates. At the end he thinks that hedid everything right though actually he became the badguy of the movie.A common observation in groups is that there are guyslooking after others. If there are mistakes, they say so.(Sometimes in a slightly impolite way.) However, withtime the become the guys in the community “who arealways only complaining”.
Possible Solutions
do not be the falling down guy ;-)
Working Together & Community BuildingDo not Become the Bad Guy.
Project Management Andreas Cord-Landwehr 22
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Broken Window
In New York of the 90s, criminality was high and thecity was coming down. Giuliani, the city’s major, es-tablished the zero-tolerance policy: he dramatically in-creased number of cops and took care to have a cleantown. The motivation behind is: it is mentally easier tosmash a window if others are already broken than tothrow the first stone at. Analogue, you can look at cod-ing guidelines, wikis, mailing lists,. . .
Possible Solutions
everybody must see his responsibility to never left a “broken window”
everybody must notice unfinished tasks and feel responsible to finish them
Working Together & Community BuildingBeware of the Broken Window.
Project Management Andreas Cord-Landwehr 23
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Broken Window
In New York of the 90s, criminality was high and thecity was coming down. Giuliani, the city’s major, es-tablished the zero-tolerance policy: he dramatically in-creased number of cops and took care to have a cleantown. The motivation behind is: it is mentally easier tosmash a window if others are already broken than tothrow the first stone at. Analogue, you can look at cod-ing guidelines, wikis, mailing lists,. . .
Possible Solutions
everybody must see his responsibility to never left a “broken window”
everybody must notice unfinished tasks and feel responsible to finish them
Working Together & Community BuildingBeware of the Broken Window.
Project Management Andreas Cord-Landwehr 23
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
1 Team Hierarchy & Project Tasks
2 Decisions & Discussions
3 Working Together & Community Building
4 Deadlines & Progress Management
Deadlines & Progress ManagementHere we are.
Project Management Andreas Cord-Landwehr 24
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The roadmap is a series of project milestones, (eventually) equipped with specific dates.
Definition (Milestone)
A Milestone clearly defines a specific verifiable state of a task or a set of tasks. It can beconnected to a date but its meaning is given by the project state and not the due date.(formally this is a cut of the project structure plan/DAG)
Roadmap
its elements are milestones that are ordered bytheir due dates
is mapping between the aimed state ofactivities/tasks and concrete dates
establishes synchronization points betweenseveral tasks
its basis are time estimations from project plan
Deadlines & Progress ManagementThe Roadmap
Project Management Andreas Cord-Landwehr 25
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The roadmap is a series of project milestones, (eventually) equipped with specific dates.
Definition (Milestone)
A Milestone clearly defines a specific verifiable state of a task or a set of tasks. It can beconnected to a date but its meaning is given by the project state and not the due date.(formally this is a cut of the project structure plan/DAG)
Roadmap
its elements are milestones that are ordered bytheir due dates
is mapping between the aimed state ofactivities/tasks and concrete dates
establishes synchronization points betweenseveral tasks
its basis are time estimations from project plan
Deadlines & Progress ManagementThe Roadmap
Project Management Andreas Cord-Landwehr 25
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
If you want to keep track on the progress of tasks you need
to track work that has to be done,
work that was done,
and decide how this ratio influence your future plans.
Estimating Progress
progress should be estimated for each taskyou can estimate by
percentagestate (e.g., planning, implementing, testing, release)by bugsby number of finished/unfinished sub-tasks
can be combined with project plan or be a plan of its own
Deadlines & Progress ManagementSynchronization of Task Progress
Project Management Andreas Cord-Landwehr 26
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Cookie-Licker
Idea: Alice and Bob want to have the last cookie, butAlice is already full. So, in front of Bob she licks overthe cookie and puts the cookie back. Now she is surethat Bob will not eat it and the cookie will be there forhere when she comes back later.In a community: there are guys that want to do nearlyeverything. They every free task but actually they graspthat many tasks that they do no succeed doing they all.So they miss deadline after deadline but as they occupythe task, nobody can step in and finish this task.
Possible Solutions
Assign each task with a deadline.
Make it “ok” and tolerate it if somebody says: I took too much tasks and cannot afforddoing them all.
Encourage team-members to say so if the cannot afford finishing their tasks.
Deadlines & Progress ManagementBeware of the Cookie-Licker.
Project Management Andreas Cord-Landwehr 27
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
The Cookie-Licker
Idea: Alice and Bob want to have the last cookie, butAlice is already full. So, in front of Bob she licks overthe cookie and puts the cookie back. Now she is surethat Bob will not eat it and the cookie will be there forhere when she comes back later.In a community: there are guys that want to do nearlyeverything. They every free task but actually they graspthat many tasks that they do no succeed doing they all.So they miss deadline after deadline but as they occupythe task, nobody can step in and finish this task.
Possible Solutions
Assign each task with a deadline.
Make it “ok” and tolerate it if somebody says: I took too much tasks and cannot afforddoing them all.
Encourage team-members to say so if the cannot afford finishing their tasks.
Deadlines & Progress ManagementBeware of the Cookie-Licker.
Project Management Andreas Cord-Landwehr 27
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
A sprint is a time-boxed period of software development focused on a given list of goals.
Common goals for a sprint
community building
architectural discussions
project goals and roadmaps
features prototypes and bug squashing
Deadlines & Progress ManagementLet’s make a sprint!
Project Management Andreas Cord-Landwehr 28
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
April 28 Soft Feature FreezeMay 12 Soft Message Freeze, Soft API Freeze, Dependency Freeze, Hard Feature
FreezeMay 19 Beta 1 TaggingMay 25 Beta 1 ReleaseMay 30 Documentation FreezeJune 2 Beta 2 TaggingJune 8 Beta 2 Release
June 20 Tagging Freeze for Release Candidate 1June 20 Hard API Freeze, Hard Message Freeze, Artwork and Bindings FreezeJune 21 Release Candidate 1 TaggingJune 22 Release Candidate 1 Release
July 4 Tagging Freeze for Release Candidate 2July 5 Release Candidate 2 TaggingJuly 6 Release Candidate 2 Release
July 20 Final TagJuly 27 KDE 4.7 Release
Deadlines & Progress ManagementProject Planning, an ExampleThe KDE Release Cycle
Project Management Andreas Cord-Landwehr 29
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Quality Assurance
progress estimation and discussion
responsibilities (team leaders!)
reviews (peer, leader)
unit tests
unit dependencies, identifying critical components
establish clear time frames for bug-fixing, releasing, . . .
Note that these are only buzzwords. Your own quality assurance policy can only besuccessful if you take the important parts and establish your own policy.
Deadlines & Progress ManagementQuality Assurance
Project Management Andreas Cord-Landwehr 30
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
1 Team Hierarchy & Project Tasks
2 Decisions & Discussions
3 Working Together & Community Building
4 Deadlines & Progress Management
Deadlines & Progress ManagementSummary
Project Management Andreas Cord-Landwehr 31
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity
Thank you for your attention!Thank you for your attention!
Andreas Cord-LandwehrHeinz Nixdorf Institute& Department of Computer ScienceUniversity of Paderborn
Address: Fürstenallee 1133102 PaderbornGermany
Phone: +49 5251 60-6427Fax: +49 5251 60-6482E-mail: [email protected]: http://wwwhni.upb.de/en/alg/
Project Management Andreas Cord-Landwehr 32
HEINZ NIXDORF INSTITUTEUniversity of Paderborn
Algorithms and Complexity