Project Management
Project management is more than its literal interpretation. It included assigning accountability, trust, motivation, and respect to those you give the tasks to. By giving the engineer accountability with their project. They are more likely to see it through to its deployment as well as encourage other engineers to solve their issues in a healthy and team-oriented way. This also opens the door for the engineer to request PRs from other engineers that have already worked on their specific project.
Dev Allocation
In order to compartmentalize issues and projects, it is suggested to split engineers off into small and manageable groups. The number of groups depends upon the needs of organization along with amount of engineers available at that time. In addition, it is wise to create a group that is continuously focused on defeating bugs and working on miscellaneous tickets.
Currently, creating dev groups follow this naming convention:
- dev-group-n
Note: If the work for a project requires more than two engineers (which should be avoided) a new channel in Slack should be created for easier communication flow between groups.
For example:
#dev-project-name
Dev Allocation Sheet
A developer allocation file in Airtable should be created to track what project each group and engineer are focused on. This makes it extremely easy to manage workload and increase engineer performance. Here is a template Dev Allocation Table that you copy for use yourself.
Project Preparation
In order for a project to get done, one must first understand what is being asked to be done. This is where project preparation comes in.
Generally, you want to create a document in Google Docs that lists out the steps that you need to take to complete the project assigned to your engineering team. This includes, but is not limited to:
- Map out to-do list in broad strokes
- Update description with Epic Description & Technical Notes
- Create tickets from to-do list
- Assign and prep team
- Add agreed upon est. release date to tracking spreadsheet
- Inform Product of estimated release date
- Set up Slack date reminder(s)
- Add Check-in calendar reminder(s)
- Set up “In Progress” checklist
GitHub Projects
Github Projects is used to integrate with issues and pull requests on your GitHub to help us plan and track our work effectively. You can create and customize multiple views by filtering, sorting, grouping your issues and pull requests, adding custom fields to track metadata specific to your team, and visualize work with configurable charts.
One of the best things about GitHub projects is that it allows us to cluster multiple tickets into a single "Project". Allowing Management to track the overall progress of a major feature request.
Issues vs Projects
Corralling specific issues into one area is recommended if the size of the project is larger than one specific issue.
To be brief, a "project" it contains multiple tickets that are all working towards the completion of the project. It goes without saying that this is a major help when working on larger projects with multiple areas that need to be worked on.
One may ask:
"What if the ticket I have is an issue, but requires multiple areas to work on to fix?"
To that we say, if the issue spans multiple areas or requires multiple engineers to address, it should be considered a Project.