Agile Tips

#03-Always Ask Why

April 08, 2024 Scott L. Bain Season 1 Episode 3
#03-Always Ask Why
Agile Tips
More Info
Agile Tips
#03-Always Ask Why
Apr 08, 2024 Season 1 Episode 3
Scott L. Bain

Most of us do not ask "why" enough.  Let's look at the effects of this problem, and what to do about it.

Show Notes Transcript

Most of us do not ask "why" enough.  Let's look at the effects of this problem, and what to do about it.

We should ask "why" much more often than we do and we should include more people in the question.  This is especially true of technical people but it's true of everyone to some degree.

 Why do we not ask why?

  • It could be that we are loathe to reveal our ignorance about something.
  • It could be that we think the answer is obvious, or that we know it already.
  • It could be that we're sure the person we would ask does not know the answer anyway.
  • It could be that we believe it's above our authority to question decisions made by others.

But the truth is it is everyone's right to ask why we are doing something, be it a requirement, a process task, a meeting, anything. I would say it's actually a responsibility.  Let me explain:

I was once working on a complex financial system.  Part of this work involved taking monetary transfers and applying them to the various accounts involved, in a database.  We were using a pull system, a form of Kanban, to retrieve tasks for the team to accomplish during the iteration of work.

The team pulled this one: "create a safe way to back out a transfer if there is not enough space in the database to accommodate it fully."

This was a high-capacity system being used from all over the organization and we knew that if a transfer got only partially recorded this could result in lost funds, database corruption, legal and policy violations, all manner of nastiness.  Also the workflow for making these transfers had many complex steps during which other activities happening at the same time could prevent completion by filling up the database before the workflow was complete.

We spent most of our time in the iteration working on this.  It was extremely involved, had to be right, and was basically a ton of effort.  At the next review we proudly presented our accomplished work.

The database administrator was in the meeting.  They said "what was the purpose of this?" The tech lead who had written the requirement said "we need to make sure we don't corrupt information if the database server runs out of space during a commit."

The DBA shook their head.  "That's impossible.  Anytime we get over 75% full we simply add more space.  We never run out of space. If we did many other disasters would result so we already ensure this cannot happen. This new functionality will never be used."

We had not asked why.  The tech lead had not questioned their own reasoning.  Worse, nobody had talked to the DBA at all.

  • If you think you should not display your lack of knowledge, you're allowing your pride to impede your professional progress.  The culture we promote should encourage questions, and never punish them.
  • If you think the question is obvious then realize that you may be completely wrong about that.  What's obvious to one person may not be to another, and nobody knows everything.
  • If you think the receiver of the question won't know the answer, what does it cost you to ask? Maybe they know more than you imagine. They may even lead you to a new question, or a form of the question that you're not thinking of. 
  • If you think it's not your place to ask, remember that your time and effort are the most expensive part of making software, by far.  By asking why we are doing something you can often avoid wasting it.  Also, it's not just a question of whether or not something should be done at all, but also if there might be a better way to do it.

Asking questions is one of the most powerful things you can do as a human. You are receiving someone's knowledge while simultaneously strengthening their understanding on the topic.  You never understand anything as well as when you have to explain it to someone else.

Ask why.  Ask everyone that is involved. Encourage them to do the same with you. It won't always pay dividends but when it does you'll be very happy you did it.