Some people ask me why I'm not doing my own startup. And the answer is I'm sure I will eventually - but not right now. For me, it's not about a big exit, but a big impact. There is a number of things that I could be doing with my time, including scrambling together a team to attack an idea largely for its own sake. But ultimately, I want to be im a place where I can tackle large ideas. That's how I approach my deicions right now: will this course of action position me to work on things that matter and make a difference in people's lives?
Right now, that path is software engineering. But importantly, I want to focus my efforts on the top layer, the membrane between the electronic bits and actual humans. The part that people see, touch, experience. If I do my job right in this area, they won't even notice the interface, but they'll experience joy, accomplish their tasks, or gain new understandings of themselves and the world around them. The technology is cool and shiny, and it's easy to get caught up in that, but I'm serious when I say the technology is only a means to a very human end.
So, the interface is what I want to create. But where do I want to do this? In his book The Passionate Programmer, Chad Fowler compares the career of an engineer to that of a musician. Growth requires practice, but moreover it requires collaboration and feedback with people better than you. Specifically, he advises "always be the worst player in any band you're in".
In developmental psychology, there's an idea called the zone of proximal development. This is the area of skills and knowledge that is just beyond your present level, and its this knowledge which is most engaging. Since it's similar to what you already know, you have a good foundation for developing the relations between concepts and facts. Since it's new material, it expands your knowledge and skills. The key then is to stay in this zone, to constantly push to take on new challenges, technologies, problems, in a way that builds on your existing experiences.
I feel I'm a pretty competent programmer, and I pick up on new concepts very quickly. Thus, my imperative is to surround myself with committed, passionate software players and creators. I want to be part of a world-class, high-impact, high-performance team. In service of the ultimate goal of working at the problem level - which will require a mix of technical, analytical, social, and business skills - I must seek out the best possible team in which to grow, learn, and contribute.
Finding the right team is tricky.
Great teams can only truly thrive in organizations with certain traits: Trust in team members over processes. Value people as a whole, not as a templated, arbitrarily-tilted job description. Encourage both internal and external communication of a shared vision, even at the expense of giving up some nominal control. Everyone should be empowered - and expected - to articulate the overall vision of the organization and understand how it relates back to their daily work.
The Adam Pisoni, Co-Founder and CTO of Yammer, gave a talk recently where he characterized heavily bureaucratic and process-driven organizations quite well. In these organizations, he says, "you won't do it wrong, you also won't do it better." This kind of aspiration to mediocrity is fundamentally antithetical to my world view. I want to move people forward.
Reach out to me on twitter @leJDen