The Power of Silly Questions

Nothing is obvious in software development.


Never touch a running system!” is perhaps the worst advice one can give or receive in software development. The only thing worse than reinventing the wheel repeatedly is preventing innovation altogether. Redesigning something already invented is highly inefficient, but there’s still a chance of progress. Stagnation contradicts the essence of progress upon which civilization has thrived. What’s more, things rarely remain static; they tend to corrode over time.

So, why should the system not be touched? What might break? Can we improve it? How about implementing automated tests to ensure that critical functionality remains intact when changes are made?

Questions like these are crucial in agile software development, where changes must be embraced as opportunities for improvement.

Silly questions

Why do we use this framework/library? Why do we follow this process? Can we automate this? Do our users really need this feature? What does this code actually do? What happens when I remove it?

Every time you ask a question like this and the answer is something along the lines of “it has always been this way” or simply “I don’t know” you’ve identified a problem or discovered an area for improvement.

Although those questions might seem trivial at first, they are actually quite profound. While the answers may appear obvious, they often aren’t. Even experienced team members might find it challenging to provide a satisfactory response. If the questions are easy to answer, there’s no harm in asking them. Either way, there are no silly questions!

Cultural challenges

If “silly” questions are generally beneficial, why are they asked so infrequently? The issue often lies within the team culture.

Culture is a means of establishing beneficial practices, which can sometimes be unintuitive or challenging given human nature.

If a question sounds silly, will I appear silly asking it? Shouldn’t I already know the answer? Such fears are natural; nobody wants to appear foolish, especially as a new team member or a seasoned veteran with years of experience.

It’s the team culture that can address this issue. By fostering a safe environment, we can encourage a curious mindset and critical thinking, which are essential for making significant discoveries and improvements. Techniques such as the Five Whys and involving all team members in the decision-making process can be incredibly valuable.

Good leadership can also facilitate this behavior. A senior developer should not be ashamed of making a mistake, not knowing everything, or asking for help. By setting a positive example, she can encourage younger peers to feel secure about their own uncertainties and eliminate the fear of asking questions. Ultimately, it’s all about the people!

Conclusion

Methods and practices are beneficial, but they should never be followed dogmatically. There’s nothing so obvious that it should not be questioned. Cherish silly questions, as they prevent stagnation and may prove invaluable one day.

Happy questioning!