Thoughts on Project Management

Wei Yang Tham

January 29, 2018

Current workflow

  1. Someone inititates a project
  2. After tasks are assigned - code + files are stored on your own computer
  3. Sometimes data and files are stored on the lab Google Drive
  4. Code and data generally shared by email
  5. Communication and keeping track of tasks - combination of email + team meetings

Takeaway

  • Code and data distributed over a bunch of personal computers that are connected by Gmail (and Google Drive when we feel like it)
  • Downsides
    • Idiosyncratic ways of coding and organizing code
    • Dependent on individuals to keep track of tasks
    • Hard to see what everyone else is doing
    • Digging up old discussions by email is hard (e.g. too many “Meeting” subject headings)

What are the alternatives?

  • “General” task management tools: Trello, Basecamp
    • I’ve don’t know much about these
    • Essentially interfaces for projects and tasks within those projects
  • Version control: Git + Github most common

Version control

  • Saves versions of a project
  • Like a computer game: save at different points along a quest, and load the game at any point in the past
  • Git is a version control software, Github is an online version control repository

Version control

  • Easy to go back to different versions of project, or see what changes were made to a file
  • Example

How I use Github

Branching

  • Want to experiment with code but afraid of messing up the entire project? Create a new timeline that won’t affect the “master” branch

Costs

  • Setting up + learning curve
    • Traditionally, people have used git through the command line
  • But now there are GUIs that are easy to use and visualize what git is doing (Gitkraken, RStudio)
  • For the kind of work we do, don’t need complete mastery of Git

Not purely a technology or tooling problem

  • Settling on standards for how projects should be organized e.g. folder structures, coding conventions

Optional slide: Slack

  • One day I realized I have too many emails with “Subject: meeting” or “Subject: talking”
  • Messaging for work - think IRC/MSN messenger/AIM
  • Organize conversations by projects using “channels” - show example
  • Can share attachments
  • Why I like it: old conversations/files share are all in one place