Upload
andres-maneiro
View
6.433
Download
4
Embed Size (px)
Citation preview
Project coordination tools
José Dapena Paz <[email protected]>
Contents
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Project coordination requirements
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Project coordination requirements
● Communication among collaborators.– Fast communication (IRC, mi)
– More formal (email, mailing lists)
● Manage project information/documentation, to be shared among the collaborators.– Software manuals
– Project documentation (rules of the project, reference info, etc)
– Code doc
Project coordination requirements (2)
● Plan tasks and assign them to people– Define requirements
– Plan tasks to fulfil requirements
– Assign them to people
● Provide a common repository for project source code– Many people working on the same project
– Tools to provide different branches, tagging, releasing.
Team communication
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Team communication
We've got people. Now make them work as a community.
Communication problems of a free software community: distance, non-shared timetable, different cultures, ...
But then we've got... Internet.
Team communication
● Internet solutions:– Mailing lists for asynchronous communication.
Formal discussions, communications, etc. Mails themselves act as documentation about the project.
– IM for fast, peer to peer communication. Ask doubts, take fast decissions, etc.
– Chats for “all people” reading discussions. Better if all the team read even peer to peer discussions.
Team communication
● Effects of improving communication– Feel as a group.
– Reduce conflicts caused by individual decissions.
– Bring democracy to the project. Try to consider all opinions available.
● Take care of:– Flamewars.
– Establish rules and solve soon conflicts. Politeness.
– Treat all members as equals.
Team communication
But this is not enough.
A really big improvement comes with getting all the team in the same physical place (hackfests, conferences, etc).
Team communication
● Conferences/meetings/hackfests:– At least one event per year (more is better).
– Use this for discussions, learning, shared knowledge.
– But also for “making a team”. Make it be a social event,not only work. A good, amusing, emotive shared experience will do far more than the best speech.
Team communication
● Two developer profiles:– Volunteers
– Professional contribution
● Main difference:– Professionals can do tasks with a schedule
– Volunteers shouldn't be considered for schedules. All their effort sum, but we cannot forecast too much the effect.
Twiki + XP Tracker
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Twiki + XP Tracker
We need a common place for information about a project.
This place is where all the team will get and put the project information: decissions, design, requirements, incidences, etc.
A wiki provides a place like this.
Twiki + XP Tracker
● Ad hoc documentation:– Put there not only format docs, but also any other
thought or discussion.
– BUT maintain a rational structure of contents in wiki. At least the main contents should be easy to find. But also a good structure maintains itself structured.
● Encourage people to write about their work and tasks.
● Key concept: all team can participate in any information of the project.
Twiki + XP Tracker
● XP Tracker: tool integrated in Twiki that let you do and track project tasks.
● It's XP (eXtreme Programming) oriented.
XP Tracker
● We've got these entities:– Projects: any big entity of work. It doesn't have to
be a free software project, but also a contract, etc.
– Teams: group of people that share the schedule for a project (examples: translation team, test team, developers, etc).
– Iterations: set of stories to be done by a team in a timeframe.
– Stories: a specific set of goals, that can be done finishing tasks.
– Tasks.
XP Tracker
● Schedule is mainly oriented to professional contributors.
● Iterations should be short. Schedule often, as requirements change.
● Document all the work process in the wiki, both in the stories and in general documentation nodes.
Planning tools
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Planning
● You've got limited resources. A good plan should optimize them to fulfill the tasks of the project as soon as posible.
● Tools to do this:– Gantt diagrams. Describe a project schedule in
time, and assign resources.
– PERT diagram. Describe project tasks interdependencies and detect critical tasks (if these tasks are delayed all the project is delayed).
Planner
● Gantt diagram based.● It let's you schedule tasks, workload and its
dependencies.● Then you assign your resources to the tasks,
taking into account the expected milestones.● Remember: you can only reliably schedule
professional collaborators.
Bugzilla
● Can be used as another planning tool.● Good tool for incidence/bug oriented tasks.● Let you easily coordinate testers, developers
and users to improve quality.
Documentation tools
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Documentation tools
● You should provide these levels of documentation:– Project organization, developer manuals: wiki.
– User manuals: docbook, html, etc.
– Source code documentation: annotation tools like gtk-doc, javadoc.
– Bugs/incidences: bugzilla.
Source code repositories
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Source code repositories
● Repositories of source code.● Should make easier collaboration of people
over the code.● Works better with a good versioning policy:
– Clear difference between stable and unstable development.
– Make easier to identify software products (map releases and source code).
Source code repositories
● Just remember: release often, but make it easy to let collaborators contribute with new/risky code.
● Improvements:– Continuous integration tools
– Automatic testing (unit tests, functional tests).
Source code repositories
● SVN– Wide usage
– Client-server model
– Interface very similar to CVS
● GIT– Distributed model
– Signed revisions
– Merge tracking
Integrated tools
● Project coordination requirements● Team communication● Twiki + XPTracker● Planning● Doc tools● Source code repositories● Integrated tools
Integrated tools
● A software that integrates many of these elements.
● Only point to get persistent information of the project
● Two popular ones:– Gforge
– Trac
GForge
● The one used in forge.morfeo-project.org.● Communication tools: mailing lists/forums,
polls, publish news.● Planning, tasks tracking (including bug
tracking).● Version control (CVS/SVN), and releases
publishing.● Wiki is available as a plugin. Poor integration
with web.
Trac
● Wiki based.● No communication tool integration● Good integration with version control (SVN)