Collaborating on Code (and Other Things!)

Summary at the end.

Being dropped into collaborative data analysis projects for the first time this past year, I made a lot of mistakes in how the project was managed. It’s impossible to plan these projects out entirely in the beginning, but there are topics that should be discussed, tools that can help, and a process that can be followed: agile.

The Daily Standup

A key tool used in agile project management is something called a “daily standup”. The team meets in the morning to check-in and make sure things are aligned. This is a necessity with how quickly different inter-related tasks can be completed in a data project or with software development, but the idea can really be applied in any environment: traditional project management, emergency response, or coaching/mentorship meetings.

This was also great to help with resource management as we juggled multiple un-related projects with different deadlines at the same time.

Daily Standup Meeting Agenda

Each person answers the following:

  1. what got done since the last check-in?

  2. what are they working on next?

  3. what roadblocks were encountered or do they see coming up?

This has been a very powerful tool that helped me quickly identify overlap of work or places where we need to have clear connection points to make sure things works well together.

If you are the facilitator, establish the rhythm early. This meeting is quick: 15min for a team of 4 people is about right. The big picture should have already been dealt with during more formal planning sessions (in agile, those are weekly sprints).

Setting-up Tools and Framework

Tools

Getting collaboration tools setup early is imperative. Everyone can take some time to explore and play around for a bit before we get into the work, but investing the time to make sure everyone's working environment is ready for collaboration makes the the project run smoothly when you need to get things integrated together. Use the simplest tool possible for the needs, which could mean:

  • Shared document

  • Note taking app (OneNote, Notion, Evernote)

  • Shared folder

  • SharePoint Site

  • Git repository

Framework

The framework can get organized at different levels of detail. As a team, we can align on the overall structure (which functions are needed, how will data or information flow etc.). At a lower level, we also have to align on inputs and outputs of different functions. For a data project, this has to be to the level of detail of what columns would exist in a table, what they would be named, and the format of the data in each column. With that setup, each person can freely work within a clear scope with confidence.

I learned the hard way how much refactoring and even additional work is required to integrate things when information isn’t showing up as expected. The daily stand-up is the place to make sure the team is on the same page about these details.

Summary (Too Long; Didn’t Read)

Setup and agree on collaboration methods early. Use weekly meetings for big picture planning and daily standups to align on inputs, outputs, formats and expectations. The daily standup is short checkin to share progress since last checkin, focus until next checkin, and roadblocks or issues.

Adam BroniewskiComment