3 Things You Can Do to Improve as a Developer

John Papa on March 05, 2019

cross posted to johnpapa.net We Solved It! But What did We Solve? As developers, we are faced with complex problems daily. The good ... [Read Full]
markdown guide

Do you have any advice on how to ask "why" in a way that avoids the other person feeling as though you're challenging them in a negative way? Some people react negatively to a "why" question, especially when they may never have considered why they are doing something.


This is a GREAT question, Michael!

You're right that the way we ask is just as important, if not more important, than what we ask. Nobody wants to feel threatened or having to defend a position on the spot.

Maybe I'll write a post on this, but here are some short techniques I use:

  1. ask "Yes and" instead of why. This affirms the point as being good instead of moving right to the question

    Yes, and I wonder how we can help the user know what to do next on that screen?

  2. ask "how" instead of why. We just did this above, too ... asking "how" offers a thought provoking way of thinking through the scenario.

  3. Thank the person for sharing their insight or solution to a problem before asking for more detail. This is just respectful and if you do it sincerely, it helps people open up and reduce the chance of making them feel defensive.

    Thank you for thinking this through so extensively and sharing it with us. I love the direction and I have a few questions.

  4. Take your time to appreciate the other person's point of view, listen, and be aware of body language.

  5. Most importantly - be sincere about wanting to know more and help.


I love the five whys, but once you get used to it, you tend to find that layer 2 or 3 is almost never a single thing, and it tends to spider out from there. Balancing the razor point of the 5 whys against stepping back and taking in the big picture is where I still have trouble.

If you’re trying to decide how to turn the titanic earlier, following that rabbit hole too closely will not solve the (arguably much more important) problems of “we want all the bulkhead seals to close properly” and “we need enough lifeboats” and “someone needs to invent radar” and “proper supply chain quality control for materials”. (Thanks to @swiftonsecurity for this example.)

Being able to know when you need to switch from your loupe to your panoramic mountaintop view is a skill that I am finding difficult to practice intentionally. It’s more of a “gut feeling” right now.


Yes - absolutely! This can spider out in a few directions. I feel that this is OK, because as long as it is on topic, it helps really validate and reaffirm that the strategy is solid. Or it helps validate that we need a little more design to make it solid.

The key is to not let this stop you from iterating either. Create something, gather feedback, and adjust - quickly.


Speaking of my experiences, asking for help and providing help for others are the most important things one can do to improve yourself if you reached a certain level of knowledge. Discussing and trying to solve problems that you or somebody else has enlightens me every once in a while, maybe because these problems are mostly edge cases where very specific knowledge and "thinking outside the box" is necessary.


Hey John, great stuff about asking questions and the importance of "why".

Lots of deep insights come out if you pause before answering a technical question, and first try to figure out why the question was asked in the first place.

Then you can get closer to finding out what problem they're actually trying to solve.


The idea of helping others in accomplishing their goals is really satisfactory,you have very well captured that empathy in your writings.I often choose to help others(professionally),although sometimes the environment is not so friendly or doesn't believe in helping others in achieving their goals.
As a developer ,I am always in pursuit of solutions to some problems ,post reading your blog ,i am persuaded that often I am in search of solutions to unwanted problems that may be because I am addicted to my method and zest of solutions building.
However I have not yet achieved the idea of sharing my findings or way of problem solving that's not because I don't want to but may be still undermining my capabilities.
Hope similar findings and blogs from developer community will help me accomplish the leftovers.


I'm glad this got you thinking :)

Believe in yourself - you have skills and experience unique to you. Share them when you are ready

code of conduct - report abuse