Sometimes what you want to be is best defined by what you do not want to be.
Success-Factors CEO Lars Dalgaard has a passion for developing a company where employees are nice to each other. This point of course, is described much more articulately by his passionate hatred of ass-holes than it is by his love of niceness in the workplace.
The folks at 37Signals define this as picking a fight. They explain:
Sometimes the best way to know what your app should be is to know what it shouldn't be. Figure out your app's enemy and you'll shine a light on where you need to go.
When we decided to create project management software, we knew Microsoft Project was the gorilla in the room. Instead of fearing the gorilla, we used it as a motivator. We decided Basecamp would be something completely different, the anti-Project.
They explain why picking a fight helps:
One bonus you get from having an enemy is a very clear marketing message. People are stoked by conflict. And they also understand a product by comparing it to others. With a chosen enemy, you're feeding people a story they want to hear. Not only will they understand your product better and faster, they'll take sides. And that's a sure-fire way to get attention and ignite passion.
Jeff Atwood refers to this process of picking up a fight as having an arch enemy.
Overall, advice from Jeff and the folks at 37signals is just as relevant to career building and life as it is for product development.
As a part of my day time job, I interview countless young and budding developers around the world. Honestly, even today, after years this excersise, I continue to be amazed by the level of indifference most candidates demonstrate during their interview. They will move from .NET to PHP and Scrum to CMM Level 5 implementations, with no personal preferences what-so-ever, only if you were to hand them the job they seem to need so desperately.
In a world where most programmers can't program, and only a minuscule number of them are capable of forming their own opinion on anything; asking them to feel so passionately about a way of building software, a technology or any idea for that matter; that they start considering it their arch enemy or friend might be too much to ask for them.
On the other hand, if you are reading this blog; chances are high that you do not fall in this category of programmers. Chances are also high that you take your work passionately and consider it more than just a way of earning your lively-hood; and that dear reader, implies that you need to find your arch enemy.
During the early days of my career, I lived the life of a conventional good programmer climbing the ladders of promotion year after year with a passion for programming and a will to learn whatever it takes to get those promotions. Life was both comfortable and highly boring; till the time my first successful failure defined my arch enemy for me. Honestly this project did the job of defining my enemy much more clearly than I would have hoped.
Since then I've passionately hated all forms of stupidity that happens in the name of organized process and corporate culture.
My name is Pops, I write shitty code with bugs and my arch enemies include stupidity, lame conventional management ideas and incompetence camouflaged under jargons, the pretense of so-called 'serious software development' and 'process'.
It is of-course a hugely big enemy to pick; as it turns out, there is more stupidity in the world of software development then there is common sense. Take a quick look; chances are high that you'll find it all around you.
Picking up fights with this mammoth arch enemy has allowed me to bring about small changes in my universe. It has taught me more about being a better software developer, a better manager and above all a better human being. Much better than what I would have ever learned to be had it not involved working passionately at learning how to beat this arch enemy.
As far as the fight is concerned; it is far from over yet.
Have you picked your arch enemy yet dear reader?
Which fights are you fighting?
If you have no enemies and no wars to fight, you might be missing out on a whole of lot exciting challenges, passionate struggle of thoughts and above all an ability to be 'remarkable'.
Whether you are building a product, building a career or building a life; having an arch enemy is much more important than most people think.
Pick a colossal arch enemy and then work passionately to wipe out it's existence from the surface of this planet.
I wish you good luck.