The 501 Developer Manifesto
501manifesto.org
501manifesto.org
It's just 8 hours a day. 5 days a week. Roughly 25% of your life. Another 33.3% is spent asleep. Maybe you commute to work; maybe that takes you 45 minutes each way. That's 4.4% of your life spent driving, walking, on trains or buses to get to your job. You're going to spend a small percentage of your life on the toilet; another small percentage in supermarkets buying food, in a kitchen preparing it, or in a dining room eating it.
All the 'big events' in your life will be squeezed into the precious little time you have left after survival's necessary subtractions. Going to school. Getting drunk. Being hungover. Getting married. Buying a house. Attending funerals.
Perhaps we were thinking in similar terms. You took those thoughts—nay, facts—and channeled them into a manifesto which guides your relationship with your employer.
Here's what I did with the same facts. I decided I'm not spending over 25% of my life (37.5% of my waking life) doing something I don’t LOVE. For comparison, if I find a spouse, it's likely I won't spend 25% of my life in their company. So if I'm going to spend more time at work than I will with my future husband, I need to love my job at least as much as I do him. That's the conviction which caused me, just a few hours ago, to hand in my notice of resignation to my current employer. Because when I find myself watching the clock waiting for 5:01, I must concede that 25% of me (37.5% of the waking me) has already died.
This isn't a judgement. I respect you for your decision. There's probably some pity in there too, but honestly, it's mostly respect.
That is ideal, but it is not always feasible. There are some things nobody likes doing, but somebody's got to do them. I'm fortunate that I like programming and that people will pay me to do it, but not everyone is so lucky.
EDIT: It all comes down to balancing and finding what you truly LOVE. If being a janitor paid $300 an hour because supposedly nobody would do it otherwise... I'd do it knowing, thinking, and planning with what I love in mind... saving up money so I could do/have what I love! My time! Sometimes you have to put in short term pain for a long term gain...
Are you going to pay me to play Xbox with my brother or go out to dinner with my wife and talk about interesting books we've read? Neither is anybody else. For most people, the set of "things I love" and "things people will pay me to do" intersect very little if at all.
(I don't actually have this conundrum. There are a few things I enjoy doing that people will pay me for. But I'm lucky that way. If I suddenly became unable to do those two or three things, I'd be in the situation I described.)
While some passions are easier to monetize then others if you are in the top 100 people that do it, there is a good chance someone will pay you for it.
If you only love consumption habits, try taking up new hobbies. There must be something that you will enjoy that is constructive.
This sounds very naive. I've gone for beer with various people in the gaming industry. From ubisoft QA team leader to indie game programmer to Blizzard Project Manager. All of them were tired of their jobs. For all of them it was "just a job" and sometimes even less. It's these people that I end up going to beer with in normal social contexts. Maybe because the ones who really like their job don't go out. OTOH I know the colleagues in my company who spend too much time on their job and I really wouldn't want to go out with them.
I am interested in the indie game programmers being unhappy. That seems almost paradoxical, unless they were just unsuccessful. I cannot imagine Notch having a stronger passion that making video games.
1) The product has to be valuable enough to a reasonably large number of people
2) You have to be reasonably good at what you do (this isn't a given at all)
3) Very likely, you have to be reasonably good at marketing (and, if we're really serious about the "doing what you love" thing, love marketing)
Even if you really love doing something creative, without the above, you better love it more than eating if you're going to try doing it for a living.
There's nothing like being forced to do something for a living to turn what you love in to a chore.
I used to love programming. Then I did it professionally, day in and day out, for years on end. It didn't take very long to make it a boring chore that I felt I was forced to do.
Then I switched to system administration. At first it was fun and interesting, but as my learning plateaued it became boring as well (not to mention very stressful).
Then it was on to something else. Rinse and repeat..
There are consequences to this sort of career-switching (not to mention to the burnout involved). Usually, it's the specialists with a simple, linear career path that get rewarded. Generalists and jacks-of-all-trades do not typically get much in the way of compensation or respect. Companies will look askance at your switching jobs (not to mention careers) so often, and you will find it difficult to compete with someone who's been doing just that one thing his whole career.
But the problem for people like me is mainly the tendency of getting bored too quickly. We pick up hobbies and interests for a while, but then they bore us -- even if we are not forced to do them for a living (though the rate at which they bore us tend to increase the more we are forced to do them day in and day out).
So what's the solution? There doesn't seem to be one. We just have to suck it up and work at a job that we'll inevitably get bored of and hate.. unless someone wants to pay us to play and to pursue whatever interest strikes our fancy at the moment. And, at least for me, that's probably not happening in this lifetime.
Again, this is roughly equivalent to "let them eat cake." Creative professions are famously unremunerative.
I love music, and I decided that I spent too much of my life staring at a screen, so I took up the guitar. I am terrible at it, but the feeling you get beating a hard boss on xbox is only a pale shadow of the feeling I get when I am playing music (even badly). And the feeling I get when playing music by myself is only a pale shadow of what I feel when I get together with some friends and some beers, and we play music together.
I love eating, and I found I was spending too much money at fancy restaurants, so I decided to learn how to cook. Cooking dinner during the week after a long day of work is bullshit, but going out on the weekend to a farmers market, getting amazing ingredients, coming home and making something that is wonderful is an amazing feeling. Even more then that, sharing it with your wife, or the rest of your family is even better. Watching people you care about close their eyes with pleasure after taking their first bite of the food you put your heart into is really wonderful, and hard to beat.
Last thing is programming. I am really good at programming, and spend a lot of time perfecting my craft. Several years ago I found I no matter how hard I tried, I couldn't make a good UI to save my life, I didn't enjoy the software I made. So I decided to change that. The first time I solved a problem for someone with software, and did it in a way that left them amazed and delighted, I felt better then all those years banging around with frameworks and sql statements. It was even a small rush either, it was something that was downright addictive. Nowadays I call myself a front-end developer, and I love collaborating with good designers to bring great software to life. But it isn't about twiddling bits for me, it is to make parts of other peoples lives that were kind of rough and not pleasant more joyful.
Creating is hands down the most fulfilling way I can use my time, to the point that consuming is only something I do now if I am too beat from doing creative things. I like to pretend I'm a gamer, but I can't really play a game for more then a few hours now without feeling bored and unfulfilled. I love to read, but nowadays the most time I have for fiction is to wind down before sleep, or in audiobook form on my way to do something else. I used to spend so much time and gain so much enjoyment out of those activities, but actually taking the time to get ok in a few creative disciplines, and the years I spent enjoying those things seem pale by comparison.
As it has been noted, for most of humanity some sort of purely consuming task seems most enjoyable these days.
I would much rather play strategy video games or chess, but there is a very limited market for good players. Also, it has been noted playing anything for money actually changes your enjoyment of that task. Corollary - if you are the best at something in the world - you can create your own profession.
Programming is something that I enjoy, but it is not something i want to do 24/7. However, it is well rewarded.
Indeed, very few people in our industry don't appreciate a daily hit (or two) of caffeine.
The vast majority of people in the world do not have the luxury of loving their work. For those, 25% of their lives working for someone else in a job they tolerate but do not necessarily enjoy is a means to an end. Maybe it's 20 years of comfortable retirement, or the relative security of a regular paycheck to support their spouse and children.
Most of us on HN are lucky enough to enjoy coding and are well compensated for it. We get caught in the feedback loop of tech chatter and forget that the majority of our friends and family, outside the blissful tech world, do not enjoy their work.
We spend too much time at it to call it "just a job". Sure, I've been there ... close to burning out, hating going to work, wanting nothing to do with co-workers. But this is my life, and it's the only one I got. Life is to short to have a job that is "just a job".
Many probably can't just walk out of their "just a job" right now - they have obligations to their boss, they have to feed their family, etc. But the goal should be to work to change it, and make their jobs more than "just a job".
That's only if you're lucky. At least in America, 10 or more hours a day is quite common. In the tech field, some weekend work is also not unheard of. In some companies and industries (like game development, startups, finance, not to mention insane shifts that nurses and doctors are forced to work), death marches and sweatshops where you work 14 to 16 hour days for months on end is the (pathological) norm.
The above doesn't even count the times where you bring the work home with you, nor how the crap you have to deal with at work affects the rest of your life emotionally and the (usually detrimental) effect it has on your health.
You do get compensated somewhat financially for this. But how much is your health and emotional well-being really worth?
Consider this next time some company sends out a pitch for a ninja or rockstar that loves to work in an "exciting", "fast-paced" environment.
No, obviously the solution is to minimize the time spent working, either way.
"Only when we are free from working to live, will we be free to live to work."
I was very pleasantly surprised. This is something I am definitely behind, even though for me it isn't just a job. I love programming, but for years my programming at home has languished because my programming at work is a soul-sucking endeavor that leads me to have a sinking feeling every time I look at the Komodo icon on my home PC.
I think the core problem here is not about an us versus them when it comes to the guys who go home to their wife and kids and the guys that go home to their git and vim. It's more about the fact that both groups probably spend too much time away from their homes, and right now the programming scene is incredibly fractured. Programmers are certainly not a homogenous group. Off the top of my head, I can think of about a dozen different flavors of programmer, all with their own innate perceptions about things both programming related and not.
What we really need is a coming together of the programmers-by-trade and the programmers-at-heart to declare war on all of the silly little stereotypes that have created a workplace unfairness in IT in the last fifteen to twenty years. You need a communion of individuals to create a semi-fraternal organization that looks like a union on the outside but inside is a diverse collective of brilliant minds.
It wont be easy, but many smart people (and a very few ridiculously articulate people) have been passively advocating for it in the last ten years or so, and I think that as the post-dotcom generation starts to move into their 30s we'll see a drastic change in the employee relationship within the next five to ten years.
It's very sad that decades of right-wing propaganda has made "union" a dirty word.
This is especially true in the technology field, which is so infested with libertarians that you'd feel the need to qualify your suggestion for the formation of what is essentially a union by saying that it only "looks like a union on the outside".
Why not just come out and call it a union? Why couldn't a real union have "a diverse collective of brilliant minds" on the "inside"?
A union is just an organization of professionals who try to collectively improve their working conditions and compensation. There's absolutely nothing wrong with or shameful about this.
The time for a technology workers' union has been long overdue in the US. We shouldn't feel ashamed to suggest its formation or to call it what it is.
Often I'll learn some maths, experiment with some new approaches to solving problems, or watch screen casts to learn how other people approach the craft.
I don't do it because I'm some corporate shill. I just really love programming.
I also have a wife, a child on the way, and my life seems pretty balanced to me.
I just look at overtime and think: well I only have so many minutes left to live, what's in it for me if I do this? Sometimes the answer is just money because that's probably what I needed at that moment... more often than not in recent years I don't bother unless there's equity on the line (which has never been on the table anyway). If my employers ever had a problem with it I just moved on. Things got tight but they never hit rock bottom.
It's all just about priorities and sticking up for yourself.
I have at times had to suffer such treatment because I needed the paycheck even if I wasn't getting paid extra for the extra hours.
However there was still the choice to leave such a job and deal with the consequences.
On one occasion I wasn't even given the choice. It was expected and I didn't live up to those expectations. I wasn't that upset in the end because even though money was tight for a while I still made it through and got another job within a couple of weeks. I was much happier in the new position and most of the people I knew who worked for that company eventually left anyway.
At some companies I would get paid for the extra time or at least would be given paid time off later on. I just had to ask. Otherwise I would just go home at my normal time.
These days I probably wouldn't even work over time if you paid me extra. I only work overtime if I made a promise to deliver something by a certain date (and I rarely make those promises unless I'm certain) or if I have some stake in the company. That's largely because I'm in a position where I'm not living paycheck to paycheck anymore and don't need to work for my employers if I don't want to.
Admittedly if you're just starting out or this kind of "overtime culture," is pervasive everywhere ymmv.
Exactly. Before I ever got a job programming I couldn't leave it alone. I simply had to do it. I enjoy my other interests and spending time with my family, but I'm also drawn to reading, playing, building in code. There's endless fascination there for me.
I do have some pity for people for whom it's "just a job." To spend approximately 1/2 your adult waking life doing something that merely enables you to pursue other interests and pay the bills. Poor saps. I suppose not everyone can get work doing something they find compellingly fascinating, but I wish everyone could.
Since I've become a parent, I've noticed 5:00 has become more important to me. We put our kids down to bed around 8:00, so I only have a few hours of quality time with them each day.
Secondly, there are just things you won't learn on the job. And that doesn't mean it's a bad job. My new shiny is currently Haskell. I shouldn't get huffy if my work doesn't allow me to time to explore it. It'd be nice, but I'm not entitled to it. And further, it doesn't mean I should start hunting for a "better job". So in my opinion, 501ers are left with three alternatives:
1) They only learn/play/explore things that apply directly to their 9-5 job. Or are limited to whatever time their work allows for exploration.
2) They find a job that aligns with their interests.
3) They make an business case to the company to incorporate the technology. (However this is best done after you have a level of experience with it)
People could argue which of those are better. But if you're someone like me and like to play with a large number of technologies, sometimes removing the job out of the equation is much easier...and maybe even more fun.
... and I'm guessing that's the majority HN readers.
There's only 24 hours in a day, no more no less.
Talk about a false dichotomy. I evade this problem by being friends with the people I work with.
Overall, I think there are some good distinctions made here. And there is a good point to the thing: “To us it is just a job, but we still do it well.” I almost feel like the page should lead with that. That this isn't an indication that this approach is better than the other approach, simply that it's… Different.
Maybe I don't have a family nearby right now. Maybe I am at a point in my life where I can have free snacks and free time, where I can have sustainable pace AND muscle-man heroics AND still enjoy life outside of work. But that's beside the point of the page. The point here is to understand that not everyone has that perspective, and that it's important to respect those that leave their work at the office and dedicate more time to all the other things than you do (if you're one not one of the “501 developers”).
Everywhere else: everyone else.
Once there I realized that none of them were all that social with each other, and I didn't want to be outside-of-work friends with most of them, either.
If you:
Write a technical blog
Contribute to open source projects
Attend user groups in your spare time
Mostly only read books about coding and productivity
Push to GitHub while sitting on the toilet
Are committed to maximum awesomeness at all times, or would have us believe it
Much of this applies to me, and applies to me because I love programming. If you don't love programming, I am unlikely to ever respect you as a programmer. Doubly so if you confuse loving programming with being at the beck and call of a given employer, or confuse loving programming with what hours you spend in the workplace.The 5:01 article it links to is insightful, though.
The more interesting part is the second half, in the smaller print where the author addresses his teammates. He uses words like "respect", but what he's saying feels contemptuous and passive-aggressive. That's the real tell here. Well, that and the suggestion that he doesn't believe in what he's working on. No wonder he feels like checking out every day.
Does it matter what time someone leaves? Only if people feel it does. What matters is that a team be aligned. If there's disharmony, work it out. If you can't work it out, change the team. Writing a "manifesto" is not working it out (though it might start a real conversation).
Personally, I want teammates who are passionate about doing great work. Come and go whenever works for you. But passion doesn't get turned off like a light switch at the same time every day.
I also make plenty of time for family and fun. Maybe it's all of those productivity books.
People who write technical blogs, go to user groups, or endlessly read programming books seem to be in the "not us" group, but I know of day job developers who do (some/all of) those things. Drawing lines in the sand doesn't seem useful when, I think, the issue behind this seems to be "don't look down on us day job developers." :-)
The bigger takeaway for me from the manifesto is the first half--that my job is my job. I enjoy my co-workers, but, truthfully, I enjoy my family and friends more. And that should be okay.
Just don't break the build at 4:59. That's all I ask.
People who leave at 5:01 may prioritize their time better.
I respect those people for the time they spend with their families and loved ones, and wish them the best, but I don't much enjoy working with them. I love what I do, and if you do too, I expect to see some evidence that you enjoy it in your spare time. Particularly for consultants or independent contractors, I find the notion that all of your professional learning should be on your client's dime to be ethically troublesome at best.
I don't think it's fair to characterize it that way, there are other things to learn about outside of programming. I spend a lot of time learning about biology, sociology, economics, philosophy, etc. I spend time learning more about friends and partners. I spend time learning about myself. Yours is exactly the mentality that the article is addressing, the one that does not see value in or respect any activity not directly related to coding. What's troublesome to me is that some people focus so narrowly on technical proficiency that I wonder how they have the time to develop the perspective to know where to apply those skills.
I certainly don't see that in what bguthrie wrote.
It's probably this part.
I also enjoy learning about code. One need not crowd out all the others.
Obviously simple rule... the more you work for a flat rate (salary) the more you lower your pay. Second simple rule... the more you work for a flat rate (salary) the larger the opportunity cost. There are probably better things you could be doing for yourself after 5 - things like oh I don't know... have friends, family, start a business (that potentially does NOT have a salary cap), learn new skills, etc. etc.
I see this attitude pop up all the time where there are groups of folks who feel that everyone that is an employee who works normal hours should be thrown out of the profession. From my perspective, this is an unfortunately toxic attitude in that it degrades everyone as a whole and collectively detracts from our value.
But, I wholeheartedly agree with this article. I need to go home at 5 in order to keep liking programming. Sometimes I go home to program on a pet project or to learn something new in the weekends. Most of the time I try to do that, but life gets in the way. In a good way. My gf wants to go out or I find some new hobby or I want to go running or just stroll around in the beautiful city I live in. I have problems that I want to solve in my life. I think about stuff and read about stuff. I want to learn to build things with my hands, ride a horse, play two musical instruments, paint etc.
I'm not an insect. I don't want to tell people I'm a programmer and have nothing else to talk about (like some of the people I know in this industry). I want to have friends who aren't programmers. In fact I usually appreciate these friends' company a lot more. Because we talk about being human, not about being programmers.
I'm really lucky to have a boss and colleagues who are like this, too. Some of them are really bright people. Most of us have a big number of programming books we've read. Just because I go home early it doesn't mean I'm not passionate about my craft. I am and I constantly invest in getting better, but I hope I'm not doing it at the expense of being a real human being and having meaningful relationships with the people around me.
It's amazing to see the number of counter-arguments to this manifesto on HN after a year ago everyone was praising things like the 4-hour work week and getting more done in less time. Has that failed? Did it instead turn out that we can be productive sitting on a chair for 12 hours a day?
Or maybe the people who really are passionate about programming are just programming right now, because they want to quench their thirst for programming in the 8 hours they have today and then get on with other pursuits. And I should go do that now.
As the rest of us turned to Zombies he remained calm, focused and sharp. Without him, we wouldn't have shipped as well as we did.
However, the people in management/business made some sweeping remarks about our team "not working as hard as the other teams" in passing. Makes me think that the further away from the code and actual productivity you are, the more important hours and arbitrary productivity measures become.
In any case, you've provided a nice example of how issues like working hours are subsumed by team dynamics. That's where action is.
By the same token, working long hours doesn't intensify your accrual of experience, skill, or talent, nor does it automatically make you a better or more passionate developer.
Passion is passion. Craft is craft. Whether you spend 1 hour a day doing it or 17.
Contributing to open source projects, user groups, reading books on coding and productivity? How CAN these be pitiable things? I personally think this is a step before being brogrammers, which I loathe.
Let's face it. Being a coder in this brave new world is akin to being a magus in the old times. You know things, you incantate words and verbs only which you and a chosen few understood and you create something out of nether, only real in your mind's eye. And if you deal with information, as they did, you have to convey it. This is something inherent to this craft. You encounter problems with something, you log it; you solve it, you log it. When you share it, many of the people who trod the path will solve the problem, sans the time you spent, and do more. When they encounter something and log it, you will know more. This is a balancing act, nothing more nothing less.
It may be just a job for you, but for me it is an act of creation and more than a job.
If you work as a software engineer in California and have a salary of less than about 81K, you are entitled to overtime pay.
See the law here: http://www.leginfo.ca.gov/cgi-bin/displaycode?section=lab... (section 515.5), with 2011 and 2012 numbers here: http://www.dir.ca.gov/dlsr/ComputerSoftware.pdf
I am not a lawyer, so do your own research please. But the gist is, if you want developers who will work lots of free overtime, you have to pay them as such.
This invalidates the whole manifesto. Why are you working?
I think it's bad to polarize things like this - being a 501 developer vs not having a life. Balance is key, and you should work on things that matter to you. Don't blame the world.
Some of the items on the list specifically target Microsoft MVPs and Regional Directors, the shots at "snacks" and "T-shirts" aim at Microsoft community events, and the rest target standard corporate development dysfunction.
If there's one positive takeaway from this post, it's the bit of the end that warns you to treat your 501 teammates well.
I am not really up to dealing with the harsh cynicism and assumptions of uselessness of our work with someone who leaves as soon as possible. Doesn't mean I don't like going home early. I do... But if your goal is to clock in at 8:30 and exit at 5:01, just to do the bare minimum, I can't jibe with that. I've worked with people like that... and I don't want to do it again.
Regards, pity, etc.
I would say that a motivated person is okay with staying 5-20 minutes late occasionally when trying to get something done that they care about.
Pity? I pity you. Sad, Sad life when work is all you've got.
On the other hand, I also have passions that extend outside the realm of software development. I'm not sure that this makes me any less passionate about my profession - and in many ways likely enhances my 'personal brand'. For those who are consumed entirely by software engineering - more power to them.
Out at Five
I developed a conceptual model for a perfect company.
The primary objective of this company is to make employees as effective
as possible. The best products usually come from the most effective employees,
so employee effectiveness is the most fundamental of the fundamentals.
The goal of the hypothetical company is to get the best work out of
the employees and make sure they leave work by five o’ clock. Finishing by
five o’clock is so central to everything that follows that I named the
company OA5 (Out at five) to reinforce the point.
If you let his part of the concept slip, the rest of it falls apart.
The goal of OA5 is to guarantee that the employee who leaves at 5 PM
has done a full share of work and everybody realizes it. For that to
happen an OA5 company has to do things differently than an ordinary company.
also discussed in http://news.ycombinator.com/item?id=3309820 and submitted as http://news.ycombinator.com/item?id=140712 four years agoVia Frank Chimero: http://blog.frankchimero.com/post/17609912323
-- Alan Watts
Yes, I love programming.
Yes, I (mostly) treat work as 501 even though I (usally) love the work I'm doing, but I'm not owned by any company.
Yes, I decide over a job similar to "love" precisely because it takes so much time of everyone's live and I spend more time in the office with my coworkers than I spend with my friends, family and spouses.
And I still want to see something else but my editor (and I do really like my editor :) - art, books, parties, the city I live in - which I also chose by "love" which is why I wouldn't move for a job to a city I do not like - other cities, good food and other people.
So, I look hard to find a workplace I like to do work I love doing which fits into "having a life outside".
And exactly that enables me to have a choice EVERY DAY wether I want to do some hacking privately or have a nice dinner with friends.
But for many life decisions I'm on the side of the 501 manifesto's spirit: I wouldn't leave my family/spouse for a programming job at $glorious_company, I wouldn't move into some boring smalltown and leave all my friends and the opportunities of my favorite city behind just to do programming at XYZ.
This doesn't keep me from having two thinkgeek shirts TOGETHER with 20 others, going to a nerd conference here and there AND take two hours off to go into this cool art exhibit which is at the nerdy_conference_town right now, read a programming book once in a while on top of the pile of other books I read.
I totally accept that I'll never become a rockstar in programming with this life-style - but I might have hung out and gotten drunk with real rockstars on some of the parties I had time to attend or even played some rock because I had time to be part of a rockband. ;) (God, I hate the rockstar metaphor a lot.. :)
In the end it's about looking down on my life and thinking "it's a good life" - and that changes from decade to decade anyways. What I considered a good life with 22 isn't anymore what I consider a good life now - and yet I wouldn't change a thing of my 22-year-old life.
I really liked the manifesto items, but after that the whole thing gets a passive aggressive tone. That is unfortunate.
And, honestly, just how often does do people in your team drop the ball right before leaving for the day? Every day? Every other day? Every week even?
If someone's dropping the ball so frequently, perhaps they're either in the wrong job or need some serious training and mentorship from more capable members of the team.
And if it doesn't happen particularly often, what are you complaining about?
Wrong. Absolutely wrong. The opposite, in fact, is true.
For every programmer working overtime at his paid job as a Ruby on Rails rock-star producing an advertisement-backed web application, there need to be several more clocking out of their paid jobs at 5:01PM to go home and write open-source operating systems, languages, frameworks, and tools without being paid.
Because most of the time, the essential infrastructure all the paid businesses rely is created by unpaid volunteers working off the clock (or at least it started that way!), or even better: researchers.