I went sailing some time ago. For years I used to sail minimum once a year with a group of my friends. But as we got older and built our own lives it became harder to get a group together.
So this year I decided to join another crew. It wasn’t just me thinking that away so we ended up on a boat without knowing each other. Group of total strangers that never met each other before. The only thing we knew about each other was that we all sail. But our skills, sailing knowledge, habits and expectations were completely different. We didn’t know what to expect, what position to take and what responsibilities. Every task was a struggle. The first day was too long and tedious.
It took few days for us to form somehow organized crew. As we got to know each other we started to appreciate and understand other participants. We started to trust. But at first, it was a total disaster.
It’s similar in whenever the team has to form. Also so it is in software development.
A new team doesn’t perform well when it first comes together. Forming a software team takes time. And there are four noticeable stages of that development process: forming, storming, norming and performing were identified by Bruce Tuckman in 1965. Adjourning, a fifth stage, was added by Tuckman about ten years later.
I'm not going to describe those stages here (this time), but if you're interested you can go on and check the rest of the post on my blog.