- One of the most important ideas
in the Agile Manifesto is
that teams should favor individuals and interactions
over processes and tools.
The original work group that developed the Agile Manifesto
put a lot of emphasis on how team members communicate,
that's because they knew that most software projects fail.
Not because of some overwhelming technical challenge.
Instead, these projects fail because of bad communication.
They thought the fix for this was putting
much more emphasis on face-to-face interactions.
But why do you think that is?
I mean face to face meetings
aren't the only way to improve your communication.
Why do you need to be in the same room?
The reason is that face-to-face communication and
cross-functional self-organized teams
are actually closely related.
Remember that Agile teams want to distribute their expertise
to everyone else in the team,
everyone on an Agile team should always
be teaching and learning.
That's usually quite a bit different
from how most teams operate.
Typically there'll be an expert whose opinion
has much more weight.
So a database developer might just let everyone know
what they're doing with the database.
But when that happens,
it gets really difficult for a team to have
a shared understanding about the product.
They could end up doing something called groupthink.
That's when a few experts make a convincing argument
and the rest of the team just follows along.
Something like Sam says it's a good idea,
so it must be right.
An Agile team should avoid groupthink because everyone
should be able to ask challenging questions
about the product.
That means that a tester should be able to ask a database
developer about their design of the database.
On an Agile team,
if you can't simply explain your thinking to someone else,
then it's probably not a well-designed solution.
So the team should always be having these face-to-face
meetings where everyone's contributing their ideas
and asking challenging questions.
It's a key part of being a self-organized team.