Blog Culture Set expectations, manage better
2017-01-03
4 min read

Set expectations, manage better

Creating overhead with meetings and reviews is a risk to the efficiency and remote culture of organisations and should be actively avoided for an organisation to succeed remote at scale.

set-expectations-manage-better.jpg

With GitLab Inc growing to more than 150 people working remotely and
steadily increasing, inevitably new challenges come up while building great
software.

We never shied away from hierarchy, but recently I’ve been
noticing a trend towards more traditional people management in an effort to
maintain focus on shipping at scale.

I believe that creating overhead with meetings and reviews is a risk to the
efficiency and remote culture of organisations. It should be actively avoided
for an organisation to succeed remote at scale.

More people, less productivity

When a team grows from five to 30 to 100 people, some parts of the
team will fail at some point: be that in the form of missing a deadline or not
delivering quality work.
Of course, larger organisations want to solve this permanently. If there
already is an established hierarchy, it’s likely that the managers of the
failing team will ask themselves:

How could we have seen this earlier?

A senior manager will think back to the old days when everyone was
performing well as a small team.

Now, reader, how would you solve this? Obviously this was an oversight by
management: they should’ve seen this earlier. The suggested solution might be to improve or
create a reporting structure where management reviews the status of projects
and teams more frequently.
In addition, management should have more frequent meetings in order to review
the status of the teams and handle these if necessary.

This is where productivity goes down significantly and remote culture is in
danger.

Solution: Set clear expectations

Reviewing work in progress both directly, and indirectly through meetings is a
waste of time.

Q: But what happens if things go off the rails? How will I know? Who will handle it?

A: Trust your people.

You must set clear expectations for any and all work. These expectations should
include a clear scope, time of delivery, but more importantly: communication
expectations.
Communication expectations are easily outlined:

  • I expect that you will let me know immediately if you think that this deliverable will not make the deadline.
  • I expect that if you have doubts about the feasibility, functionality, scope, or outline of this deliverable, you will let me know.
  • I expect that if you need help from colleagues, you will contact them and ensure their collaboration. If you get stuck with this, I expect you to communicate this to me.

Now this seems a little verbose – maybe it is, but it makes it very clear
what is expected of those responsible. It even seems very obvious, but now that
we wrote this down, do the additional reviews and reports still make sense?

Doing this remotely

Doing all of this remotely adds a layer of complexity. We’re fighting with two
paradoxical goals: we want to maintain a single source of truth, and we want to be able to give a sense of urgency when working with deadlines, to be able to maintain a certain pace.

In practice this means that everyone is expected to over-communicate. For
example, I might say in a GitLab issue to Sytse that our rocket engine won’t
make it in time for the planned launch date, but because I know he’s way behind
on email and Todos, I’ll also send him a message in chat.

For remote teams, such as our own, I’d add another expectation:

  • I expect you to make sure that other parties you communicate with are actually reached.

This means sometimes you’ll have to ask someone else if Jane is absent or
send her another message on chat if she doesn’t reply within a reasonable
time.
From personal experience, being a little more pushy and impatient than you’d be
in everyday life is enormously beneficial to this end.

Over-communicating is a small cost to pay for the freedom of working remotely.

At GitLab

I wrote this as a response to observations I made at GitLab. That said,
it already was a company policy to look specifically for people who
manage themselves. This is what we write in our handbook on this topic:

We don't have project managers. Individual contributors need to manage themselves. Not everyone will be able to do this effectively and be fit for our organization. Making someone responsible for managing others will make the job of the people who can manage themselves worse. If you manage yourself you have a much greater freedom to make decisions, and those decisions are based on deep knowledge of the situation. We want to retain the people who can handle that responsibility and therefore we can't retain the ones that struggle. Assigning a project manager/coordinator/case manager/etc. to something is an indicator that something is wrong and we are picking the wrong solution.

We write these and other lessons in our single source of truth,
our handbook. Like (almost) everything at GitLab, our handbook is
open source and you're welcome to read it and contribute to it.

We want to hear from you

Enjoyed reading this blog post or have questions or feedback? Share your thoughts by creating a new topic in the GitLab community forum. Share your feedback

Ready to get started?

See what your team could do with a unified DevSecOps Platform.

Get free trial

New to GitLab and not sure where to start?

Get started guide

Learn about what GitLab can do for your team

Talk to an expert