Git Workflow

Over the past few years, a lot of us have been thrust into working remotely and as the pandemic slowly starts to ease there is demand from some employees to keep working in the new way.

For the employee, this can give them less time commuting and a more flexible working environment, but for the employer, this can be more difficult to keep track of what everyone is working on and the state of tasks to be done. In this article, I am going to argue that there are lessons to be learnt from the open-source community that can be used for office basted workflows that have been working successfully for years.

This is where the open-source concept of “Git workflow” comes in. The name comes from a tool used in software development but the concept can work for most types of work. This is because at its heart most work can be broken down into tasks and then each task can be done independently.

Git workflow works by setting the managers role as.

  • Defining the job based on the client’s request
  • Separating the job into tasks
  • Prioritizing the tasks
  • Helping employees if they have problems
  • Reviewing work done
  • Combining the complete tasks to make sure the whole thing is consistent

But notable not.

  • Assigning tasks for each employee
  • Chasing up about the state of a task being worked on
  • Making low-level decisions about how a task is done

The main difference to the more traditional approach here is this involves a level of short term trust but also encourages measuring performance based on, the only thing that really matters, results.

For example, imagine, your architecture firm got a commission for a house extension.

The first step would be for the manager to write a brief description of the project, then break the work up into a list of tasks. Each task should have enough information that someone could pick it up and complete it from just the description, they should also be as small as possible, nothing more than 2-3 days work. You don’t need any special software to do this, a shared spreadsheet works just fine.

Step two would be to, tell the employees working on the job that it is their priority and let them know where the spreadsheet is. All the information they need should be in the spreadsheet so this doesn’t need to be anything more than a two-line email.

Then for the third step, the employees pick a task from the task list and write their name next to the task. Once they do that it is their task. If they get stuck they should ask the manager or another employee for help and when they are finished they just need to mark that task as complete in the task list and pick a new one. If some of the tasks can only be done in order, it is easy to just note this in the task description.

The fourth step is for the manager to check the task list and confirm any tasks marked as complete, or send them back to the employee if it is not right.

Then the manager can keep an eye on the task list, to know who is working on what and which tasks are complete. The task list can then also be used as a source to update the client on progress as the job goes along. As each task is only at most a few days work any issues will become apparent quickly. Along with that as all the complete tasks are named it is easy to know who did what at the end of the project.

If you add the date and time when an employee takes on a task and completes it then when review time comes around the task list gives you a full list of everything they have done in the past year and how long it took them to get it right.

All this can be done without the need to monitor employee time at their computer, try to stop them procrastinating, or check-in repeatedly to see how they are progressing. If there is a problem you will find out about it as soon as the 2-day task is due. The people you work with are adults and know what they are doing if you treat them as such life can be so much simpler.