Someone asked me about a year ago what skills I felt made for good leadership. They themselves were unable to put into words what I displayed that made them feel I had the qualities of a good leader. I've been pondering my response to them for some time.
Before this person wrote those words to me I hadn't really considered myself much of a leader. I have found myself time and again in leadership vacuums. I recognize the void and insert myself into it because someone has to. This can be unbidden and unwelcome by those whose job is to be filling the void. Over time I've developed an understanding and achieved a better balance when choosing when and where to apply my leadership skills.
Honestly I still don't have a good answer for their question. I'll keep working on it. Having said that, someone recently expressed some ideas that resonated with my feelings and experience on personal development and how to attack big problems. She's been in the game much longer than I have so I value what she has to say. I'd like to share some of her views here.
Kathy Sierra recently spoke at an O'Reilly conference. She spoke about how to learn new skills and break concepts into smaller pieces so they are actionable and reasonably achievable. Kathy also discusses how some skills are hard to teach or describe. She remarks that these skills often have a lot to do with our brain's innate ability to recognize patterns at a subconscious level.
I have watched this video five times today. She starts off asking if there are any unicorns in the crowd. If I were there, I'd have to raise my hand. I have a unique, almost legendary set of qualities that seem to elude many developers. More importantly it eludes employers. Employers know there are some of us out there. We're expected to be infallible, and always-on. It can be extremely stressful.
"Cognitive processing and will-power are the same set of resources." says Kathy of scientific findings. "You burn one and you burn the other." I'm willing to bet that guilt, sadness, and emotions are also burning through your cognitive processing energy. For those who are dedicated to their jobs and strive to live up to extraordinary expectations guilt of not meeting excessive expectations can be debilitating.
One of my strengths is being able to 'turn off' my emotional distractions when I sit down at my desk. (Most of the time at least.) Also, being honest is actually less exhaustive in terms of cognitive energy. So I focus on being honest with myself, coworkers and clients.
Practice sessions need to be forty-five minutes at minimum. I've always felt that developers need at minimum forty-five minutes for a productive session of programming. Kathy suggests that three 45-90 minute practice sessions focused on the same thing gets you pretty darn close to being an expert at that thing.
Another skill I possess is the ability to look at code and recognize patterns and find non-working code very quickly. This requires seeing a lot of code. I've written a far more code than I've ever released. Perhaps part of my expertise comes from making many mistakes. I may not remember the mistake itself but I remember the pattern that produced that mistake.
Hopefully these words will make a difference to someone. If nothing else they will serve as a reminder to my future self.