"We are going to implement Hadoop in the company."
"OK. Just to understand better, which problem are we trying to solve?"
"We want to have a single source of truth for all our data."
"OK, I understand. Which problem exactly is Hadoop going to solve?"
"The CTO went to the conference and heard that Hadoop was the way we should do things now."
"OK. Do we know which exact problems would Hadoop help us solve?"
"Hm... that's a good question."
"We are going to put parameters of this machine learning model in the configuration file."
"OK. To understand, which problem would this solve?"
"It will make the model easily modifiable by business-users."
"I understand. Are there any business users who would use it? Which problem would we solve by that?"
"Currently, it's just us developers touching the code, but it might happen in future."
"Hm, OK. So is there an actual problem we are solving by doing this?"
"Hm... good question."
The purpose of teams is to solve problems. Each problem has a root cause which triggers complications to a customer. A customer is an actual person or a group. A customer can be internal within the company or external.
Without a clear understanding of the root cause and the customer, a problem cannot be solved effectively. Without a root cause, we might be solving a non-existent or a wrong problem. Without a customer, it's not possible to validate if the solution resolves the problem.
Do you know the root causes and the customers of projects you currently work on?