Software Workflow
Coding Workflow
Each ROS package we develop has a repo in our GitHub organization
Asana
We use Asana to organize our tasks. Asana consists of mulitple project boards which we use for different things.
The relevant boards for software team members are:
Weekly Updates - contains notes from our weekly tuesday meetings
SW Master Board - Contains ALL software tasks ever created
SW Sprint Board - Contains the tasks we are completing in the current sprint (current month)
Go ahead and star these boards for easy access. Just right-click on the project name on the side bar and click "Add to Starred".
Other sub-teams use asana slightly differently so there will be lots of other project boards you don't need to worry about.
SW Master Board
The software master board contains our backlog. Any time we plan tasks that we aren't doing right away (i.e. they are not a part of the monthly sprint) they get put in the backlog. The backlog is basically a growing to-do list, so whenever you think of a task that could or needs to get done but is not high priority, add it to the backlog.
The Master Board also has an "In Sprint" section. This tells us which tasks are currently a part of the sprint.
There is a completed section for completed tasks. That section is not too complicated.
There is also a section for ideas. This is for tasks that aren't necessary, but just a place to store ideas to explore later on.
Finally we store any meeting notes in the "Meeting Notes" section.
This board is only meant to be updated at the end of each sprint.
SW Sprint Board
The Sprint Board has 4 sections:
To Do - All tasks added to the sprint board start here and stay here until they are ready for documentation
Documentation
Code Review
Done - Tasks move here only when they have been documented and code reviewed (if applicable - i.e. ordering a part does not require code review).
All the tasks in the sprint board also "live" in the master board in the "In Sprint" section.
Project Focused Boards
Occasionally, we will add tasks to a third board for better organization. For example, if we were planning out development for the gazebo simulation, we could add all the gazebo-related tasks to a separate board called "GAZEBO" and organise them in sections as desired. Doing this for sub-projects just lets us click that project board and see how much we have progressed in that specific area, without clutter from other tasks.
Actually Using Asana
Example Tutorial
Go to the SW Sprint Board. Under "To Do", click "Add task...". Name the task "SW Onboarding" and assign it to yourself. If you open up the task description, you can see that it's a part of the current Sprint Board in the To Do section. You need to add it to the Master Board as well, so click "Add task to a project", and assign it to the "SW Master Board" and in the "In Sprint" section.

Once you have finished reading the Onboarding page, you can mark the task as complete, move it to "Done" and move it to "Completed" in the Master Board.

Pulling from the backlog
If you are completing a task that already been created in the backlog, click on the task in the backlog, and add it to the sprint board, under to "To Do" section.
Descriptions and Comments
USE DESCRIPTIONS AND COMMENTS! All of your debugging notes, questions, descriptions, thoughts, and problems belong in the task! You can keep your own personal notes, but anything relevant to a task goes in the description or comments. This is especially important for later writing documentation, and if someone else works with you or finishes your task.
Last updated