Good engineers have high expectations for themselves, but also for others. They are passionate, and want everything perfect. In many cases, that make them a bit arrogant and not easy to work with. Eric Schimdt from Google calls that "techno arrogance":
http://www.msnbc.msn.com/id/10296177/site/newsweek/print/1/displaymode/1098/
The unfortunate impact is that, although they have a good potential thanks to their technical skills, they may not be the most successful over the years – falling again and again into the same trap: “I am just working with a bunch of idiots, let me see if the grass is greener elsewhere”. So all the good guys leave, less technical people are getting promoted and companies become dumber and dumber. We don't want that to happen, fight back !
Without any doubt, great technical skills are a must have.
A single bad engineer can ruin an entire development team. However if you bet everything on the technical stuff, you will be useful only for firefighting and emergency calls. Although your manager will love you to clean up the mess, a successful development organization should not spend all its time working on firefighting. Probably 10% of the work will be relevant, the rest is about developing projects. That means you will be useful for 10% of the time, provide ultimately little value to the company, and consequently not successful in your career. However, let me precise there is a market for that – exceptional people at doing firefighting can find a job. Problem is, most people don’t like doing that but do not have the people skills to do anything else.
The technical skills need to go hand-to-hand with the ability to work as a team. Great technical skills do not compensate for poor communication, at the opposite they require even better people skills to reach their full potential.
Why’s that ? Because for the simplest problems, you can just go and solve it on your own. But the really difficult problems are hard to understand, and not formalized yet. You need to take the perspective of multiple persons, abstract them out and create an elegant conceptual model. Too often technical people are so passionate about the technical stuff that they jump on it. Just like a runner who does not take the time to read the map first. Because they don’t like talking to “simple” people – afterall if these people were smart they could solve the problem by themselves – they focus on the wrong problem to solve.
The other thing which is nice with simple people, is that they require simple solutions. Ever heard about EJBs ? It almost died because it has been designed by too smart guys. The result was an overly complex platform that could barely be used by common mortals. Speaking to non-specialists gives you a “fresh view”. Makes you adopt simpler solutions, easier to maintain and change. I have been architect at eBay for 3 years. You make think you need to be an expert for that ? Well, not really. My main skill was to be able to make people speak and most of the time the solution was coming from them, I was asking the right questions but individual developers who has been dreaming about their code for weeks often know -sometimes uncounsciously - the solution inside them.
Finally, one should realize that hard problems often requires a lot of manpower to execute. A lot for me means more than 1, when one single person cannot do everything on their own. You thus need to convince others that your solution is right, and make them willing to implement it. Even if you try to force it down their throat (you can probably do that a few times before they get you fired, or - even worse - that you stay but they leave to the competitor), they need to have all the context to make the call as decisions need to be made. Ever happen to you that your great vision was not implemented correctly ? Well, you can only blame it on yourself: you did not empower people to do the right thing.
You may not be convinced by all of that. But your manager certainly is ! Believe me, they're awful (I know it bc I am one myself). If you are looking for more responsibilities, want to drive more innovative projects you need to be trusted. For most managers it is easier to evaluate somebody on his/her people skills than go deep into their technical expertise – for instance because they don’t understand anything about the technical stuff. So “looking good” is an easy way to reach your end goal. Come-on, admit you also to the dentist to get your teethes whiten? ;)
In summary, if you want to be a great technologist you have all the reasons of the world to develop your people skills along your technical expertise.
Wednesday, August 6, 2008
Subscribe to:
Posts (Atom)