In today's modern world, we are intentionally ignoring the rights that were given to us.
8 hours a day was fought for. 40 hours a week was fought for. If you are expected to exceed these limits without compensation, you are being ripped off. You have limited time in this life.
As a developer, you create tremendous value in this world. If you didn't you couldn't demand the salaries that you demand. If it was easy, then the business guys would be learning it and doing it for themselves.
It's a modern skill required by modern business. You should not feel like you are forced to spend every waking moment eating, drinking and sleeping code.
In my personal experiences I have found that I have to force myself to step away. After a few hours the wheels stop spinning, but when I come back I am always excited to work on something. This is far more desirable than feeling the dread that comes from doing something non stop.
Balance is extremely important, I do not understand the opposing viewpoint that we should all be code robots.
It wasn't fought for, it was given to us in fear that we'd negotiate something better. Most people rip themselves off by giving up labour for money, it's a poor mans game, especially in software. Very few people become wealthy playing this game.
Coding for salary is for the most part stupid because you're producing a capital good, it's much better to retain a portion of the capital and have the capital produce your cash flow.
Interesting. In my view of the world is that there are no sick days, no personal days, no vacation days and no holidays. Fuck all that.
As long as you own and are responsible for what you are supposed to be doing and deliver on the commitments made you are free to manage your time as you see fit. In reality, it's a team decision and not the decision of the boss (me, in this case). If someone wants to go out of town to see a concert or take the kids to Disneyland for a few days, we talk about it. More often than not there are no issues and the answer is "send pictures". Sometimes the answer is "OK, but could you take the laptop and see if you can finish this little chunk of code". When it can't happen it is obvious to everyone.
Want to take a month off to go down to Argentina? Let's figure out how to do it. You might have to drag along the laptop and keep up with some stuff, but there are probably few reasons to say no. Can I come?
The same applies to sick days or "personal" days (who came up with that term?). You are sick? Please go to the doctor and stay home? Need to go take care of that speeding ticket? Take the day if you have to.
This also applies to work hours. Sometimes you have to put in the time to get something done. When discussed as a team these instanced become self-evident.
I said in another post that I am no stranger to 18 hour days. I hate doing it, but sometimes you have to. In all cases this kind of thing must be fully justified. It can't be the norm. If it is, something is seriously wrong or you need more people.
9 to 5 programmers have one guarantee: They will work 9 to 5 every day and will be held to strict rules when it comes to vacation, personal and sick days. If you want to work a strict 9 to 5 schedule I have to treat you differently. I have to treat you by the letter of the law. So, while the guy/gal in the other plan is in Argentina having fun and doing some coding, the 501'er will be clocking in and out and accounting for meal time and vacation days. Yuck!
I, personally, hate that kind of work accounting. Not for me. To each his/her own.
> If someone wants to go out of town to see a concert or take the kids to Disneyland for a few days, we talk about it.
I don't want to talk about it. If I'm going on vacation, I probably need that vacation. I would be pretty offended by coworkers (especially managers!) prying into the details of where I'm going, or trying to have a conversation about whether I should bring a laptop. Fuck that sincerely.
Personal time wins, and work can wait, always. I don't work at NASA. We're not going to miss a close approach of Mars if we ship a couple of days later.
I like the idea, but how does this work with unreasonable work expectations? What stops your boss from assigning you an impossible task? Now if I have to fight for a few days to get the code to even start I get to leave at 5pm and forget about it, it's their problem when they assign something to me and I can't even start. In your world I get a deadline and some tasks and where is the work load balancing mechanism?
I really like this, because it fits into how I work too. I'm much better with one 60 hour week and one 20 hour week (or an 80, 0) than I am with two 40 hour weeks.
The workaholic v just-a-job tension seems to stem from the fact that it's difficult, in a team environment, to hire someone for the value added. If you could, then the workaholics could work more, learn more, and get paid more, whatever, and the just-a-jobbers could just work, and everyone would get paid by what they contribute.
To borrow the ideal-world-artisan metaphor, if I want a table made by a carpenter, I don't care how long the carpenter spent making the table, and I (ultimately) don't care if it's just a job to her. I care whether my total investment of waiting and money is worth the table she makes.
Problems arise when it's much easier to measure 'passion' and time spent working than value added. These are probably correlated within reasonable bounds, just like total words in a comment and value added to a discussion are often correlated, but I don't upvote on length. It's annoying to see someone getting more respect than you, but turning out crappier work, just because they stay late and fit the cultural bill.
But the flipside is that if time spent and value added are correlated (and I suppose that's very loose across persons, and even within persons), then pay, and perhaps even personal respect for someone's craft, will be tied to that.
501ers recognize that it will probably result in having less opportunities:
We recognize that your willingness to allow your employment to penetrate deeply into your personal life means that you will inevitably become our supervisor. We're cool with this.
I think that's a good attitude, as long as it's acknowledged that without putting in the extra hours to learn, grow, or ship, you might not grow over time and earn the same respect in the workplace[1], and you might not get paid the same.
[1] Respect as a person, of course, should be independent of work, and respect for your craft should probably be based on what you can do, not how long you spend doing it. My closest friends are extremely talented, and also more on the just-a-job end. This doesn't change how I feel about them at all. It's their life, after all.
> "then the workaholics could work more, learn more, and get paid more, whatever, and the just-a-jobbers could just work, and everyone would get paid by what they contribute."
Its not hard, its called contracting for an hourly wage. The problem is that many employers want workaholism at a 40hr a week wage.
Programming is awesome, but so are lots of other things. I don't eat sushi for every meal either.
I have seen so many developers exploited by people making a bundle off their work with the explanation "I am doing what I love!"
Instead, I think it is possible to create without working outside of work hours. I can learn on the job in a way that can be more context driven than reading disembodied books on technologies that will probably never be relevant for my craft.
I don't know about anyone else, but I was always the kid who did the extra credit whether I needed the credit or not. I feel like we still sometimes get stuck in that attitude of needing to do everything in order to not be less-engaged than other people. As long as the community keeps rewarding those over-achievers we will be stuck trying to keep up with the Joneses.
Yes, this. There are plenty of great environments to do what you love, and do it "safely." And there are plenty of poisonous environments where your love of your work will be used to abuse you. I highly recommend doing a stint in old school print/ad shop. I know really great artists who completely burned out very early because their love of their work turned into 48 hour days.
I'm very sympathetic to the 501 cause--I generally don't work more than 8-9 hours a day, and my free time is spent with family and friends, but I do enjoy reading technical books (as well as many other types of books), and go through hacking-for-myself stints, too. There really is a middle ground here--it's not just two camps.
Where does it say that 501's are actually productive and produce good bug-free code?
Being a little bit of a dick here, but programming is art and science and there are aspects of it that require dedication beyond a 9 to 5 mentality. I, for one, prefer to hold reasonable hours and come home to the kids. At the same time, I am no stranger to 18 hour days, seven days a week. Sometimes inspiration and problem solving require you to stay on task longer in order to get things done.
And then there are those bug-hunting missions that sometimes never end. I once spent six months tracking down a software bug in a hardware design (Verilog, FPGA). High-speed digital designs can be notoriously difficult to troubleshoot. The problem was caused by a rounding error in an Excel spreadsheet used to calculate parameters plugged into the code months earlier. We used "ROUND()" instead of "ROUNDUP()". Though I digress, the point is that programming sometimes is about recognizing when you need to do a little (or a lot) more than watch a clock.
I'm not proposing that all programmers ought to work ridiculous hours. Whenever I've done 18 hour stints it took me out of the game for weeks. And that's OK so long as there was a point to exerting yourself to that extent.
The bottom of the manifesto says: "To us it is just a job, but we still do it well."
That, to me, is a guarantee to not being hired. That it is "just a job" means that they might as well be welding, at least to me. I don't want people like that in my team.
Having said that, I am the first one to tell someone to get the hell out of the office if they need to go see their kid perform at their school event at noon. Get the hell out and go enjoy the day with your family. Need to take a four day weekend when it isn't an official holiday? Do it! Send pictures. The point is that you build a team and everyone looks after everyone else while having one hell of a time creating a product. Respect, dedication and consideration. 5:01? How about not coming to work to go fly a kite with your kid? I like that.
I don't understand why you wouldn't be interested in hiring someone who feels that software development "is just a job, but I do it well." And what is wrong with welding?
What is it about programming that requires dedication beyond regular and predictable work hours? If the implication is that the 501'ers aren't thinking about what they do when they are not at work --they say they "...value personal creative projects over commercial products the world doesn't need." Certainly that is an abrasive way to phrase it, but it's clear that they are doing some level of development outside of their workday. This could cover keeping abreast of the state-of-the-art, certainly I feel that it is my responsibility to keep my skills competitive and up-to-date.
You yourself prefer regular and predictable work hours, why shouldn't your software developers be able to enjoy these kinds of hours as well? The implication seems to be that people who work these kinds of schedules will be unwilling to work longer during a "crunch period." I don't see any reason to believe this is the case; I strive to work regular and predictable hours and I will put in extra time when warranted. I take full responsibility for my work and its effect on the company. I don't know what more any manager could ask of their employee and it's not clear where the 501'er is (in your estimation) falling short.
Perhaps you believe that someone who strives for a regular and predictable schedule will be spending all of their time eyeballing the clock, perhaps even "gaming the system" to work as little as possible. For sure, such people exist, but I don't believe that there is any reason to assume a 501'er is one of these people. Again, I have to point out that you enjoy this kind of schedule yourself and you are clearly not spending all day "watching the clock." For that very reason, I find your objection to hiring a 501'er very puzzling.
Lastly, as an aside, I wonder if the objection to the 501'er Manifesto boils down to this: the 501'er clearly values their personal life over their professional life. It seems to me much more difficult for a manager or business owner to baldly argue that their employees should value their work product more than their girlfriends, wives or families. Yet I can't help wondering if that isn't their true objection; that despite what they may say or do they are very much looking for people who are willing to live very unbalanced lives, lives that are unbalanced in favor of the workplace.
I don't agree with everything you've said, but I do agree with the notion that "putting in time" doesn't necessarily equal work.
It's important to me to maintain a good work life balance. To this end, I work from home 90+ percent of the time so that 'working late' doesn't mean having to miss out on family interactions, or becoming the proverbial stranger to my family.
The flip side though, is that if there's a problem, or a challenge that needs to be solved, I generally go all out until it's solved. Not every bit of programming is amazingly fun -- CRUD operations or writing login forms for example are pretty mundane most of the time.
But when I'm building out the logic for something that I don't know is possible, or if I'm attacking a problem I don't immediately know the answer to, I tend to spend a lot more time on it than 8 hours a day, and I seldom even notice until I'm done that I have.
To me, it's not about watching the clock, it's about getting work done. If it takes me longer to get something done than I thought, that shouldn't necessarily mean that it's going into the queue for another day. Similarly, if I have dinner plans with my family, I'm not likely going to miss dinner because there's an unsolved problem. I don't have family plans or obligations every single day, so there really isn't a good reason for me to bolt at 5:01 every single day unless things are running smoothly.
I've found that assigning a label to myself like '501 developer' is counter productive. My productivity and flow tend to come in waves.
I've noticed that there are times that I'm so interested in the problem at hand that 5:01PM just blows by. When I finally look up from the code, it's 7PM or later. In some cases this lasts for months, because the work is both interesting and rewarding. However, it never lasts for too long because of the inevitable cycle of software as it moves from being greenfield to brownfield.
During such times, I've felt less of a need to attend user groups, hack on personal projects, or do much reading outside of what I need for my immediate job. Between the job and my personal life, I was content with my time spent.
However, fast forward a few months and I'm back to leaving at 5PM so I can read and hack on the side with the extra free time. Over time the day job gets less and less interesting and then I start to look for something new that might trigger my flow once again. And then the cycle repeats.
I vary on this one. I have a bunch of hobbies, of which coding is one. When I go through a coding phase then I'm not a 501 developer. When I go through a boardgaming phase I am.
In any case, I try not to _work_ more than 40-hours per week, but my play frequently still involves computers.
Exactly. My job is programming because it was first my hobby. I have an EE degree.. not a CS degree. I was an Epi Reactor "mechanic" before I realized my passion was software not hardware. It is awesome to get paid to do something I love. But that doesn't mean I should be required to do it only for someone else for all my waking hours. Some times I want to do my own thing.
So there's simply a fundamental value difference here. Some people love their families, friends, and free time to the exclusion of other things. To them, working is a means to an end. It doesn't actually mean they're not passionate about it, just that they have separated it to a different part of who they are and what they care about. I believe that was the point of the 501 Manifesto.
On the other hand, it's not strange to seek unity between your passion and your work. This is a great path for those who desire to have their material accomplishments define part them and is basically a necessary attitude for living in a meritocracy. It doesn't mean that you dislike your family, friends, and free time, simply that you feel that creation is also of central importance.
It's just different ways to self actualize. You can't compare them, really. You can accept the differences and work with people however makes everyone the happiest and most productive, though. 501 programmers may not have the same need to do exciting, groundbreaking work. They also don't want to spend the time. It doesn't mean you can't make use of them and make everyone perfectly happy. It may mean you don't want to actually work with any of them if you're trying to do something very difficult.
I've never heard of this 501 thing before, and I'm not looking forward to all the posts, replies and counter-replies on the HN front page.
Can't we just agree to work during working hours (if you need me to work a bit more as a favor to you, or if you pay me overtime, that's totally okay most of the time), and spend the rest doing what we love, including, if one is so inclined, programming?
I'm guessing that most of the people who see long hours as a badge of honor are salaried employees or people who manage salaried employees. One thing I noticed when I switched over to contract work is that once a company has to pay for each hour you work, they are a little less enthusiastic about you putting in long hours. In fact, some of the contracts I was on had caps on the total number of hours you were allowed to bill. Long hours are seen as a sign of passion when companies don't have to pay extra for that time, and seen as a sign of poor time management when they do.
To me, the concept of a '501 Developer' as outlined in the manifesto seems kinda foolish. It shouldn't be outside of industry norms to value one's family over one's company, or to treasure time spent with friends over time spent with coworkers.
The list of pitiable/respectable items are a bit different. In particular, "Mostly only read books about coding and productivity" I do find unsatisfactory; the power of literature is massive and too often untapped, and the thought that reading 300 pages about a language or productivity is more valuable than, say, The Brothers Karamazov frightens me a little.
Dearth of passion doesn't make someone a '501 developer', nor vice-versa; I just think being passionate about one subject to the exclusion of everything else is dangerous, no matter the industry or lifestyle.
Nothing saddens me more than the really smart developer who has no other interests. How a person can know one subject to such endless detail yet be clueless about the world around them.
Indeed. One might argue it even stunts the potential for greatness: after all, you best can solve problems you've directly experienced.
That might be part of the reason we have thousands of tools to increase programmer productivity, but there are piles of money to be made by providing a simple MVP in a market that's totally untouched.
Seriously, I feel like we're trapped in a meta nightmare. Who cares? I feel like I'm wasting a non-negligible amount of time reading about meta discussions of how I must find value in my life or do my job or assign levels of passion so that I'm legitimate or respected or some shit. I do my job. Most days I enjoy it. Some days I don't. Sometimes I have to put in more hours than I like. If that continued and my job became, on average, more of a nuisance than not, I'd find a new job.
I have to believe this is how most people are who don't have the time or energy to write long-winded blog posts about "be like me so I feel better about how I live".
Very much agreed. In fact, I pity someone who works a job so distasteful/uninteresting to them that they need to go on a rant like this manifesto. There's something to be said for leaving work projects at work, I get that. But every day I get inspired and amazed by the stuff people are doing in the world of software. I like programing, I like computers. Maybe I haven't seen Game of Thrones or spent much time in bars over the last 5 years, but I don't see why that's reason to pity me. If you don't love what you do, do something else.
Software is complex. Complex enough that, for most, if you're not passionate enough about it that it creeps into your hobbies and your reading, you probably won't be much good at it. The manifesto seems to acknowledge this, while at the same time implying that they want to be well paid and get lots of time off. In any other industry I am familiar with, these are the perks of being the best.
Perhaps I'm taking it a big far, but to me, the most exciting software projects are closer to art than any other sort of work. I'm not familiar with many artists who view their works as "just a job", and would be surprised if many compelling works were created by people with that kind of mentality. I think it really reaches out to any kind of skilled work, I wouldn't want to be diagnosed by 501 doctor, bring my car to a 501 mechanic or drive my car over a bridge designed by a 501 engineer.
I'll never put in 80 hours in a week for you. I'm sorry, but there are more important things in life than programming. Maybe I'll never be the best programmer, but I think I'll be a better person.
I don't get it. How are those "better" and "best" people you describe not self-important jerks? There are already too many stupidly arrogant people in most companies; they are immune to criticism and extremely difficult to work with. Shouldn't facts matter more than ego?
"I call 'em as I see 'em." is an attitude I can work with, because it lends itself to meaningful discussion and, maybe, some kind of understanding. "They aren't anything until I call 'em." on the other hand is useless wankery in my opinion.
On the other hand, I agree with you that "I am a <501 or xxx> developer." is a somewhat weak statement, but for other reasons than you. I think 501 and others are overly broad labels and philosophies. Most people who are capable of having their own opinions would probably agree or disagree on some of the 501 points, but not subscribe to all of them as a package.
I totally agree with this. Programming for work and programming for myself are two totally different things. Maybe we're all 501ers when it comes to only wanting to give a certain amount of time to your employer.
I'm not sure loving programming correlates well with people who put in long hours, though. One thought experiment: imagine programming were an occupation that paid a reasonable skilled-craftsman type of wage, but not a high-level professional type of wage, say $50-70k typical salary and no real prospect of big exits/IPOs. Who would still be in the field, and who would find another field? People who love programming would probably still be around. Heck, there are die-hard tech lovers who'd still be around if it paid $30k, the way artists stick around despite low pay because they'd rather do art for $30k than not-art for more.
But I would guess that a substantial proportion of the current tech workaholics wouldn't be, because they're driven by something other than intrinsic love of technology/computation/programming. Something more like a drive-to-be-on-top type personality, perhaps.
Actually the debate exists because some startups, notably Square, allegedly have culturals that frown on the person who leaves the office while the sun is still out.
There's a difference between programming for work and programming for pleasure.
When I program for pleasure, I'll do whatever I want and leave unfinished pieces all over the place.
When I program for work, I'm getting paid for something someone else wants me to do. I'm I'm not getting paid, then I'm not working on that code. If that makes me a 501 programmer than so be it.
I'd rather say that the reason behind it is that there are people who don't see that "either you're 501 programmer, or you love programming" is a false dichotomy.
(Caveat: I'm a college student in undergrad, and certainly don't have the industry exposure of other commenters.)
I don't think that's entirely fair; I can pretty handily separate myself and other CS majors into those who spend their weekends/late nights doing hackathons and such, and those who pursue hobbies and activities separate from programming/development.
In my experience, the latter doesn't specifically have less zeal for programming than the former; it's just balanced by enthusiasm for other subjects and interests. The point that there are many 9-5 programmers who treat it as a career and nothing else is well taken; that being said, you don't have to be spending the overwhelming majority of your waking hours in a terminal or IDE to love programming.
What I don't like about this thinking is to consider anything apart from 'going to the moon' as a job not worth doing.
Everybody has a world of his own. A friend of mine comes from a family of farmers. Back here in Bangalore, we would drive down to his place during our engineering college years. And we would spent great deal of time in fields and a small hill close to his place. Now you really must hang out with those farmers. Try working in the field for a couple of hours and experience a cool breeze blowing through your hair, drying you sweat. Try eating a banana or a guava straight plucked from the tree, try roasting a chicken on a chicken farm. Try climbing a small hill and then rest on it while sleeping and staring right into the sky watching eagles. Try diving in to a the lake near the fields. Do you know how much fun that is? None of that is rocket science but it feels like heaven when you are experiencing it.
These days I try to hang out with cab drivers who drive me back home in the night. I buy them a cup of tea or coffee in the night. And it awesome chatting with them and listening to their experiences. Its crazy how much fun they have.
Some of the words happiest people are the ones who work during the day in the sun smelling the sweat essence of mud.
Passion and fun can be found even in the smallest of the things we do in life. And people do that all the time.
The guide to a happy life is to really focus on how you do things rather than What things you do.
If "501 developer" is being used in a derogatory way, then I am not one. But if we're talking about devs that have "hard stop" point for themselves each day then I am. I like to leave shortly after 5 because I like to have dinner with my family. This is actually an agreement that my wife and I made when I switched jobs and she went back to work (outside the home) after kid #3... we would both do what we could to be home by 6:30 every night. And for the most part we make that happen. Of course stuff happens but we would rather that be the exception than the norm. And neither of us sees a problem with that attitude. I enjoy programming a great deal. I am a problem solver. It bugs me internally when I have to leave a problem unsolved for the next day.
But my take on the whole situation can be summed up like this: I work from home 2 days a week and often times when it is approaching dinner time and I'm still in the office, my wife will come in and ask something like "how much work do you have left?". Well, the most accurate answer is "a lot... weeks" but I obviously can't finish it all tonight. I'll have to stop at some point and there will still be work unfinished. Even if I worked until midnight... there would still be work left. So if I've put in 10 productive hours... why is stopping at 5 any more significant than stopping at 6? or 10?
[+] [-] bbwharris|14 years ago|reply
In today's modern world, we are intentionally ignoring the rights that were given to us.
8 hours a day was fought for. 40 hours a week was fought for. If you are expected to exceed these limits without compensation, you are being ripped off. You have limited time in this life.
As a developer, you create tremendous value in this world. If you didn't you couldn't demand the salaries that you demand. If it was easy, then the business guys would be learning it and doing it for themselves.
It's a modern skill required by modern business. You should not feel like you are forced to spend every waking moment eating, drinking and sleeping code.
In my personal experiences I have found that I have to force myself to step away. After a few hours the wheels stop spinning, but when I come back I am always excited to work on something. This is far more desirable than feeling the dread that comes from doing something non stop.
Balance is extremely important, I do not understand the opposing viewpoint that we should all be code robots.
[+] [-] fleitz|14 years ago|reply
Coding for salary is for the most part stupid because you're producing a capital good, it's much better to retain a portion of the capital and have the capital produce your cash flow.
[+] [-] robomartin|14 years ago|reply
As long as you own and are responsible for what you are supposed to be doing and deliver on the commitments made you are free to manage your time as you see fit. In reality, it's a team decision and not the decision of the boss (me, in this case). If someone wants to go out of town to see a concert or take the kids to Disneyland for a few days, we talk about it. More often than not there are no issues and the answer is "send pictures". Sometimes the answer is "OK, but could you take the laptop and see if you can finish this little chunk of code". When it can't happen it is obvious to everyone.
Want to take a month off to go down to Argentina? Let's figure out how to do it. You might have to drag along the laptop and keep up with some stuff, but there are probably few reasons to say no. Can I come?
The same applies to sick days or "personal" days (who came up with that term?). You are sick? Please go to the doctor and stay home? Need to go take care of that speeding ticket? Take the day if you have to.
This also applies to work hours. Sometimes you have to put in the time to get something done. When discussed as a team these instanced become self-evident.
I said in another post that I am no stranger to 18 hour days. I hate doing it, but sometimes you have to. In all cases this kind of thing must be fully justified. It can't be the norm. If it is, something is seriously wrong or you need more people.
9 to 5 programmers have one guarantee: They will work 9 to 5 every day and will be held to strict rules when it comes to vacation, personal and sick days. If you want to work a strict 9 to 5 schedule I have to treat you differently. I have to treat you by the letter of the law. So, while the guy/gal in the other plan is in Argentina having fun and doing some coding, the 501'er will be clocking in and out and accounting for meal time and vacation days. Yuck!
I, personally, hate that kind of work accounting. Not for me. To each his/her own.
[+] [-] bluesnowmonkey|14 years ago|reply
I don't want to talk about it. If I'm going on vacation, I probably need that vacation. I would be pretty offended by coworkers (especially managers!) prying into the details of where I'm going, or trying to have a conversation about whether I should bring a laptop. Fuck that sincerely.
Personal time wins, and work can wait, always. I don't work at NASA. We're not going to miss a close approach of Mars if we ship a couple of days later.
Yeah I'm probably a 501 developer.
[+] [-] Jasber|14 years ago|reply
I always felt like I was letting my team down when I was taking time off. So I took a lot less time off.
Ideally I'd prefer an environment that had an open schedule and also expected employees to take a certain amount of time off every year.
[+] [-] ArtB|14 years ago|reply
[+] [-] SatvikBeri|14 years ago|reply
[+] [-] AznHisoka|14 years ago|reply
[+] [-] eli_gottlieb|14 years ago|reply
[+] [-] kevinalexbrown|14 years ago|reply
To borrow the ideal-world-artisan metaphor, if I want a table made by a carpenter, I don't care how long the carpenter spent making the table, and I (ultimately) don't care if it's just a job to her. I care whether my total investment of waiting and money is worth the table she makes.
Problems arise when it's much easier to measure 'passion' and time spent working than value added. These are probably correlated within reasonable bounds, just like total words in a comment and value added to a discussion are often correlated, but I don't upvote on length. It's annoying to see someone getting more respect than you, but turning out crappier work, just because they stay late and fit the cultural bill.
But the flipside is that if time spent and value added are correlated (and I suppose that's very loose across persons, and even within persons), then pay, and perhaps even personal respect for someone's craft, will be tied to that.
501ers recognize that it will probably result in having less opportunities:
We recognize that your willingness to allow your employment to penetrate deeply into your personal life means that you will inevitably become our supervisor. We're cool with this.
I think that's a good attitude, as long as it's acknowledged that without putting in the extra hours to learn, grow, or ship, you might not grow over time and earn the same respect in the workplace[1], and you might not get paid the same.
[1] Respect as a person, of course, should be independent of work, and respect for your craft should probably be based on what you can do, not how long you spend doing it. My closest friends are extremely talented, and also more on the just-a-job end. This doesn't change how I feel about them at all. It's their life, after all.
[+] [-] ChrisLTD|14 years ago|reply
Something is wrong with a job that doesn't fit those things within a normal 40 hour work week.
[+] [-] outside1234|14 years ago|reply
Its not hard, its called contracting for an hourly wage. The problem is that many employers want workaholism at a 40hr a week wage.
[+] [-] roguecoder|14 years ago|reply
I have seen so many developers exploited by people making a bundle off their work with the explanation "I am doing what I love!" Instead, I think it is possible to create without working outside of work hours. I can learn on the job in a way that can be more context driven than reading disembodied books on technologies that will probably never be relevant for my craft.
I don't know about anyone else, but I was always the kid who did the extra credit whether I needed the credit or not. I feel like we still sometimes get stuck in that attitude of needing to do everything in order to not be less-engaged than other people. As long as the community keeps rewarding those over-achievers we will be stuck trying to keep up with the Joneses.
[+] [-] bmj|14 years ago|reply
I'm very sympathetic to the 501 cause--I generally don't work more than 8-9 hours a day, and my free time is spent with family and friends, but I do enjoy reading technical books (as well as many other types of books), and go through hacking-for-myself stints, too. There really is a middle ground here--it's not just two camps.
[+] [-] robomartin|14 years ago|reply
Being a little bit of a dick here, but programming is art and science and there are aspects of it that require dedication beyond a 9 to 5 mentality. I, for one, prefer to hold reasonable hours and come home to the kids. At the same time, I am no stranger to 18 hour days, seven days a week. Sometimes inspiration and problem solving require you to stay on task longer in order to get things done.
And then there are those bug-hunting missions that sometimes never end. I once spent six months tracking down a software bug in a hardware design (Verilog, FPGA). High-speed digital designs can be notoriously difficult to troubleshoot. The problem was caused by a rounding error in an Excel spreadsheet used to calculate parameters plugged into the code months earlier. We used "ROUND()" instead of "ROUNDUP()". Though I digress, the point is that programming sometimes is about recognizing when you need to do a little (or a lot) more than watch a clock.
I'm not proposing that all programmers ought to work ridiculous hours. Whenever I've done 18 hour stints it took me out of the game for weeks. And that's OK so long as there was a point to exerting yourself to that extent.
The bottom of the manifesto says: "To us it is just a job, but we still do it well."
That, to me, is a guarantee to not being hired. That it is "just a job" means that they might as well be welding, at least to me. I don't want people like that in my team.
Having said that, I am the first one to tell someone to get the hell out of the office if they need to go see their kid perform at their school event at noon. Get the hell out and go enjoy the day with your family. Need to take a four day weekend when it isn't an official holiday? Do it! Send pictures. The point is that you build a team and everyone looks after everyone else while having one hell of a time creating a product. Respect, dedication and consideration. 5:01? How about not coming to work to go fly a kite with your kid? I like that.
[+] [-] cmiles74|14 years ago|reply
What is it about programming that requires dedication beyond regular and predictable work hours? If the implication is that the 501'ers aren't thinking about what they do when they are not at work --they say they "...value personal creative projects over commercial products the world doesn't need." Certainly that is an abrasive way to phrase it, but it's clear that they are doing some level of development outside of their workday. This could cover keeping abreast of the state-of-the-art, certainly I feel that it is my responsibility to keep my skills competitive and up-to-date.
You yourself prefer regular and predictable work hours, why shouldn't your software developers be able to enjoy these kinds of hours as well? The implication seems to be that people who work these kinds of schedules will be unwilling to work longer during a "crunch period." I don't see any reason to believe this is the case; I strive to work regular and predictable hours and I will put in extra time when warranted. I take full responsibility for my work and its effect on the company. I don't know what more any manager could ask of their employee and it's not clear where the 501'er is (in your estimation) falling short.
Perhaps you believe that someone who strives for a regular and predictable schedule will be spending all of their time eyeballing the clock, perhaps even "gaming the system" to work as little as possible. For sure, such people exist, but I don't believe that there is any reason to assume a 501'er is one of these people. Again, I have to point out that you enjoy this kind of schedule yourself and you are clearly not spending all day "watching the clock." For that very reason, I find your objection to hiring a 501'er very puzzling.
Lastly, as an aside, I wonder if the objection to the 501'er Manifesto boils down to this: the 501'er clearly values their personal life over their professional life. It seems to me much more difficult for a manager or business owner to baldly argue that their employees should value their work product more than their girlfriends, wives or families. Yet I can't help wondering if that isn't their true objection; that despite what they may say or do they are very much looking for people who are willing to live very unbalanced lives, lives that are unbalanced in favor of the workplace.
[+] [-] bmelton|14 years ago|reply
It's important to me to maintain a good work life balance. To this end, I work from home 90+ percent of the time so that 'working late' doesn't mean having to miss out on family interactions, or becoming the proverbial stranger to my family.
The flip side though, is that if there's a problem, or a challenge that needs to be solved, I generally go all out until it's solved. Not every bit of programming is amazingly fun -- CRUD operations or writing login forms for example are pretty mundane most of the time.
But when I'm building out the logic for something that I don't know is possible, or if I'm attacking a problem I don't immediately know the answer to, I tend to spend a lot more time on it than 8 hours a day, and I seldom even notice until I'm done that I have.
To me, it's not about watching the clock, it's about getting work done. If it takes me longer to get something done than I thought, that shouldn't necessarily mean that it's going into the queue for another day. Similarly, if I have dinner plans with my family, I'm not likely going to miss dinner because there's an unsolved problem. I don't have family plans or obligations every single day, so there really isn't a good reason for me to bolt at 5:01 every single day unless things are running smoothly.
[+] [-] hkarthik|14 years ago|reply
I've noticed that there are times that I'm so interested in the problem at hand that 5:01PM just blows by. When I finally look up from the code, it's 7PM or later. In some cases this lasts for months, because the work is both interesting and rewarding. However, it never lasts for too long because of the inevitable cycle of software as it moves from being greenfield to brownfield.
During such times, I've felt less of a need to attend user groups, hack on personal projects, or do much reading outside of what I need for my immediate job. Between the job and my personal life, I was content with my time spent.
However, fast forward a few months and I'm back to leaving at 5PM so I can read and hack on the side with the extra free time. Over time the day job gets less and less interesting and then I start to look for something new that might trigger my flow once again. And then the cycle repeats.
[+] [-] DanI-S|14 years ago|reply
-- The 416 Developer Manifesto --
* I get hired because I'm good at what I do, and excited about it.
* I'm good at what I do and excited about it because I get enough time outside of work to pursue my interests.
* If you want to maintain my value as an employee, make sure I get enough off-time.
[+] [-] debacle|14 years ago|reply
[+] [-] AndrewDucker|14 years ago|reply
In any case, I try not to _work_ more than 40-hours per week, but my play frequently still involves computers.
[+] [-] jack-r-abbit|14 years ago|reply
[+] [-] tel|14 years ago|reply
On the other hand, it's not strange to seek unity between your passion and your work. This is a great path for those who desire to have their material accomplishments define part them and is basically a necessary attitude for living in a meritocracy. It doesn't mean that you dislike your family, friends, and free time, simply that you feel that creation is also of central importance.
It's just different ways to self actualize. You can't compare them, really. You can accept the differences and work with people however makes everyone the happiest and most productive, though. 501 programmers may not have the same need to do exciting, groundbreaking work. They also don't want to spend the time. It doesn't mean you can't make use of them and make everyone perfectly happy. It may mean you don't want to actually work with any of them if you're trying to do something very difficult.
[+] [-] StavrosK|14 years ago|reply
Can't we just agree to work during working hours (if you need me to work a bit more as a favor to you, or if you pay me overtime, that's totally okay most of the time), and spend the rest doing what we love, including, if one is so inclined, programming?
[+] [-] mtoddh|14 years ago|reply
[+] [-] jmduke|14 years ago|reply
The list of pitiable/respectable items are a bit different. In particular, "Mostly only read books about coding and productivity" I do find unsatisfactory; the power of literature is massive and too often untapped, and the thought that reading 300 pages about a language or productivity is more valuable than, say, The Brothers Karamazov frightens me a little.
Dearth of passion doesn't make someone a '501 developer', nor vice-versa; I just think being passionate about one subject to the exclusion of everything else is dangerous, no matter the industry or lifestyle.
[+] [-] ef4|14 years ago|reply
Probably true. But you don't get to be Mozart or Van Gogh by being well-balanced. ;-)
[+] [-] phillmv|14 years ago|reply
[+] [-] scarmig|14 years ago|reply
That might be part of the reason we have thousands of tools to increase programmer productivity, but there are piles of money to be made by providing a simple MVP in a market that's totally untouched.
[+] [-] davidw|14 years ago|reply
[+] [-] drivebyacct2|14 years ago|reply
I have to believe this is how most people are who don't have the time or energy to write long-winded blog posts about "be like me so I feel better about how I live".
[+] [-] canthonytucci|14 years ago|reply
Software is complex. Complex enough that, for most, if you're not passionate enough about it that it creeps into your hobbies and your reading, you probably won't be much good at it. The manifesto seems to acknowledge this, while at the same time implying that they want to be well paid and get lots of time off. In any other industry I am familiar with, these are the perks of being the best.
Perhaps I'm taking it a big far, but to me, the most exciting software projects are closer to art than any other sort of work. I'm not familiar with many artists who view their works as "just a job", and would be surprised if many compelling works were created by people with that kind of mentality. I think it really reaches out to any kind of skilled work, I wouldn't want to be diagnosed by 501 doctor, bring my car to a 501 mechanic or drive my car over a bridge designed by a 501 engineer.
EDIT: removed ending nastyish statement.
[+] [-] edw519|14 years ago|reply
Good umpire: "I call 'em as I see 'em."
Better umpire: "I call 'em as they are."
Best umpire: "They aren't anything until I call 'em."
Same thing:
Good programmer: "I am a <501 or xxx> developer."
Better programmer: "Watch what I do. That's how you do <xxx>."
Best programmer: "Whatever this project needs me to be, that's what I am."
[+] [-] adestefan|14 years ago|reply
I'll never put in 80 hours in a week for you. I'm sorry, but there are more important things in life than programming. Maybe I'll never be the best programmer, but I think I'll be a better person.
[+] [-] Udo|14 years ago|reply
"I call 'em as I see 'em." is an attitude I can work with, because it lends itself to meaningful discussion and, maybe, some kind of understanding. "They aren't anything until I call 'em." on the other hand is useless wankery in my opinion.
On the other hand, I agree with you that "I am a <501 or xxx> developer." is a somewhat weak statement, but for other reasons than you. I think 501 and others are overly broad labels and philosophies. Most people who are capable of having their own opinions would probably agree or disagree on some of the 501 points, but not subscribe to all of them as a package.
[+] [-] unknown|14 years ago|reply
[deleted]
[+] [-] ken|14 years ago|reply
The kind of programming that was fun for me when I was young is completely different than the kind of programming that employers pay for today.
Why do you think people are spending their free time on Github? They miss programming for fun so much they'll do it for free.
[+] [-] swlkr|14 years ago|reply
[+] [-] ef4|14 years ago|reply
This naturally makes 501 types uneasy, because it leads to unfavorable comparisons.
[+] [-] _delirium|14 years ago|reply
But I would guess that a substantial proportion of the current tech workaholics wouldn't be, because they're driven by something other than intrinsic love of technology/computation/programming. Something more like a drive-to-be-on-top type personality, perhaps.
[+] [-] forza|14 years ago|reply
[+] [-] MatthewPhillips|14 years ago|reply
[+] [-] adestefan|14 years ago|reply
When I program for pleasure, I'll do whatever I want and leave unfinished pieces all over the place.
When I program for work, I'm getting paid for something someone else wants me to do. I'm I'm not getting paid, then I'm not working on that code. If that makes me a 501 programmer than so be it.
[+] [-] orangecat|14 years ago|reply
Yes, about half the manifesto is reasonable, and the other half comes off like unmotivated students who get mad at the nerds for messing up the curve.
[+] [-] xyzzyz|14 years ago|reply
[+] [-] jmduke|14 years ago|reply
I don't think that's entirely fair; I can pretty handily separate myself and other CS majors into those who spend their weekends/late nights doing hackathons and such, and those who pursue hobbies and activities separate from programming/development.
In my experience, the latter doesn't specifically have less zeal for programming than the former; it's just balanced by enthusiasm for other subjects and interests. The point that there are many 9-5 programmers who treat it as a career and nothing else is well taken; that being said, you don't have to be spending the overwhelming majority of your waking hours in a terminal or IDE to love programming.
[+] [-] kamaal|14 years ago|reply
Everybody has a world of his own. A friend of mine comes from a family of farmers. Back here in Bangalore, we would drive down to his place during our engineering college years. And we would spent great deal of time in fields and a small hill close to his place. Now you really must hang out with those farmers. Try working in the field for a couple of hours and experience a cool breeze blowing through your hair, drying you sweat. Try eating a banana or a guava straight plucked from the tree, try roasting a chicken on a chicken farm. Try climbing a small hill and then rest on it while sleeping and staring right into the sky watching eagles. Try diving in to a the lake near the fields. Do you know how much fun that is? None of that is rocket science but it feels like heaven when you are experiencing it.
These days I try to hang out with cab drivers who drive me back home in the night. I buy them a cup of tea or coffee in the night. And it awesome chatting with them and listening to their experiences. Its crazy how much fun they have.
Some of the words happiest people are the ones who work during the day in the sun smelling the sweat essence of mud.
Passion and fun can be found even in the smallest of the things we do in life. And people do that all the time.
The guide to a happy life is to really focus on how you do things rather than What things you do.
[+] [-] jack-r-abbit|14 years ago|reply
But my take on the whole situation can be summed up like this: I work from home 2 days a week and often times when it is approaching dinner time and I'm still in the office, my wife will come in and ask something like "how much work do you have left?". Well, the most accurate answer is "a lot... weeks" but I obviously can't finish it all tonight. I'll have to stop at some point and there will still be work unfinished. Even if I worked until midnight... there would still be work left. So if I've put in 10 productive hours... why is stopping at 5 any more significant than stopping at 6? or 10?