I would like to hear from experienced project leads on a simple way of maintaining all communication from the time a new "task" (within a project) is assigned until when the developer will have to start the implementation. Here are the steps I see during this:
a. Task-assigner assigns a PCR (a request for task) to a developer, containing very brief info about what to do.
b Developer has to conceive a solution and propose it + raises questions for clarifications.
c. Task-assigner (or tech expert) reviews the solution. Repeat (b) until satisfactory.
d. Task-assigner (or a related tech expert) validates the solution proposed. Clarifies doubts.
e. Developer begins imlpementation.
f. Developer may have doubts again, goto b.2
NB: The task-assigner+experts and the developers are at geographically distant locations, with considerable timezone difference.
I need a documentation mechanism which lets me monitor b, c and d, which are steps that could repeat.
I don't use any formal methodology so far. I am starting to implement this as a thread of emails (might standardize on a template for it.) Any other suggestions on how I can possibly do this, and pointers to literature that deals with this will be welcome.
I don't have much experience with a distributed team, but here is what I'd keep in mind:
- nothing beats face-to-face conversation in effectiveness. Try to find a way that at least at some time of the day, the two can directly speak to each other - perhaps via VoIP. Even better, install webcams, so that they also can see each other.
- working together will improve significantly if you have met once. That could even be worth a short visit around the globe.
- Email is a convenient medium for written discussion, but not very convenient to archive and look up information. I would probably try a wiki instead (there are wikis with email-notification on changes to a page).
- the best *formal* specification for a task is an executable test case that will pass once the task is finished (or a set of test cases, of course).
Hope this spawns some ideas...
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Stuart, I think a wiki is ideal for this, especially with distributed teams. We have a distributed team, but no shared network or easy way to share resources. So we are left with e-mailing back and forth attachments and conversations. One end maintains the "system of record", which is a bit awkward.
So what I'm saying is that if you have an easy way to share documents/thoughts, you are ahead of the game.