Project Management

The DoIT Digital team is currently working on a number of projects to improve the digital experience for both City of Boston’s constituents and workers. We also have a backlog of projects that are slated to begin over the next number of months.

As the project/product management team on the Digital Team grows, it will help immensely to implement some common baseline project management practices across projects so we can track digital projects from kick off to implementation.

This means we will use the same tools, processes, and language across all projects so anyone on the digital team will understand where we are on any given project and what team members are working on at any given time. This will help us accurately report on project timelines internally and out to stakeholders.

We are not going to introduce any new project management tools. We want to leverage the tools we currently use to help establish these procedures. We will continue to use Google suite and GitHub. As we establish some best practices across the Digital Team, there will always be room for improvement and modifications as we try to figure out what works best.

We have been exploring how to use GitHub to help us track projects. GitHub recently introduced a beta version of Projects we can leverage to give us a dashboard for ongoing project work.

We created a Digital Project Board on GitHub and anyone can link issues from other projects to this main project to track what is in progress. We are continually trying improve how we view projects on this board. Below we will outline and define how Digital team members should use the best practices we are putting in place.

Projects

By definition projects are a sequence of tasks that must be completed to attain a certain outcome. Digital team projects can vary in size and scope based on the requirements. A project team should be made up of the following:

  • Product Owner/Manager

  • Project Manager

  • Stakeholder(s)

  • Developer(s)

  • UI designer(s)

We use GitHub to keep track of the Digital team’s development work. You can find the repositories at https://github.com/CityOfBoston. New projects should be set up under Projects>Projects(Beta). Issues in these projects can be linked to the new Digital Project Board so we can view what work is in progress at a glance.

Setting up and tracking a project

New projects can be set up under Projects>Projects (Beta). Issues in these projects can be linked to a new Digital Project Board. Linking high-level issues associated with a project allows us to see what work is in progress at a glance.

You can find the steps to set up a new project and how to link issues to the digital project board here: Project Set Up in GitHub

Project Managers should set up a GitHub Project for each of their projects. Project Managers can set up and run their project in a way that works for their team. However, using some of the same conventions outlined in the slides above will help establish common practices.

Project Managers will be assigned to approved projects from the backlog when they are ready to kickoff. They will be responsible for managing projects from start to finish.

The Product Owner/Manager defines the vision for the product and works closely with the project manager on project timelines. Product Owners are responsible for triaging bugs, new project requests and prioritizing the product backlog.

Project Managers are responsible for the following:

  • Scheduling Kickoff meeting - invite stakeholders, Devs, UI Team

  • Project Set up in GitHub

  • Gathering requirements

  • Documentation

  • Scheduling regular project team meetings (scrums, check ins etc.)

  • Communication between stakeholders and project team

  • Tracking the project in GitHub (creating tasks, issues)

  • Writing acceptance criteria

  • Linking appropriate project issue tickets to Digital Project Board for tracking

We have a shared Digital Google Drive where you can find the Digital Team Projects folder. This folder contains a specific project folder as well as a Templates folder. The templates folder contains a Project Overview Document template that Project Managers can use to document key project information. Anyone on the Digital team can add tools they find helpful into this folder for anyone to utilize.

We also have a GitHub project called Digital Completed Projects - (Maintenance)

This project is reserved for issues that arise on projects that have been completed. These may be bug fixes or small enhancements to projects that do not meet the requirements of a project.

Project Tracking Common Practices

You can find the steps for setting up a new project in Git Hub here: Project Set Up in GitHub. As stated above each PM can set up and run their projects in a way that works for their team. Below are some suggested common practices you can follow.

Once a project is set up in GitHub, it will be easy to track issues using the following status’/swim lanes:

  • To Do/Backlog

  • Triaged/Sized

  • In Development/In Progress

  • Ready for Review/QAT

  • Ready for Production

  • Done

Issues/Tickets

  • Created by the PM and or Lead Developer and added to a project

  • Issues contain tasks or acceptance criteria for the development team

  • Prioritized by the team in the backlog based on sizing and timing

  • Moved through the swim lanes or status’ by any team member as the work is being completed

  • Once tested and considered complete closed by PM or Lead Dev

QAT(quality assurance testing)

  • Once an issue is assigned QAT status the PM should review the work in a test environment against the acceptance criteria in the ticket

  • If the project involves extensive User Facing components the UI team member(s) should also review the stories and sign off as complete

  • PMs or UI team members should add any comments or questions directly into the ticket for the developer to address

  • Some larger projects may need to involve outside vendors for comprehensive testing

  • PMs should work with Dev to team to create test scenarios and use cases for testing

Project closure

  • All issues/tickets have been tested and deemed done

  • Code is successfully deployed to Prod

Project Development

We do have a number of positions we are trying to fill at DoiT- Digital to oversee and work on project development work. When we are staffed properly the development teams will be split into two areas:

  1. New work team - this team will work on larger development projects that require new development and feature work. This team will work with project managers who are overseeing those larger projects.

  2. Maintenance team- this team will work on maintenance and smaller bug fixes/issues that are not deemed to have escalated into projects. This team can undertake smaller projects if they have capacity. Maintenance teams will not typically need project management oversight, they will be managed by the lead developer.

Digital Project Board

We set up a Digital Team Project Board in GitHub to capture active project work across the Digital Team. We have a list of projects in the backlog swim lane. New projects will be vetted and approved by leaders on the Digital Team, based on available resources and budget. When a project is ready to begin, it will be assigned a Project Manager, Dev, and UI Team. The project will be added to the Digital Project Board. The Project Manager will be responsible for its progress.

Project managers can link appropriate project issues to this board and will be responsible for moving it to the applicable swim lane based on the project status.

Draft Tasks

Once you have a project setup, you can create Draft Tasks. These are not assignable or attached to a repository. Draft Tasks can be given a status. Project Managers or others can use these tasks at their discretion.

For example, tasks can be created to capture initial development work and acceptance criteria before being converted to issues.

Issues

Draft Tasks can be converted to Issues. Issues need to be associated with a repository. Issues can be assigned to multiple projects and people. Issues can be moved between swimlanes or given a status. Project managers can use issues to track the work on their project done by anyone on the team.

All issues should be assigned a project. If there is not project associated with a specific issue it can be assigned to the following project in GitHub: Boston.gov - Non Project Issues

Project managers should create a high level issue(s) to represent project work, which may have its own project board, and link it to the digital project board so the team can track ongoing projects.

Repositories

Repositories are where our code base lives for each project. Issues need to be linked to a repository. We are in the process of cleaning up and organizing the repositories. The Digital Team works in a handful of repositories:

  • Boston.gov - d8

  • Digital

  • Patterns

  • Digital Documentation

  • Cityofboston.gov - this is specific to any migration projects from the old City of Boston site to Boston.gov

If you have a question to where an issue might be assigned please ask the lead developer on your project. We may configure these differently in the future based on how projects will be managed moving forward.

Meetings

Project meetings are up to the Project Manager’s discretion. A project kickoff meeting is recommended so everyone on the team understands the Project and the roles of all team members.

Regularly scheduled project meetings are a helpful way of keeping the lines of communication open as well as tracking and moving the project forward

Suggested Meetings:

Dev Projects:

  • Project (scrum) meetings with devs on an as needed basis for a project - attendees to be determined by the team

  • Project retrospectives on an as needed basis for a project with PM's, Product Manager and devs (CDO optional)

Digital Team:

  • Weekly group (content, social media, design, dev) meeting on Mondays to report progress last week and agree the groups priorities for the week

  • Weekly formal digital meeting where Information from CDO is passed to the team, questions are asked to the CDO etc. Held on the day after the DoIT Direct Reports meeting

  • Weekly demo meeting where work can be showcased, brags and learns shared with the group. SME's from other teams can be invited as relevant to present (e.g. Daniel showing ArcGIS capabilities) digital-relevant information

  • Monthly one-on ones between Individual and CDO with individuals team leader present.

Communication

The Project Manager should be the main point of communication for a project. The team can decide on how they want to communicate with each other and stakeholders throughout the project. Setting up a project team space in google chat might be helpful for quick check-ins and questions during the project.

Project communication should be established at the kickoff meeting.

Backlog

A backlog is a prioritized list of work for a project that is derived from the project requirements. This can include tasks and issues for anyone on the team. The Project Manager should manage the backlog for projects with input from the team. Keeping your backlog up to date will help report out any blockers and project timelines.

Labels

Each repository has its own set of labels. The Digital Team will be meeting to create a list of 10-15 labels we can use across repositories. We can use labels to filter work on the Digital Project Board.

We are using this google doc to pair down the list: Labels

If you need to add a label to a repository the team should approve so we can make sure we add it to all repositories.

Milestones

Milestones are associated with repositories. Currently we are using Milestones in each repository to identify Low, Medium and High priority for issues not related to projects. We can group these issues into these categories for easy viewing on project board list views.

New Project Work

We have created a project intake form that people can fill out if they are interested working with the Digital Team on a project. This form can be shared with anyone who wishes to work with the digital team on a project: Digital Team Project Request Form

If you want to add this to your email signature here is some suggested phrasing:

Have an idea for a digital project or application? Submit your ideas here!

Enhancement Requests/Bug Reporting

If someone on the Digital Team receives a request from another Department at City of Boston to report a bug or discuss an enhancement for a previously completed project on Boston.gov we established the following procedure to triage and prioritize these issues:

  1. A GitHub issue/ticket is created in one of the following projects and assigned to James Duffy

  2. The Boston.gov Product Owner - James Duffy - will triage the ticket

  3. The Product Owner will connect with the original reporter of the issue and gather any requirements

  4. The Product Owner will discuss the issue with the Development Manager -David Upton- they will decide if the issue is a bug or a potential new project

  5. The Product Owner will prioritize the work

  6. Bugs: The Dev Manager and Product Owner will allocate to the appropriate developer

  7. Projects: Product Owner will hand it off to a Project Manager to start the new project process detailed in this document

Last updated