We strongly believe that at its core, there are two types of careers — artisans and brokers. In fact, we would argue that in every career, there are two paths that present themselves over time — to be an artisan or to be a broker.
Software is no exception. 3-5 years into the career, most engineers and developers are faced with the choice of whether to be specialist programmers (artisans) or to take on project and product managerial roles (brokers) that have the potential to fast-track them into management. For a long time, prior to the our current age of the gilded startup when techies are celebrated for their technological acumen alone, management was the only viable option that had a career path. So the story of software is riddled with great programmers who became bad bosses. Those with little training and inclination to lead forced into roles as the only means forward in their career.
While that has not completely gone away, that is fast changing. As the web and mobile create lots of technical opportunities, and technological behemoths and startups increasingly invest in technical talent as much as, or sometimes more than managerial talent, it is actually possible to have a choice.
So here are our 3 guidelines for proactively managing a software career:
1. Don’t eliminate options until you have options
Don’t eliminate options until you have options is safe advice from Torey McMurdo on this excellent quora thread with tons of great advice. While this fork in the road is looming, you don’t need to make the choice until it is presented to you, so keep an open mind, meet lots of people and evaluate lots of opportunities
2. Get prepared
While you preserve option value, you still have a sense of what you are good at. Start preparing now. If you want to be a manager, start reading and put yourself in leadership roles. Sign up for leadership training. Read the best the web has to offer like this fantastic guide by Joel Spolsky, one of our favorite writers on software management. If you want to choose the artisan route, get deep. Really deep. Understand the latest technologies and tinker. Work with open source. Read research and white papers. Sign up for certifications and technical training
3. Think outside the box
Sometimes the most enjoyable challenges are places you haven’t thought to look, and sometimes to be better at a technology career, you need broaden your horizons outside of technology. Have you considered a career in startups or non-profits? Tried living in another country? Learn a new (non-software) language or a music instrument. Its no coincidence that the greatest minds — Einstein, Gandhi, Jobs, Newton — all had varied interests. And those interests helped them shape their ideas, their identities and their careers in ways that were impactful, and previously unimaginable. As the German philosopher Arthur Schopenhauer wisely said: > Talent hits a target no one else can hit; Genius hits a target no one else can see” A richly textured life can sometimes allow you to see the world in ways that are truly unique.
Regardless of which path you choose, make your career a daily habit.