Software engineers should ask questions

2025-03-28

inherited codebase

(Image generated using ChatGPT)

Software engineering is not just about writing code, it’s about solving the right problems. Yet, many engineers hesitate to ask questions that would help them understand their work, their user stories, or how a feature fits into the larger business context. Instead of engaging product managers, designers, or business stakeholders through curiosity, they often walk away with assumptions.

"Stay hungry, stay foolish." – Steve Jobs

The Story of Aditya: A Costly Assumption

Aditya had just started his dream job as a software engineer at a promising tech startup. During a sprint planning meeting, the product manager outlined a user story:

User Story: "As a user, I want to receive notifications about new updates relevant to my preferences so that I can stay informed."

Aditya listened, nodded, but did not ask any questions and assumed it meant sending notifications to users periodically. He didn't seek any clarification on what "relevant to my preferences" meant, no details on how frequently notifications should be sent, and no discussion on whether users could customize their preferences.

Over the next sprint, Aditya built a time-based notification system that sent generic updates to all users. When he finally demoed it, the product manager frowned. "This isn’t what we needed," they said. "Users were supposed to receive notifications based on their engagement behavior and explicit preferences, not just random updates."

Aditya had spent entire sprint working on something that didn’t align with the business needs. A few simple questions like "What defines relevance? How does a user set their preferences? Should we consider engagement history?" could have saved time, effort, and frustration. Instead, his reluctance to engage in a conversation cost him a sprint’s worth of work.

This scenario plays out too often in software teams. Engineers hesitate to ask product managers, designers, or business stakeholders questions about the larger picture. Instead, they make assumptions, leading to misaligned features, wasted effort, and missed opportunities for innovation.

 

Hurdles to asking questions

Despite being problem-solvers by nature, software engineers often avoid engaging deeply with the "why" behind their tasks. Let's explore some of the factors that contribute to this behavior:

1. Fear of appearing uninformed

Engineers may feel that asking product or business questions will make them seem inexperienced or out of touch. What if their question is stupid or irrelevant? What if their question is un-related to the discussion at hand? Many such fears often keep engineers from asking any questions.

"He who asks a question is a fool for five minutes; he who does not ask a question remains a fool forever." – Chinese Proverb

2. Tunnel vision on implementation

Many engineers focus so much on "how" to build something that they forget to ask "why" it’s being built in the first place. These engineers are passionate on their craft. They are thinking about design patterns to apply, how to de-couple and ensure the solution is extensible. Their brains go into an overdrive on solution design without wasting a second.

3. Lack of cross-functional communication

Engineers may see product managers and business stakeholders as separate entities, leading to minimal direct engagement. They often build reliance on a Tech SME or an Architect and expect them to ask all the questions.

4. Time constraints

When engineers are under pressure to deliver, they might believe they don’t have the time to ask clarifying questions, assuming that figuring things out later is more efficient. They do not wish to spend upfront time understanding all the stories but decide to do the analysis when they pick up the stories to work on.

5. Cultural aspect

Many educational systems and work cultures discourage questioning authority or established processes, leading engineers to accept requirements without deeper inquiry. Engineers coming from such a system would expect that the processes to ensure all the requirements to be documented in full details are in place, while their own role being reduced to just code as per what is documented.

6. Self-confidence issues

Some engineers, especially juniors, are nervous to speak up in a group setting. They hesitate to ask questions out of fear that they might look incompetent. Some might even freeze at the thought of speaking up. These engineers might need help in the form of some communication training.

7. Attitude of indifference

This is by far the most problematic factor. Here, engineers think, "It’s not my problem, I just build what I’m told". They operate with I don't care attitude. This lack of ownership can lead to subpar solutions that don’t serve the end-user effectively.

 

The consequences of not asking questions

Failing to ask questions doesn’t just affect individual engineers but it has a ripple effect on the entire organization.

Jeff Bezos, once said, "If you don’t understand the details of your business, you are going to fail." This applies to software engineers too, understanding the "why" is just as important as mastering the "how."

 

How can we change this culture?

To create a culture where engineers actively engage with the bigger picture, both individuals and organizations need to take action:

 

"The important thing is not to stop questioning. Curiosity has its own reason for existing." - Albert Einstein

 

Conclusion

So next time you receive a task, don’t just nod and start coding. Pause, think, and ask: "Why does this matter?" It could be the question that changes everything.