Hacker News new | ask | show | jobs
by geofft 3544 days ago
That seems like a way to exacerbate Conway's law problems https://en.wikipedia.org/wiki/Conway%27s_law . Most of the technical debt I try to fight off is based on my team doing something that makes sense for us based on what we're good at / what we think other teams want, but doesn't line up with what other teams want / what they think we can deliver; we end up essentially building abstraction layers around other teams, and they build abstraction layers around us.

If you put everyone in a private office and default conversations to email lists / group chat (which is the model that basically the entire open source community uses), that's fine. If you have an open floor plan where it's easy to wander over to another team's area, that's also fine. But making it super easy for your own team to talk without other people hearing seems the worst of both worlds; you have all the distraction problems of open floor plans (every conversation concerns you), and you don't get the organic conversations that open floor plans are supposed to promote.

3 comments

It sounds like you are trying to compensate for a lack of systems engineering by changing the office layout. You shouldn't be relying on serendipitously overheard conversations for coordinating things like this.
I upvoted both you and parent:

On one hand I totally agree with you. On the other hand Conways law exist for a reason.

I see no reason why this shouldn't be another case of "[...] these ought you to have done, and not to leave the other undone."

Yeah, I am inclined to agree. However, part of systems engineering is figuring out where technical conversations happen. Apache has "if it didn't happen on the mailing list, it didn't happen" as a rule precisely because they want to avoid the unreliability of serendipitously overhearing conversations, precisely because that's important to how they engineer systems. I would be a fan of a system design / an office layout where everyone has a private room and all conversations default to happening in email or group chat, and in-person conversations (which are, on occasion, definitely needed!) require some activation energy.

However, lots of in-person offices like these serendipitous conversations, and that's often pitched as an advantage of open plan layouts. That's also pitched as an advantage of getting lunch together, team outings, etc. etc. If you're going to decide to use this advantage (which I think is okay, but suboptimal), you had better put some systems engineering thought into how you want to use this advantage.

That's a project management problem, not an interior design problem.
I see Conway's Law as a statement about the world, not a class of problems. Team size is capped by human nature, and systems will develop to mirror team sizes. The only solution is to find lower-communication "seams" for both your team boundaries and your system boundaries.

Abstraction layers around teams sounds like a good thing, as long as they abstraction layers make sense.

Abstraction layers around systems are a good thing. Teams have all sorts of weird properties, like a manager's willingness to focus on problems or recruit certain types of people. In an ideal world, teams and systems line up; in practice they don't, and Conway's Law is that the system design starts to conform to the team structure instead of vice versa.