JIRA Workflow

The mechanical team, like other subteams, uses JIRA to track our subprojects and "issues". As such, there is an established workflow to follow. 

Nomenclature

Mech uses 3 types of labels for our issue tracking. 

  • Epics, representing subsytems like Chassis, Suspension, Steering, etc.
  • Stories, large-scale "goals" and to-do's for each subsystem
  • Tasks, subprojects that are required to complete the overarching goals (i.e. stories)

The names can be quite confusing, but this is the simple breakdown. An example is the suspension system:

The story "Front suspension FEA" is a child of the Suspension Epic. FEA is a large-scale goal for the suspension system as a whole. Some relevant tasks to this story may include "calculate loading conditions on upright", "define boundary conditions for upright", or anything else that is required to complete the story. The idea is that Epics contain a subsystem, and Stories are large-scale goals for said subsystem, with Tasks being items that must be completed in an effort to complete a specific Story. 

Team leads will link Stories to their relevant Epic (i.e. subsystem of the car), and will block/relate any relevant Tasks to the corresponding Stories. Team leads will also assign projects as they come up to the relevant team member. Some projects, especially long-term/non critical ones will not be assigned to any particular team member and can be started at any time. 

The small arrows beside the issue type denote priority, ranging from Lowest to Highest. The more red the arrow, the higher the priority. Generally, tasks with Highest priority are something needing completion ASAP, where as Low/Lowest priority are usually long-term tasks that will eventually be updated to a higher priority as the deadline draws closer. 

Open Issues

When you first arrive at our JIRA page, you will be greeted by our active sprint page (in this case, Summer 2017 Pre-Midterm). This shows all the MECH tasks, including those that have been completed. These tasks are all sorted by vehicle subsystems, such as suspension as shown above. Additionally, JIRA sorts tasks into columns called "swimlanes", with each "lane" representing a stage in our workflow. By selecting "Only My Issues" under Quick Filters at the top, you can easily see which issues are assigned to you. 

In this instance, I can see that I have tasks in Brakes, Aerobody, Battery Box and Documentation/Other that are "To Do"

Starting Tasks

When a task is assigned to you, and you begin working on that task, drag said task from the To-Do to In Progress. This allows the "reporter" (i.e. person who has assigned this task to you) to see that you are actively working on this task.

If a task is not assigned to you, but is not assigned to any team member, you can also drag said task into In Progress. Doing so will automatically assign the task to you, and you become responsible for reporting on this task to whoever is the reporter for said task. 

The above shows that I have now taken two tasks, "Detailed list of machined parts" (a task assigned to me) and "Manufacture new whiteboard" (a task that was unassigned, but I have taken on), and moved them to In Progress. This will notify the Reporters of these projects that I have taken them on. Once a task has been moved to In Progress, they can no longer be moved back into To Do (unless you are a board Admin), so please be sure to only move projects you are actively working on to In Progress. 

Finishing Tasks

Once you have completed a task you have been working on, the task should be dragged to In Review. Once a task is moved to In Review, a team lead will review the work that has been done and verify that no changes are required. If the task is all good, a lead will move the task from In Review to Done, and the task is Closed. 

If a task is not completed, something has changed relative to the task, or for any other reason, a lead may also move a project from In Review to In Progress. This simply allows all team members to know which tasks are pending review, and which tasks have been reviewed and may need to be changed. The only persons moving tasks to Done should be team leads. 

As shown above, the task "Clean up chassis CAD" has been completed. This means the task has been moved to In Review, the responsible person has reviewed this task with the asignee, no further work is required and the task is now moved to Done to denote it has been completed. 

Creating Tasks

Generally speaking, most tasks will be dumped into JIRA by team leads. In the event there is something you need to add, use the light blue "Create" button at the top. To setup a task:

Standard fields are as follows:

FIELDCONTENT
Issue TypeStory or Task - dependent on whether this is a major goal (Story) or a task required to complete a major goal (Task)
SummaryA quick, one line description of the issue to be done
ReporterWho is to be contacted for questions/reported to once the project is done
DescriptionA description of the project at hand. This should be as long or as short as needed, and include any relevant pictures/screenshots/equations/links/whatever necessary
Fix VersionsALWAYS set this as MSXII. This allows us to contain all mech projects under our current car (MSXII)
PriorityUse your discretion. This will generally depend on when the project/task needs to be completed by. The longer term the deadline, the lower the priority generally, however, this may depend on the scope/complexity of the project.
LabelsWe have several already set up (CALCULATIONS, COMPONENTRY, FEA, CAD, etc.). Select whichever (more than one can be used) is most relevant.
Linked IssuesGenerally this will be set up by leads in order to control the flow of projects and ensure projects can be completed prematurely, and the tasks that must be finished to complete a project are completed first. This should be either "blocks" if the task must be done first, or "relates" if the task and story are linked.
AssigneeWho is responsible for completing the project? Currently this is set to Devon Copeland, but can be set to unassigned or any person on the team. Unassigned projects will sit in the sprint until someone is either assigned to the project, or the project is moved to "In Progress" by someone (defaulting them to being the assignee for said project).
Epic LinkWhichever subsystem this task is a part of is the epic selected here.
SprintThis should be the active Mech sprint (in this case, Summer 17 Pre-Midterm).

Other Notes

JIRA is a very powerful tool for managing deadlines and increasing productivity, however, JIRA only works when everyone checks regularly and updates projects as they get completed/taken on. Don't be scared to reach out to any team lead if you are confused!