DEV Community

Cover image for How to manage a software development team and your git tree
Thomas Hansen
Thomas Hansen

Posted on

How to manage a software development team and your git tree

First of all I hate the word "manage". When I explain my leadership style to others, I typically explain it as follows ...

I "adopt" brilliant software developers for then to unleash them

It's a bit of a cliche, being one of Steve Jobs' most quoted phrases ever, but it's still valuable, and I am of course referring to the following ...

We hire great people to tell us what to do

In some ways I guess it's my anarchistic background here inspiring me, where anarchy of course doesn't imply chaos, but rather "without hierarchy/leadership". I sometimes explain my leadership style as follows ...

I'm the CEO not because I like to boss people around, but rather because I don't want anybody else to have the title, resulting in that my people are getting bossed around

Anyways, what does this have to do with git? Well, it's quite simple, some developer just posted an article about his git branches ended up looking like "guitar hero". Unfortunately he added a curse word into his OP, so the thing got censored, only after I had written a thorough comment explaining what I believe was the underlying cause, resulting in his or her problems. I understand the moderator here not wanting to have curse words publicly displayed on their feed, but I think my comment about it was good enough to deserve to be reiterated without the curse word, and it was as follows ...

If your git branch looks like a x-mas tree, it's a symptom of something else being wrong with your organisation. Often this other problem is that your team is too large. The solution is to divide your codebase into smaller more easily digested chunks of code, allowing you to segregate your teams into smaller autonomous teams, resulting in fewer branches, and a more easily digested git tree, transforming your "x-mas tree" into "a Redwood forest" ...

Jeff Bezos said; "No team should be larger than what's possible to comfortably feed on two pizzas". If your git tree looks like guitar hero, you're probably doing some wrong elsewhere. Often the underlying problem is that your teams are too large. Regardless of what your problem is, trying to combat complexity with more of the thing that resulted in your problem in the first thing (complexity), is like trying to fix your head aches by smashing your head to the wall. It might temporarily work due to you passing out, "forgetting" your original head ache, but when you awaken, the only (long lasting) result you'll have is even more head ache ...

For the record, please don't study the cover image for this post looking for answers - Realise instead it is the problem, and implement a "SHIFT DELETE refactor policy" ... ;)

Here's an example of how it should be done - And yes, notice this is one project with more than 40 git trees! Create a forest, don't create guitar hero ...

Top comments (0)