Development Method and Process

From TAPASWiki

Jump to: navigation, search

Contents

Method overview and process used for elaboration phase

The software development method used in the inception and elaboration phase is shown [here].


Construction phase

Other Policies

Communication Channels

We each have our own personal communication styles and approaches. Rather than restrict communication, we want to encourage it in this project, especially as our team is a distributed team. Please feel free to use: email, instant messages, audio chat, video chat, attend our conference calls, meet face to face - what ever works for you. This is a good thing.

The project, however, is missing out by two many communications occuring in these different routes and not being fedback to the group. In order to keep the rest of the team and the community in the loop, it would be great (i.e. strongly encouraged) if you can keep everyone up to date. The best ways to do this would be to focus on a few key tools, which we have in place. They are:

  • Mailing List - The source forge tap-apps-discuss list is the main list that is being used right now. As the project expands we may take advantage of additional lists, but for now this is a great place to pose questions from a discussion that you've had to gather opinion from the community.
  • Mailing List - great to post design decisions so that the community can see what is happening and provide comments and feedback. For example, a discussion is had between several developers - they make a design decision, it should be posted to the list to keep us all on the same page.
  • Wiki - great for elements of design / policy etc that are more static in nature. After a discussion on the mailing list, or in a meeting it can be agreed that something should be posted to the wiki.
  • Wiki - The wiki can be used for evolving documents as well. If there is a structural design piece that you are working on that you want some collaboration with - use the wiki. Post a message to the mailing list, too, to let us all know that you are working on the document.
  • CVS - When uploading to the CVS, please comment appropriately some people do read what you put in your comments as it allows us to see what is happening.

In order to make this work best, each team member needs to ask the following question at the end of every discussion - Would the project be improved if I let people know about this discussion? If you can answer yes (and you probably can for all the significant conversations), then post a quick result of the discussion to the list or add to the wiki. If one person can benefit then likely several can and it is worth posting to the list rather than just to the other person.

When you've finished a private discussion and answered the question above, then have one member commit to posting. "I will let the team know about this on the mailing list." or "I will update the wiki page." and put it on your to do list. That way it will get shared.

Bug Tracking

We are using Source Forge's bug tracking features for TAPAS.

See our Bug organization page for a description of how to bug the system.

Configuration management policy

The configruation management system for the project is CVS, hosted by sourceforge (add link?)

Our normal mode of concurrency control is optimistic. This means that, normally, no locks should be set at the time of check out.

The TAPAS team consists of core developers (contracted) as well as volunteer developers (also called super heros). Core developers should check-in updates frequently - normally, every day they work on the project.

Checked in code must compile. Comment out parts that are unfinished.

Don't check in generated files (class file binaries, generated jars, not even generated source code).

Each milestone version (released every quarter) is tagged and frozen for maintenance only.

Include the following at the end of each source file "$Log$"

Include the following header in each source file:

$Id$

/*********************************************************/
/* TAPAS - Technology Assisted Practice */
/* Application Suite */
/* http://opentapas.org */
/* Created on xxx 2005 by */
/* Principal Investigator: Dr. Morgan Price */
/* University of British Columbia */
/* Department of Family Practice */
/* Suite 211 - 2150 Western Parkway */
/* Vancouver, British Columbia */
/* Canada V6T 1V6 */
/* Copyright (C) 2004-05 University of British Columbia */
/* This program is free software; you can redistribute */
/* it and/or modify it under the terms of the GNU */
/* General Public License as published by the Free */
/* Software Foundation; either version 2 of the License, */
/* or (at your option) any later version. */
/* This program is distributed in the hope that it will */
/* be useful, but WITHOUT ANY WARRANTY; without even */
/* the implied warranty of MERCHANTABILITY or FITNESS */
/* FOR A PARTICULAR PURPOSE. See the GNU General Public */
/* License for more details. */
/* You should have received a copy of the GNU General */
/* Public License along with this program; if not, */
/* write to the Free Software Foundation, Inc., */
/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/*********************************************************/

Personal tools