Don't do functional teams

There are multiple ways to organize a development team. You need to take into account your business and the type of work you are doing. Every company is different so is every manager.

So I'm not here to tell you how to organize your team (I couldn't possible do that). I'm here to warn you against the easy way out: functional teams.

This is the most common "organization" I've seen: A database team, a server-side team, a client-side team, a security team...

You get the idea.

I'll let you do your homework about functional teams. Brighter and more experienced people in the industry have talked extensibly about this, so I'm not going to repeat everything said already. I'll do say, however, that they just don't work as you might expect.

If you are working in an application that requires more than one of these teams collaborating together, any virtual walls between them are going to hurt more than help. Functional teams create enough barriers to make your job way more difficult than necessary. It's a perpetual "You can't do that because they have to do it or approve it".

Here it is in the words of Martin Fowler. I'm sure he knows what he's talking about.

Although it seems simple, even obvious, don't fall in the trap. Based on the work you want to do, find a different way.

Have something to say about this post? Get in touch!

Want to read more? Visit the archive.