Even if you have never had to answer this classic interview question, it’s one that you should occassionally ask yourself. By thinking through an honest answer, you can uncover, and therefore correct, weaknesses that may be holding you back.
When I ask myself this question, I have to give myself some context. When interviewing, the context is usually the position for which you are interviewing for. To set the stage for my answer, I imagine that I’m interviewing as a programmer, manager, product owner, husband, father, etc. This enables me to focus on the area I wish to improve.
Be Honest with Yourself
I have learned that when I reflect on my “biggest weakness” from any of the contexts, I can trace it back to a root cause - my biggest weakness, if you will.
Asking "Why?" five times is one method I have used to hone in on the root cause. But don’t fall into traps! If you answer the questions dishonestly, or sugarcoat them, you could miss your root cause. If you lie to yourself, you will only be hurting yourself. The truth may hurt, but it will also set you free.
I believe my biggest weakness to be influencing others to my ideas. I have pretty good instincts when something is right or wrong, but don’t always have the ability to articulate why. I need to discuss the situation, bounce ideas off of trusted friends, and think it through from other perspectives. Only then do I feel I undestand the story well enough to make a decent case. However, even when I am able to get people to start thinking my way, I have found that to really get people hooked, I need to show some proof.
Trying different technologies
I believe that functional programming is better suited to solving particular problems than object oriented programming. I have talked about F# for a couple of years now at user groups and regional conferences. Despite that, our company does not have any F# in production.
I have deep philosophical objections to estimating software. I basically view it as a form of lying; and a lie where everybody knows it’s a lie. It’s a stupid, time-wasting endeavor that only provides management and stakeholders with a false sense of control over a process that they do not understand. I believe there are more effective and productive ways to get insight to and gain control over the development process. Despite this, we are still asked for estimates.
The idea of saving for something - a new gadget, a vacation, a car - may seem insurmountable to many. Companies “make it easy” for you to buy something by showing you “low monthly payments”. People convince themselves, “I can afford $50 a month”, but may not realize that they are giving up $50 of their income for many months (sometimes years). $50 here, $200 there, $20 again…it all adds up. Before you know it, the convenience of the “low monthly payment” has eaten up your disposable income therby limiting your ability to take advantage of other opportunities, and exposing you to risks should an emergency occur.
I have not been successful (yet) with the two examples from the software profession. However, I have had success with my personal finances - but only after my wife and I started seeing the benefits of having control over our disposable income.
So that’s the secret! Show success!
I can show that F# can be a more reasonable solution by taking a small problem, writing it in F#, and comparing it to a C# solution. I can show that it is possible to run a project without estimating by creating many opportunities for feedback allowing stakeholders to know precisely where a project is in its development, and enabling them to steer the product where it needs to go.
I Have a Formula
When looking at a specific problem, I believe that the parties involved share the same objectives. What differs is the means in which to achieve them. In order to win people over, I try this two step process:
- Be thoughtful in my arguments to gain plausability with my ideas.
- Win people over by running a low-risk experiment to prove that the ideas can be successful.
The formula is simple, but not easy. I don’t always have the words to be thoughtful, and sometimes a low-risk experiment isn’t evident. These are the things I try to work on the most.
I reflect quite a bit on situations that I am in - both positive and negative. A good deal of that reflection involves thinking through what I can do to make things better. Being honest about my weaknesses has been an invaluable tool toward that end. If I don’t know my weaknesses, how do I know what to work on?
So ask yourself, “What’s my biggest weakness?”