Table of Contents
This document is as a part of the requirements gathering for the development of the new Project Tracker in mind. MS Project is singled out because it is the recognized industry leader.
User Scenario, will cover the basic workflow assumed in MS Project, that may be useful in conceptualizing the coordination of various tools at aD (ticket tracker, dev-tracker, QAS, SDM, work flow, etc, etc). Being a novice to project planning myself, this section is written as if it is a tutorial. ACS 4 team's experience with MS Project and basic features are also discussed.
MS Project divides project planning into roughly three sequential phases: (1) Build plan (2) Track work (3) Close project. This document will focus on MS Project for project planning and its companion, MS Project Central, for tracking and collaboration features.
The pre-coding planning stage of a project is defined in eight steps. Some of them, such as cost calculation (finances, outsourcing etc), does not seem directly pertinent to ArsDigita, and are touched only in summary.
Build A Plan
Define a project: Objectives and Deliverables
Agree upon the objectives and deliverables for the project with the client. Here, objectives are defined as quantifiable criteria that must be satisfied in order for the project to be successful. Deliverables on the other hand are tangible, verifiable outcome of the work done to produce a product. So providing easy-access 24 hour customer service at a low cost might be an objective, an online customer care center might be the deliverable.
Plan project activities After a objectives and deliverables are defined, work can be organized into milestones, phases and tasks. A phase is a group of related tasks that completes a major step in a project. A milestone is a major event in a project used to monitor the project's progress. Planning project activities include estimating time, constraints, and mapping dependencies.
Plan for and procure resources One the work items are defined, the next step is to procure resources (people that would do the work, along with material and costs) and allocate them.
Plan project costs If there are cost considerations involved (hourly fees for a contractor, equipment,etc), plan the costs of a projects and save them as budget.
Plan for quality and risks Once the work is divided into it's components -- tasks -- quality standards for the project should be identified. Requirements review, design specification review, code review, and testing would fall into this criteria.
Even the best laid plans can go awry, so it's a good idea to identify risks that would cause the project to fail (ie. the deliverable doesn't meet the objective). In a typical project risks might be scalability, mixed code quality, scope creep, loss of and resources, and tasks that many other tasks depend on.
Once all your worst nightmares are identified, figuring out how to deal with them would be good for that beauty sleep. You can assign a risk to a person to ensure it does not get forgotten, and identify specific actions that can be taken to mitigate these risks. You can also eliminate some kinds of risks all together by revising the project plan, such as heavy dependency on one star developer or overly ambitious scheduling.
Plan communication and security To avoid confusion, inconsistency, and to minimize time spent on communication, it's a good idea to establish "the way" to talk to everyone on the team. Meetings with everyone is a solution, but they are time consuming, records are not always accurate, and detailed information is easier to communicate in a written format. A good communication strategy would support archiving, security, general, and targeted communication. Some options are email, mailing lists, bboards, ticket-tracker, dev-tracker, etc.
Optimize a project plan Now that the project is planned out, including objective, deliverable, milestones, phases, risks, communication strategy, and dependencies MS Project will calculate ETA based on allocation, dependencies, and time estimate. Now is probably a good time to revise the plan.
Distribute project plan A good plan is useless if it is not followed, updated, and if the team does not communicate. MS Project by itself lacks the capabilities for collaboration, and the only way to disseminate the project plan is handing out print outs. However, Project does support confidentiality, if the project plan contains sensitive information. MS Project's companion, MS Project Central, has collaboration capacities.
Track and manage a project
Programming only starts at this point, when the baseline project plan is defined. Pam constantly updates her project plan to keep track of tasks accomplished and modifies her plans to ensure scheduled delivery.
Close a project
With MS Project Central, the contents of MS Project can be made accessible online. MS Project Central compensates for the lack of collaboration in MS Project.
Workgroup members can view all their task for all their projects at once, they also have access to different view and filters.
Members can also see up-to-date project plans
Members can create new tasks and delegate tasks.
Project managers can request, receive, and consolidate status reports.
Managers can define rules on accepting updates from workgroup members.
E-mail: using email to update project. Connected with MS Project Central, MS Project can accept email for the following tasks.
According to Richard Li, the most useful feature derived from Project is the ETA calculation. This is only possible if the allocation can be defined, and dependencies can be included in the project plan, and if time constraint can be specified (or at least used in conjunction with dependencies). The only time constraint used was ASAP. Summary tasks and subtasks were consistently used in the organization.
The critical path diagram (Gantt chart) was also useful in identifying over dependencies (eg. during the initial planning, many tasks were dependent on R. Schloming). The Gantt chart was also useful in figuring out allocation (who would finish when, who would be free when, etc).
When I asked Bryan Quinn if he considered the ACS 4 team's project planning method successful, he replied that he would consider it a failure because release was delayed by 3 weeks. Both Richard and Bryan agree that the ETA calculation is an important feature. The major shortcoming of MS Project was that it did not support collaboration, and this made revising and updating project plans difficult. Bryan said that the ACS team eventually abandoned project plans and basically kept a "to-do list" in their heads.
Kai Wu also described his experience with MS Project: "I found that the most useful aspects of Project to be the ease of UI, particularly with tasks and subtask creation and organization, and the Gantt charing visual aid. And, as we discussed, the major problem is the lack of collaboration capabilities"
Overall MS Project has some features that dev-tracker doesn't support. I feel that ETA calculation and Gantt charting are the major features lacking in dev-tracker, and collaboration is the major feature lacking in MS Project (MS Project Central addresses this issue). Below is a list of good ideas in MS Project that does not exist in the current dev-tracker.
ETA The most interesting feature in MS Project from our perspective is the ETA calculation. ETA calculation is based on constraints, allocation, and dependencies.
Constraints Estimated time of completion is automatically calculated based on the time (day/month/hour) estimate, and time constraints. The default mode is ASAP starting from the start date of the project. If dependencies are identified (task A needs the outcome of task B before it can start) then the ETA of task A is adjusted. There are eight different time constraints available (see glossary) but the most useful time constraint is ASAP. The other types, MFO (must finish on), and SNT (start no later then) etc, may become useful for more complicated projects.
Dependencies A task can have four different types of dependencies (FF, FS, SF, SS). The most useful type is FS (finish to start), task A cannot start until task B is completed. Multiple dependencies are permitted.
Resource Allocation In MS. Project the availability of each resource (person) can be defined. For instance you can specify that Tommy Toolkit is available 50 % of the time, whereas Jay Developer is available full time. This allocation is taken factored in the ETA calculation, and thus if an 8 day task is assigned to Tommy, the ETA will be 16 working days from now. N.B. Project also accounts for holidays in it's calculation. (Duration=work/resource * effort) You can optionally specify the number of hours in a day (effort), the default is 8, though this feature is not often used.
UI Although Project's UI is a bit cluttered due to its massive feature set, the basic actions (entering data and viewing data) is very easy.
Gantt Chart The Gantt chart is related to ETA calculation. It is a graphical display of tasks and dependencies over a period of time Like the ETA calculation, the graph is based on constraints, dependencies, and resource allocation.
Subtasks A task can be divided in to subtasks. The creation of a subtask is facilitated by a simple left/right arrow that represents indentation. The total amount of time estimated for the subtasks are automatically calculated as the estimated time for the main tasks. Summary tasks are the equivalent of "feature areas" in dev-tracker, in that it groups a set of related tasks together. View options are: Show subtasks, hide subtasks, show all.
Batch Editing Because Project has an MS Excel like interface, the user can batch edit task lists, instead of editing one by one.
Baseline A snap shot of the project plan at a particular point in time.
Monitoring/tracking Progress is monitored automatically against start date as time passes (so amount of time left changes too) and changes color.
Milestones A milestone is just a type of task, and they are graphic display is distinct from a task.
Security Some projects choose to implement their own version of Ticket tracker or dev-tracker (eg. World Bank). One of the benefits of having these tools on ad.com is that the company (ad.com) can potentially review all the projects. It would be useful then to implement some type of user defined security features so dev-tracker doesn't lose its users.