This note is about alignment in term of concepts while discussing any topic.
Working in a multi-cultural company has it’s own benefit and tricky things. People come from different styles, different behaviours. One thing common among us is, we want to solve our customer’s problem. The most important part in a discussion is to be aligned on the topic that is being discussed. Being able to understand the terminologies that is being used in the discussion, really helps everyone.
It can happen that people arguing about the same thing for some time. Even if they don’t argue, but keep talking same about the same thing, that is more worse than just wasting the time. It creates miscommunication/confusion and people have to revisit the same issue after a few days or week. “Formal definition” is here to rescue.
What the heck is this “formal definition” ?
Any form of representation that can be seen/read by more than one person at the same time, can be considered as a formal definition.It can be in written form ( i.e. documentation, wiki, email etc.) or visualised form ( i.e. diagrams, flowchart… etc.). These persistent things helps people to look at together and thus tie on what each one is talking about.
- What is the benefit of “formal definition”: It’s easy to follow up with defined terminologies. It’s kind of a quantisation. With formal definition, people can argue about the specific system, avoiding personal conflicts. Once things are quantised, we can compare among solutions, we can discard old/suboptimal stuff and explore better stuff.
- Why waste time in explaining if we can just fix it in minutes: Well, we are developers/engineers. We can fix things quickly. But for other people or for a developer who doesn’t have the context, will spend more time in understanding what we just did in two minutes. Some situations it might take more time than making a formal definition.
- Traps of not doing formal definition : There is a common scenario when people say “we are just building things”, “the thing is changing too much” or “it’s too early to write formal documentation”. All these phrases are valid, and we all know that premature documentation is costly to maintain. But we need to make sure we have at least high+mid level definitions from where people can start further documentation.
- When is “formal definition” not required : Formal definition might not be required when people work alone and don’t have to explain things to others. In booking.com we don’t have much of these scenarios.
Dude, isn’t it what we call ‘documentation’ ?
It is close to documentation. It’s a marketing technique to sell similar product in new packets :p The reason why I avoided “documentation” because I think there is a different perspective. Just “documentation” isn’t helpful. Making sure audiences are aware of the documentation is also important. We need to tie terminologies with context. The part I want to emphasise is whenever we have discussions with another person, we might be thinking that the other person already knows this. But in reality it may not be. With ‘formal definition’ keeping in mind, explaining the terminologies upfront, we can improve the outcome. Or at least that’s how we keep us aligned 🙂