« Does your code keep you drowning in technical debt? | Are we missing out on true learning opportunities? » |
All around the world, millions of developers trudge to their jobs. They sit in bland cubicles, dealing with pointy-haired bosses who don’t get them, and working on projects, some of which never see the light of day. It’s a meager existence, and they long to do something else. They’re working for the weekend.
I used to do a job like this. I sat in a grey cubicle with my back to the window (don’t ask me why). I worked for a man who thought that delivering client projects was the most important thing on earth and that if weekend plans had to get broken to do it, so be it.
But I don’t want to live a life that lacks meaning and doesn’t impact others. Helping sell a few more widgets doesn’t inspire me. And I don’t think it inspires you either.
So, what can the average developer do to make sure that their life and their work has meaning?
There’s an old expression which says “nobody on their deathbed regrets an hour not spent in the office.” But this assumes that your work lacks meaning or is somehow not important.
Yet I spend a good chunk of my life at work: a third of my day is spent working and often I spend extra time on side projects. That’s a lot of life to spend doing somethingsyll “meaningless.”
This is a big part of why I work for Mozilla. The work I do isn’t meaningless: it’s incredibly important. But even though not everyone can work for Mozilla, you can still find meaning in what you do. Here’s how.
Success comes from small wins, not big ones. Small, meaningful everyday wins that everybody has. A project shipped that impacts thousands. A library being open sourced that makes work easier for people. These are important small wins that you can celebrate.
I know a lot of people that think unless they reach a billion people or sell their company for millions of dollars, they can’t possibly be successful. Rubbish, all of it. The “startup mentality” that plagues these people is dangerous, to their health, their relationships, and their sense of identity.
Small wins. Love them.
I work on a lot of interesting projects that impact a large number of people. For example, I am the chief maintainer of a product called Bouncer, which is responsible for directing people to the Firefox download of their choice. This piece literally touches each and every person who downloads Firefox.
But I also know that my team is critical to the success of Bouncer. I can’t build a cluster or deploy a release. I don’t maintain the databases or update the data in Bouncer. Nor could I: the project would be too big for a single person to take on and manage 100%.
But that doesn’t cheapen the sense of ownership I have in Bouncer. Nor should it cheapen the fact that each person who works on Bouncer has an outsized impact on the open web. Every single person who works on Bouncer, from the IT people who maintain the cluster and handle releases, to the database engineers who keep the database servers running, has a piece of Bouncer. They own it, too.
In the same sense, I own Socorro. This bit of software collects every Firefox crash so we can produce reports and fix bugs. Did I write all the code in Socorro? No; but as part of the team I own the successes and failures along with everyone else.
Teamwork isn’t a bad thing, and owning the successes of the team is a great thing. Teams can do far more than a single individual. Embrace them, and own their success as your own.
There’s a lot of work to be done and money to be made in selling more widgets. But I don’t want any part of it.
Sure, I sell my own products. But in selling my products, they have to fit one of three criteria: they have to either improve communication, embrace community, or encourage curiosity.
I won’t write software that doesn’t do one of these things. I won’t write mailing list software. I won’t work on accounting software. And I don’t care about marketing. Sure, these are lucrative businesses. But they’re not for me.
Developers who are curious? That’s my calling. Making the community better? Sign me up. Expanding communication between groups of people? I’m in.
Selling more widgets? Thanks, but no thanks.
When you look for your next role, or look at your next project, ask yourself: does this fit the criteria for what I care about? If the answer is no, do something else.
In the end, you get to decide what to do with your life. Few of us have to take a specific job as the only one available. We get to choose. Choose wisely, and you’ll make an impact you never imagined possible.
Brandon Savage is the author of Mastering Object Oriented PHP and Practical Design Patterns in PHP
Posted on 4/19/2013 at 7:00 am
Hikari wrote at 4/23/2013 3:21 pm:
The biggest issue is money. Only who has more than enough money think it’s not an issue.
We aim to work on what we want, and to earn enough money. I’ve already worked on trash work and earned little money, that’s the worse and I almost died. I’ve also worked developing software, software I liked, but had no money coming from it. There are ppl that work on stuff they don’t like, but they get enough money to make what they like as their hobby.
Fun thoughts you had, I liked it.
« Does your code keep you drowning in technical debt? | Are we missing out on true learning opportunities? » |