Consistent and Minimal
Most important rules:
Be consistent.
Be minimal.
Read these sections carefully.
Version plan
The version plan goal is to report your progress during the day. Your current task should be shortly described in the version plan header. All other tasks in the body of the version plan should be according to the version plan legend.
Header
The current task should be logged in the version plan header, together with a rough estimation of the task's duration.
In case the task is less than a day, include your next task.
In case the line is too long, make sure to add two (2) spaces at the start of the next line.
Report the day you will come back from your vacation
Task header
First line of a task should contain the product and a short description
If the requester is not you mentor, you should add him in
brackets
When finishing the task, the
'Done' email should be sent
to the requester and a CC to your mentor
When task is from another tasks file, you should add that file, short
version name for cvsed in square brackets.
You should add your name in brackets as the begining of the task in the task
file and mark it with *
When done, you should mark + in both version_plan.txt and the task file.
'Done' email
Legend
-
Planned task*
In progress task+
Doneo
On hold task?
Decision pending taskc
Canceled task
Body
The body of the version plan should contain all -
(Planned),
*
(In progress) tasks:
Tasks that were requested by other then your regular mentor, should have the mentor name in brackets
Do not use uppercase as first letter
Only tasks that benefit customers should be listed, typically tasks that:
- end with a commit
- end with a deployment
- fix a bug
- improve the product
- solve a problem for a customer
Learning is by-product of doing.
Priorities
Tasks are sorted according to their priority (top-to-bottom).
*
(In progress) tasks are usually very few (1-2), not more,
representing your current work effort and should be added to the header of
the version plan.
Tasks which started (code was partially written/committed) and then stopped,
should be marked with o
(On hold).
Work in progress
In progress (*
) subtasks: at least one of them must be in
*
status.
Subtasks of a completed main task, cannot be in progress.
Canceled task can be a subtask of a complete task.
Incremental
Tasks longer than 1 day must be divided to committable subtasks
Updates
The version plan should be updated once a day, reflecting the current tasks
you are dealing with.
Updating this file can be done easily with cvsed.
History: completed tasks
Done (+
) and canceled (c
) tasks are being cleaned
automatically from the version plan every Sunday.
These tasks can be found in the doc/design/version_history.txt
file.
Daily file
The goal of the daily file is to report your daily achievements, describe
your commitment
and state your next planned
tasks.
In the commitment
section, write the tasks you plan to
finish tomorrow. In the planned
section, write the task you will
start after the tasks in the commitment
section are done.
Update this file every day, usually at the end of the day (you may choose to
update it in the beginning of the work day, summarizing your previous working
day).
Updates
The daily should be updated at least once a day, reflecting the current tasks
you are dealing with, as well as explaining what you are going to do
next.
Updating this file can be done easily with
cvsed.
People in Spark like to use cvsed vpd
to constantly update their
daily with every task they start or finish so everybody will be updated with
their progress, as well as it won't take them long to update it at the end of
the day.
Legend
We are using the same version plan legend.
Template
Report your daily achievements, describe the tasks you will complete for sure
in the next day (commitment:
), and the task/s your are about to
start once completing your commitment (planned:
).
No uppercase as first letter
Do not use uppercases as first letters in the body of the daily
file.
Uppercase as first letter is used only for the month in the header
of the daily file.
Descending order
Your latest report should be the first one in the file.
Work week definition
State you usual working week days and hours, so everybody will know when to reach you. Include both your local time and IL time.
Absence
Vacations and other out-of-office cases should be reported (in advance if possible).
State if you worked only part of the day.
State planned vacations ahead of time.
Support
Support fill out every issue they work on in their daily file so we can see the big picture of what is bothering our customers and improve.
Format:
Hour notation is 0.1 = 1H:
Only mention tasks above 0.05 (30min):
Break tasks by topic:
Use standard topics so we can grep issues by topic.
Topics: mdoc, billing, lpm, bext, google, unblocker, cp, blocked
Design documents
We write designs for specific features to usually coordinate between several
programmers and to layout the way we would like it to be created.
The document will hold a technical description of the feature as well as a
list of prioritized tasks. We are using Jdoc to
notify the relevant people on the status of the document as well the progress
of every task.
Legend
We are using the same version plan legend.
Priorities
Since we believe in incremental development most likely the newly feature will be deployed very soon and a list of tasks will start to be piled up. To coordinate between several people working on the same feature the below defines handling priorities:
- P0: Critical functionality is completely broken. Stop everything you do and handle this task
- P1: A specific feature is broken or partially working. Handle top-to-bottom
- P2: Enhancement to be added. Handle top-to-bottom
- P3: A nice to have feature. Handle top-to-bottom
- P?: Not decided yet - task is waiting to be classified by the OWNER
Assignments
Once the task is assigned, the developers login will be added to the task
Task info
The requester should be added in brackets at the end of the task.
In case the task came from a customer, add him after the requester's login.
Once the task is completed, notify the requester and the customer.