Hacker News new | past | comments | ask | show | jobs | submit login
I Guess I'm Not A 501 Developer (adit.io)
295 points by shimms on April 18, 2012 | hide | past | favorite | 178 comments



I think there is a lot of delusion going on here.

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.


No, the 40 hour week was fought for - before there was ever a software industry. The 8 hour day and the weekend are union accomplishments.


You really need to brush up on the history of worker's rights, even just in America. https://en.wikipedia.org/wiki/Homestead_Strike#Battle_on_Jul... Basic rights were literally fought for. Remember when child labor laws didn't exist?


define wealthy?

Most people writing software are wealthier than most of their ancestors and 95% of the world.


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.

Yeah I'm probably a 501 developer.


> I don't want to talk about it. If I'm going on vacation, I probably need that vacation.

You probably need it. You still need to talk about it unless you are the boss - and that's not unique to the IT industry. There's other employees that might need a vacation, that might have a sick child or other things to take care off and it's just a basic fact of corporate life that it's mostly impossible that the whole company goes on vacation at the same time. So the manager must balance on who needs the vacation most, who had the first pick last time etc. So you either talk about that and maybe accept a compromise or you don't go. It's as simple as that.

> Personal time wins, and work can wait, always.

Think: Small company, important Customer who already has TV adverts on air with the release date. Project hits a roadblock no one anticipated, is a couple of days late. You can still make it if you put in extra hours, but won't make it if you prefer your personal time. Customer threatens to sue for a sum that will make the company go bust. What are you going to do? Stick to "work can wait" and look for a new job, make all your colleagues look for a new job?


And that's just fine.


I also enjoy this environment, but it does have a big drawback.

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.


> expected

"required"


I don't think requiring employees to take time off is a bad thing.

If you really don't want to you don't have to.

But the point is to allow employees to take time off without feeling guilty, while still allowing them to control their own schedule.


How about incentivised? Months back there was an HN post about a company that gives bonuses to people who take off... I think it was at least 25 days per year to ensure that people understand that taking time off is not a bad thing.


Meanwhile, in Europe, it's common to have between 4-7 weeks vacation per year, and it's seen as a bit weird not to use all of it. The social pressure around vacation goes in the completely opposite direction compared to the US.

Funny. I wonder why.


No need to feel guilty. The power of making everything a group decision is that, if it works well balance and fairness is a natural result.

I grant you that this is a hard model to scale. Not sure how you'd do it with 1,000 employees. Thankfully I have never worked in the bowels of such monsters.


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 think this only works when everyone involved is reasonably capable and experienced. Pure management numskulls that can't code themselves out of a while loop are never going to get it. No need for them in my little universe.

I've been in the game long enough to know just how funny it is to say "Here's the deadline for this project". Really? How in the world did you come up with that date? This isn't to say that one should not have a sense of how long something will take, but software projects are notoriously tough to estimate from just about every perspective.

I'm not sure what "load balancing" means. Are you asking about one person working more than another or the rate of code produced per unit time (say, per day)?


I mean "load balancing" in the sense of the amount of work that get assigned to an employee so that you don't get tasks like designing an ORM from scratch in less than week just because your PM heard bad things about Hibernate.

If the answer is don't work for assholes or retards, then that fails for everyone outside of a major tech centre where you take whatever jobs are available.


Well, all situations are not the same. Obviously things will be different when managers are knowledgeable. This doesn't mean that they have to know it all. I like people who come right out and say "I don't know much about this" because then everyone starts learning. It elevates the conversation from nonsense to something constructive.


My problem is that I see this used as way of forcing unpaid overtime on to workers by creating unreasonable release dates. In an agile environment where people are given lots of autonomy and can give accurate estimates I like your idea, but it seems for most it will be a disaster. We've recently had a client demand we deliver a month earlier on 6 month project in a 5 man shop with only two months left. If it wasn't for paid overtime I'd bail out of here.


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.


Can I be in your world? It sounds like heaven.


Well hold on a damn moment. We all know what really happens. The 9-5'ers end up being made to work 50-60 hours/week anyway.


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.


"...as long as it's acknowledged that without putting in the extra hours to learn, grow, or ship..."

Something is wrong with a job that doesn't fit those things within a normal 40 hour work week.


It's not the job so much as the market. There exist people on the market who are willing to put a lot of effort and are able to become very good at what they do. Even if you had a job that gave you half-and-half (20 hours for work, 20 hours to learn, grow, or ship), there would still exist people on the market who are willing to put in a lot more extra effort after the 40 hours.

Those are just the facts of the industry. It doesn't mean there's something wrong with the job, but rather, that there are inevitably going to be some highly-skilled people who got those skills by doing things on their own time.


I agree with this. There are certainly situations where more than 40 hours of week are a necessity, but those situations should typically be temporary for the majority of employees. If you are in an organization where meeting your goals requires more than 40 hours a week, week in and week out, then I would say there's probably issues that go beyond your work ethic and personal boundaries.


It really depends on what your goals are and who is setting them.

If your employer is expecting you to work >40hr/week to accomplish their goals, and that violates your personal boundaries and goals (e.g. I want to make sure I'm home for supper with my family every night), then there IS a problem. It's not necessarily your employer's problem, and it's not necessarily your problem, but there's a definite mismatch between expectations that needs to be addressed.

If your goal is to become an exceptionally good developer, and your employer is expecting you to be spending all of the 40hr/wk doing work (instead of learning), then you've got the same problem. There's a mismatch of expectations. You're expecting some portion of your time during the week to be on self-improvement, and your employer is not.

But, there are equally situations here where there isn't a problem at all!

If your employer is expecting >40hr/wk, all working, and you're more than happy to collect the overtime, then that's totally fine! There's a match!

Likewise, if you're a decent developer (I'm hesitant to use the word "average", only because North American society tends to cast that word in a negative light), and you're happy working 40hr/wk and staying at roughly the same level, then where's the problem? You're happy where you are, your employer is happy with the work you're doing, all is well.

And, if you're passionate developer whose goal is to become exceptional, and you go home immediately after work and hack away on open source stuff/your own projects/whatever, then that's fine too!

There's a few really important things that everyone should be asking:

* What are my personal goals? What are my priorities? * Are my current employer's expectations well-matched to my own personal goals? * If not, what do I do about it?


> "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.


It's not really possible here; the value of you going out and doing some unrelated pet project is much lower per-hour than working on an actual company project but it is non-zero. It's not like the company can look at what you are doing hour to hour and negotiate some random hourly amount that changes every hour.

Besides, hourly wage really doesn't make any sense for most jobs and certainly not software engineering. If someone works for 5 hours a day and gets more as much done as someone working 10 why would they get paid less? You could do some backwards math and come up with some hourly wage for the 5 hour guy but that's really just putting the cart before the horse.


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 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.


What's interesting is that I agree with everything you said!

My view of the job is that you should be passionate about what you are creating. That is not at the exclusion of personal or family life. Not at all. At times this dedication to the task will result in sacrifices. I am saying that, so long as these are justified this is OK.

If working long hours is normal there might be something wrong with the process. My view was more about that case where "Hey, I am really into getting this state machine figured out. I should stay and get it done 'cause I'm in groove" or "we really have to ship this by Friday, let's get it done and take a few days off next week".

In my view of the job the team is a team and everyone looks after everyones interests and well-being. I've let employees go out of town for a few days (fully paid) to go see a concert by a band they really liked. When asked, if nothing horribly pressing is happening I'll almost always say "yes". Why? Because I have those interests and passions outside of work too and it would not be fair to treat others differently. This is not a religious view, BTW, as I am most definitely not religious. When someone takes a few unscheduled days off to go do something they love the business does not loose money, you gain by fostering a stronger relationship as well as having someone come back from their trip re-infused with energy.

Robotically clocking out at 5:01PM has never made sense for me, even when I was the employee. I don't think I have ever worked 9 to 5 in my life. Maybe I'm lucky 'cause I've had fun jobs that I wanted to keep doing.


The only thing I really disagreed with was the notion that 501 developers aren't necessarily good developers.

I've worked with some folks who belied that argument. Good, solid work, but no more than 8 hours of it. In all fairness, this usually (though not always) was the result of having been exploited. They were great developers working 18 hours a day, 6+ days a week, until they came in and quit. Realizing how necessary they were, the employers were able to strike a deal that kept them. Usually the only complaint were the work hours. Employers give them a gentler schedule and they stay, still producing good code.

I get the motivations for the 501 guys, and will freely admit there were places I worked where I wasn't happy, and that unhappiness expressed itself as a nonchalant attitude toward the work.

Of course, once I realized it, I made it a priority to get out; to get myself somewhere I could enjoy the work, and to get my employer the opportunity to get somebody in place of me that might enjoy the work they were doing. I didn't feel it was fair to either party for me to be that guy, and sadly, the work itself was exhilarating, it was a variety of factors within the team that made the job unenjoyable.

I miss the work. :'(


> The only thing I really disagreed with was the notion that 501 developers aren't necessarily good developers.

I don't think I said that. If I implied it, I'm sorry, I should have used more precise language as this is not what I believe.

My comment about writing good code had to do with their manifesto. They obviously go into a lot of the reasons why they want to work 9 to 5 but fail to also commit to doing a solid eight hours of work and producing good code during that time. You can work eight hours and produce absolutely nothing or far less than you could/should.

So, if you are going to work eight hours and code for eight hours --no youtube, no facebook, no HN, no anything outside of what you are supposed to be doing-- then, that might be OK.

In other words, like brick layer lays builds a wall or a Walmart employee attends to the cash register.

If you want flexibility than you are not a 501'er.


Ah -- my apologies for putting words in your mouth.

I'd say that's a fair and accurate statement all around. If, as an employer, I can't count on you, as an employee to be flexible, then I'm certainly going to be less tolerant of the miscellany (like HN, youtube, etc.) than I would be if I knew you were more likely to get things done.

Of course, if my guys can put in only 8 hours and still meet all tasks assigned while surfing porn and youtube all day, I'm almost certainly going to look the other way.


Before I was a software developer I was an auto mechanic and this ethic is what makes the good people good in both fields. Sure, you can make decent money doing flat-rate brake jobs that pay 1.5 hours in 30 minutes, but if you like to fix cars, you crave those problems where you've got to dig deep and experiment, and are more concerned with solving a challenging problem than what the $/hr turns out to be for that job. In an auto shop, the people who are willing and able solve the hard problems when they come up generally get assigned the best(easiest to finish under book time) of the other work. From what I have noticed in both fields, the happiest and most successful people have a sincere interest in their craft (knowing how, and wanting to know how things work), and this interest often carries over into how they chose to spend their personal time.


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.


Creative endeavors are not regular or predictable. Manual labor is. That's the difference, as writers and painters figured out a long time ago, but we seem to be struggling with. (For understandable reasons - it's often a team sport and not a solo one like those other two are)


I understand that there's a continuum from art to craft, from something like the code for Lisp at one end and some generic RPG reporting code at the other. I understand that artists work on odd schedules and people that work billing software typically do not.

Artists often have patrons who finance their art. I haven't seen much of this in software development. I'm not sure how artists or writers are treated in their respective workplaces, but is it the common case that they cannot expect to work regular or predictable hours? I know dedicated copywriters and graphic designers that tend to work schedules similar to my own, perhaps they are the exception to the rule.

In most cases, I find the argument that software development is similar to art less than compelling. In my experience it is extremely rare to see software treated as art and even less so to see an software developer treated like an artist. In fact, I'm not sure what being "treated like an artist" would look like. Perhaps I have seen it and simply didn't recognize it for what it was: long and irregular hours, neglected private lives, exhaustion and burn-out.


I think you've got it in the last part. Basically, where someone throws themselves into creating something, rarely coming up for air. People often pay lip service to passion without ever explaining what they mean, but I think that's what it is - feeling driven to commit yourself wholly to working on something for periods of time, all else be damned, followed by rest periods where you're not creating much.

As for the patrons, that's what a general release is for - to unveil it into the world and have the public shower patronage on you if they like it.

I would say I tend to work on the artist schedule - fool around with things and do more communications-intensive tasks during the day, and at night after everyone's gone to sleep, 2-4 hour chunks of intense concentration in which I get more done than entire other days.

I've never found a company that really let me do this, except one that let me come in late and get really productive after everyone's left. I've found it a much better fit.


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.


Here's something better:

-- 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.


I don't get the 416 reference?


You've gotten an error because what you've requested is beyond the available range. (My time is my time, not yours.) Although I think a 413 would make more sense—the request is larger than the server is willing to process.


That's the one - although 413 makes a lot of sense too :)


"Requested Range not satisfiable," perhaps? I don't quite get it, either.


Oh, it's an HTTP code. Very nice.


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.


> I just think being passionate about one subject to the exclusion of everything else is dangerous, no matter the industry or lifestyle.

Probably true. But you don't get to be Mozart or Van Gogh by being well-balanced. ;-)


The world only had one Mozart and one Van Gogh. There never was and never will be a second Mozart or a second Van Gogh.

As such, the statement itself taken literally is extremely silly and doesn't have enough details to be interpreted figuratively.

Let's say for the sake of argument that you mean "genius that contributes works of art". One common trait of such a person, besides being incredibly talented, is persistence. This would imply in the minds of lesser individuals that such a genius is impossible to have a well-balanced life.

However, the pitfall of such a mentality is that having work-life balance does NOT mean diving the time equally between work and life and is extremely relative, being a function of the individual itself, his work, his culture and the society around him.

What this means is that the actual amount of time spent on doing something is actually less important than the quality. Say, if you're spending 5 hours with your son but being distracted by problems at work you're going to please yourself and your son less than a single hour of enjoying the present moment. This goes for anything you want to do ... top athletes and top violinists spend less time practicing than their peers, but the training is a lot more intense.

And to answer your implied conclusion ... quite the contrary, being a genius capable of creating things is correlated with a sane mind and a sane mind needs a good work-life balance.


But you don't get to be Mozart or Van Gogh by being well-balanced.

My translation: The actions and intentions of most people are aimed at not becoming Mozart or Van Gogh -- as in not dying destitute in your 30's and being buried in a pauper's grave.


Were Van Gogh a programmer today he would have been late blooming second-career type rockstar cowboy coder that burned out in a half a dozen years before killing himself. He was an amazing artist (my favorite of his time) but is exactly the cautionary tale that your 501-type would point to.

... actually, that sounds like _why but without the whole suicide thing in real life.


You could be a Leonardo da Vinci, though.


Ha, we had the same thought!


No. You get to be Leonardo Da Vinci though, who was a painter, a sculptor, an inventor, a thinker and a ladies man.


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.


Looks like semicolons had their run and it's time for something else.


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.

EDIT: removed ending nastyish statement.


Reminds me of this oldie but goodie:

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."


"Whatever this project needs me to be"

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.


Put in 80 hours a week on someone elses project - sure, totally get this attitude.

But if you aren't willing to put extra hours into your own project (or others who you believe in) - then you will never be great.

I work 40 hours a week at a day job with a local startup. I'm not a founder, nor employee one - I do have some decent stock but really I just work for the salary.

My passion comes in the extra projects I take on for myself. I do it because it honestly interests me and isn't work - it's a hobby as well.

This whole "never work over 40 hours" is very humorous to me. Work what you feel like - no one else gives a damn what you do.


The problem is that people do give a damn.

People automatically assume that because I don't want to work over 40 hours means that I'm just in it for the money/job/whatever. They automatically assume that because I don't have 20 projects on github, I'm not active on twitter, nor do I have a blog that's updated twice a day that I'm not passionate about my profession. They automatically assume that because I don't go to 4 meetups a week nor contribute to their favorite open source software every other day, that I don't don't care about the community. Just because I don't do these things, it does not mean I'm not a passionate programmer.

People are also confusing the difference between work and pleasure. Just because I'll only put in 40 hours of work in a week, does not mean that I'll not program on the nights/weekends.


Well, let's be honest then.

If you don't contribute to the projects, if you don't spread your knowledge, if you don't give away your source...

...what good are you?

What have you done?

How are you anything other than a consumer of other people's work and knowledge?


I'm sure his children don't see his worth as a father improved by the time he spends coding open source instead of interacting with them. A similar thing can be said for every other non-programmer he interacts with. Perhaps he won't leave the programming legacy that you or he would like, but that doesn't discount the value of the other legacies he may create in the meantime.

(Apologies if my gender bias above is incorrect.)

I think that the 501 argument at its core is that we shouldn't judge a programmer's personal value solely by their programming. Programming is the one thing that everyone in this argument has in common, so it's easy to turn it into the only metric by which we judge people. Any other metric might not apply to all of us, so it would be of limited use.

I think 501 developers are tired of being scorned or feeling guilty for not dedicating themselves to programming all the time when other segments of their life need attention too. But let's face it - if they weren't passionate about programming, they would hardly take the time out to make the argument.


Don't get me wrong--I'm not saying, "Hey, to hell with your kids, we've got commits to make!". I actually got hammered pretty hard a while back for defending the stance of fathers telling VCs/bosses/etc. to fuck off when asked to choose between family and code. That's the right thing to do.

But, there is a real problem, right? We can't really judge a person by anything other than their programming value--and the vast majority of us, here on HN, are only somewhat qualified to do that much.

Even in a seemingly simple case such as whether or not we should ascribe personal value to somebody who has had kids, we can't assign value easily. Do they support their kids? Do they beat their kids? If yes, is it for good reason? If yes again, how often do they beat them? Even something as seemingly clear-cut as that is a transparent as mud.

Are they homosexual? Are they polyamorous? Are they racist? Are they sexist/genederist? Are they a fan of classical music? Do they play an instrument? Do they like the Yankees?

All of that is stupidly subjective in terms of valuation. Why bother?

Programming, though--and more particularly, how they contribute to the community of programmers--is something that we can at least try to reason about. Something we can attempt to quantify (and yes, you can game lines of code, you can gain commit counts, etc.).

Lastly, note the attitude of the ancestral post:

"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."

That's a little high-and-mighty, yes? Didn't even bother to qualify "more important things in life than programming". There are, but that was an unsupported statement that we can't expect anyone who values programming above all else to agree with. The "better person" bit, too--better than whom? Themselves having chosen to value programming more? Us, the hapless codemonkeys who see a chance to make progress for everyone? Who?

I don't begrudge people that are punchclock coders. If you ignore what I do outside of my day job (which admittedly is secondary to my startup efforts), I qualify--and I come in late and leave early!

What I cannot stand, however, are people that make unsubstantiated claims, that come off as holier-than-thou, and that seem to be unable to grasp that they can insult a whole group of people without meaning to.


It is definitely still a problem. If we discard the programming-centric judgement metric, we are left with essentially no common ground on which to form opinions, so that's clearly a non-starter as well.

I don't have an answer for all of this, on either side. It seems to be rift-causing issue from both directions. I think that rift is something of a false dichotomy, which is my main problem with this issue. The people in this debate are all actually on the same side - they care enough to debate it. What they care about may differ, but that hardly seems to matter in my eyes, as long as they do care.

(I dislike all the downvotes you've received out of disagreement - it was a thought-provoking comment that has continued the discussion. I upvoted, for what it's worth. Playing devil's advocate seems to have gotten you singed a bit. :) )


I think I agree with you--and I don't really have an answer either. It's hard business all around. :(


"what good are you?"

That's just an awful way to judge someone. Just because he chooses not to give away his work, or do any side projects at all does not mean he is "no good". There is more to life than writing open source code you know!


Where did I ever say that I didn't do those things? I'm railing against the people that think that just because that's not what you do with every day and every hour of your life means that you're not passionate about it.


"Where did I ever say that I didn't do those things?"

meet

"Just because I don't do these things, it does not mean I'm not a passionate programmer."

I apologize if I incorrectly read your statement.

As for passion:

I mean, a lot of people are passionate about Jesus, and are passionate about the Chicago Bears, and are passionate about Jersey Shore.

That doesn't mean that they're doing anything genuinely useful.

The problem here is that it isn't enough to be passionate. You have to be doing Good--and if you look at my original wording, that was very much what I asked (albeit with poor capitalization): what Good are you?

Again, if all you do is dump code into the maw of some proprietary system without writing about it or trying to share your knowledge or give away your tools, well, you haven't really helped anyone who isn't a user of your project, right?


Creating software that helps whoever uses it is the only immediate requisite for being a useful programmer.


I can't think of a better person than those who find something they truly love and are passionate about. No one said you should put 80 hours a week into any one thing or for any one company (lets face it no one pays enough to be worth 80 hours of your time). But the 501 manefesto comes across as a whining from the "just a job" crowd.

I almost never put more than 40 hours a week into my "job". But I love it and I know I do great work. I've never found anyone has judged me for when I go home, but if they did, I'd put them in their place right quick.

I do put probably another 10h into side projects, maybe another 10h or more reading, being involved in user groups and talking to people (which I love) and blogging whenever I stop procrastinating.

I love doing all this. I also love my family, I play with my daughter every day and I see my friends all the time. Yet amazingly, in all that I still find an inordinate amount of time to waste watching terrible TV shows.

The point is there is more time in our lives to do awesome than the 501 developer seems to want to admit. If there is anyone who deserves pity it is anyone who does anything because it's "just a job". I can't say I'll have much regret about all the time I've spent coding, and learning and attending meetups, but I can say how much regret I would have doing "just a job" for 40 hours a week. Exactly 40 hours a week worth.


I think that's the point that everyone is missing. Just because you put in 40 hours at your job, doesn't mean you're not passionate! Because at the end of the day the 8 hours I give to someone for a paycheck "is just a job."


That's where the problem lies with this 501 developer manefesto. In an effort to slam overtimers he's also globbed in those who simply have passion and want to use their free time doing something they love. It's a terrible manefesto in my opinion.


I think the point of the manifesto is reject the continuous raising of the bar that enthusiastic programmers bring to the community. An accountant doesn't need to compete with someone who is passionate about accountanting on the side. Neither does a welder, a shopkeep, or a factory. These people just want to put in 8 and forget about it. They don't want to put in effort to update their skills, they don't want to learn a new framework, they want to do the least outside of work they they can and still collect a paycheque.

On one hand I worked at a place where no one had learned how to use Java generics since they had been on 1.4 until recently, and they never saw the need to learn (this was a couple of months ago). On the other hand if I was only an accountant since it offered the best prospects for my family I'd probably want to be reminded of it as little as possible.


This is such bullshit reasoning. I have a family member who is a very successful welder that is continuously working to improve his craft. This is the reason why people in the tech community seem smug to outsiders.


I actually didn't know that welding was something with varying degrees of skill. That wasn't said out of condescension but rather ignorance. I guess "cashier" would have been a better example. There are people who want to work like cashier but get paid middle class incomes. They are "middle class cashiers & stock boys".


Middle class cashiers and clerks used to exist until reading and writing became ubiquitous, and computers took much of the effort out of keeping track of numbers and data processing.


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.


[deleted]


If you do programming because it pays better then, you are going to be just another guy who never amounts to anything in this world.

I know a few of these people. You're right, they've never amounted to anything... except

- Good and loving parents

- Competitive sportsmen

- Inspiring teachers (in the best sense, outside of schools)

- Good and helpful friends

- World-renowned experts in obscure fields

- Effective local politicians

Just to name a few people I know personally. And while they might never be known as awesome programmers, they do pretty well and their colleagues still look to them for leadership, because they know their domain expertise well.

It's about priorities, you know?


Add in the guy who said: "Programming for fun" was always a foreign concept to me...I was not a great programmer. I pity the fools who are maintaining my old code right now.

A little known fellow named Ken Jennings who happened to win a few million on Jeopardy.


The big problem I see with the "501 manifesto" is that it assumes there is just one thing called "programming".

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.


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.


The only reason this whole debate exists is that there are lots of us who love programming, and would be doing lots of it whether or not it paid.

This naturally makes 501 types uneasy, because it leads to unfavorable comparisons.


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.


Almost a dozen years ago, I took a friend to a jam session. It just so happened, that one of his musical heroes, an Irish Uillean piper was on tour and decided to sit in. They hit it off well, and my friend became a protegé for awhile. Anyhow, the touring musician told my friend, "Don't try to play music for a living. It'll kill you."

Sometimes having to do something, especially if you can't do it exactly the way you like, can kill feelings for it. Sometimes having to do something for long hours can do the same. I'm not so sure having or lacking these tendencies makes one person better or worse than another.


I can't help thinking that most of the programmers who program (a lot) in their spare time do so because they aren't satisfied at work.


This definitely applies to me.

I'm in my first job, I've been doing this for almost 2 years now. Everything about this place screams "Mediocrity". Most of my coworkers are middle-aged programmers with average skills and no hope of ever becoming anything beyond average. All they want to do is work their 9-5 hours (in all fairness most of them stay until 6), and daydream about the next way to spend their 35day/year vacations (not to mention the ~20 days of public holidays. Yay France!).

I'm not satisfied, a better word would be "fulfilled" at work. I am the youngest of a 50+ programmer team, (not-so-)freshly graduated and I'm regarded as the best dev on the team. Because I love programming, because I don't want to stop learning, because I care.

The only thing that's kept me going for so long is the 2-3 hours of "real" programming I put in every evening. So far my gf's being very comprehensive about that, but I know things will change when kids will come into play. One of the main reasons I read HN is to remind myself that interesting, fulfilling jobs do exist. One day...


> 35day/year vacations (not to mention the ~20 days of public holidays. Yay France!)

I wish it was true; but you are just bullshitting.


I wish it was false; I really wish I was bullshitting.

http://www.travail-emploi-sante.gouv.fr/informations-pratiqu...


This might be true for some, but there are plenty of reasons why someone may be completely satisfied with their work while also wanting to program extensively in their free time.

Anecdotally, I find that I program the most in my freetime when I am feeling the most fulfilled at work, which would seem to be the opposite of what you describe. That said, rather than just use myself as an example, I can think of other scenarios where individuals may like to program a lot outside of work:

Some pople enjoy entrepreneurship but also desire and/or require the stability and benefits of working for someone else. In that case, they may use their free time to build products of their own.

Some people enjoy much different levels of "hacking" than what you could find at a single work place. They may be someone who is primarily interested in the work they do, so they are eager to put in 40 hours doing it. But then when they get home, they might like to do something entirely different. Maybe they make mobile productivity apps in Objective-C, but in their free time they like to hack up algorithms for AI opponents for board games in Lisp.

Still others may be in a position at work that while they do program, they also thoroughly enjoy the responsibilities for and time they must dedicate to managing teams or training individuals. Those things, rewarding as they may be, mean that there are just not enough hours in a single work day for the individual to get their fill of programming, so they do it in their free time as well.

And some may just like the social aspect of being active open source contributors. They may program really innovative and cool stuff at work, but the choose to do some more mundane open source stuff in their free time because they like collaborating and contributing back to projects that have helped them get to the point where they are today.


That wouldn't surprise me, because the distribution of development work that companies need done is very different from development that is fun. CRUD apps are often necessary to the business, and tolerable if you enjoy programming, but not terribly good at satisfying intellectual curiosity.


I'm satisfied with my work, but I also realize that because of the industry that I'm in (low-level embedded), I'll be writing about 90% of code in C. So if I want to dabble in something else, then I'll be doing it on my own time.


Work can't satisfy everything. I enjoy making useless things, sometimes! I enjoy owning a project entirely. I enjoy helping friends. It's okay those itches aren't scratched by work, because work pays me.


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.


I'm guessing many ambitious startups in SV are like that...


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.


This naturally makes 501 types uneasy, because it leads to unfavorable comparisons.

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.


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.


These people you're talking about...they are called: "programmers".

That's how some programmers's brain being wired: category, structured, organized, etc. I'm guessing it is mainly because of the work we do every single day, single second, of our life, i.e.: that's what we do and we, fortunately or not, applied it to our daily life.


The "501 Developers" are trying to negotiate as a group. That creates a dichotomy where there previously wasn't one.


(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?


I already said this on reddit, but I guess we should make a "501 programming lover" manifesto where we keep everything but the last part of the 501 developer manifesto.


Definitely some good points. I can relate with, "But the second part makes it sound like your days of learning and creating ended when you got your diploma. I can’t respect that." I have a friend (an EE with several jobs offers out of college but who chose to take the most cushy government job that was nothing but paperwork) try to make me feel guilty for spending my spare time working programming a side project rather than going out. He claimed "we graduated, we're done 'really' working" and after talking to him made me realize that he hadn't ever really enjoyed the classes in his major or what he's doing now. I understand there are a lot of people who find satisfaction in their lives outside of work but I think that there are many who never make finding their true passion in life a priority.


Why does it always have to be one or the other? Why do we feel the need to assign labels to everything?

And why in the holy hell are some programmers so damn single-minded that they can't accept that others who are passionate about programming can also be passionate about other things. I'm passionate about my job and consider myself among the extremely lucky few who gets to do what I love for a living (and, at the moment, in a place I love doing it making for a great combo). But I'm more passionate about my family at home. I'm also passionate about the music, movies, games, and other arts.

Devoting yourself to one thing is not being passionate about it--it's having a single-minded focus and lacking passion about anything else. Can we please stop confusing those points?


Is this a binary scale of either/or?

I am on different sides of the spectrum at different times. I don't mind my programming work but I wouldn't say I was "passionate" about it. 90% of my work is not solving anything technically very interesting. More like fixing up user error , solving minor bugs and making incremental improvements to things.

If I want to do some extra programming outside of work I would prefer to learn some OpenGL or some new paradigm like functional programming than to just do more of the same. Of course plenty of the time once I am finished with working I would prefer to just get on and do something else.


This labelling (501 or !501) is pointless and arbitrary. I'm a self-employed developer with four children. Some days I work until 11p or even as late as 1a. Some days I quit at 2p and take in a child's soccer game. This isn't a label as much as a choice every day. Both choices come at a cost. Big deal. All choices come at a cost. If I choose family over work, in all likelihood the perception of my dedication will suffer. Contrapositively, if I choose work over family, my relationships will need repair. The labels are meaningless, and perpetually choosing one side is simple indicative of a life out-of-balance. This is all just a side-effect of scarcity of time, and the labelling sounds like an attempt on both sides to justify choices. Ultimately, if I want to be done working at 5:01p (or any other time), then I am, and I take responsibility for those choices and the potential damage to my career. If I want to work until midnight, then I do, and I take responsibility for that choice and the potential damage to my relationships or the hinderance of my pursuit of other goals. Call it whatever you like. Why do we need a manifesto to categorize daily personal choices?


After reading the blog post, I actually agree more with the 501 Developer manifesto. One year after graduating from college and landing my first professional job, I discovered that although I love programming, I love life a lot more. For me personally, it's all about maintaining a balance between my career and life.

In the end, no one dies wishing they worked more:

> "Write a technical blog"

I found that I enjoy writing a lot more when it is not about technical stuff. The few technical blog posts I write serve more as a mental bookmark for myself, that I can reference back to in the future.

> "Contribute to open source projects"

Honestly, I have yet to find an open source project that I feel passionate enough about to contribute to regularly outside of work. Until then, I'll continue focusing on my personal projects.

> "Attend user groups in your spare time"

I would rather spend time with friends & co-workers going out to happy hour or watching a good movie rather than discussing the frameworks/languages I use on a daily basis.

> "Mostly only read books about coding and productivity"

For the longest time, all I did was read technical selections on Safari Books Online. It got pretty monotonous after a while. I still read some technical books, but I would pick a great fantasy/fiction novel over a book on cross-browser CSS hacks any day.

> "Push to GitHub while sitting on the toilet"

That's insanitary IMO.

> "Are committed to maximum awesomeness at all times, or would have us believe it"

I'm not that awesome. Being part of the HN community has been an incredibly humbling and educational experience.


I've worked in those job environments before at other places, e.g., fast food joints, and there's no joy for me in working in an environment where everyone rushes home as quick as they can to get back to their "real life".

I would far prefer to work with someone who likes his job and is okay with working over a bit, and has a github for personal code, and maybe has a tech blog, and maybe contributes to open source projects. Someone who has a personal desire to learn more overall, not just at work.

To paraphrase something my dad, a highly skilled carpenter, once said: "Knowledge is our edge". If you are disdaining knowing more (in this context, taking the time (at work or not) to know more), then you're disdaining your edge in your profession. And that edge/lack of it accumulates.

If you hate your job and your profession so much you can't wait for 5:01 to roll around so you can escape your workplace and software, I don't want to work with you.

I code at home. I'm proud of this. And I want to work with people who understand that.


This does a pretty good job of describing my response to the post too. I think work/life balance is extremely important, but so is enjoying what you do during the day, and continuing to learn about your work and the world at large.

I typically try to work 8 hours a day. I'll work longer during crunch times, sometimes 12-14 hours... but if "crunch time" becomes the new normal I'll abandon ship without embarrassment.

When I'm home, a lot of the time my hobbies are technical: I'll play with personal programming projects, or try out new sysadmin tools, or mess around with a friend's web site. I'll also read books about physics, go fencing, take walks with my wife, play with the cats, go drinking with friends from outside of work, play the trumpet, read ridiculous amounts of science fiction... I know my work/life balance is being impacted when those things are being marginalized.

But I'll keep programming at home, too.


That manifesto sounded really bitter. Nobody's judging you for having no passion for programming. But the thing is programming is a craft many people are passionate about and those people are an order of magnitude more productive than you. Sure, if you are willing to work for what an average "just a job" pays, welcome aboard. Otherwise I'm better off hiring someone who gives a damn.

But the comments here perpetuating the fallacy that giving a damn somehow means putting in crazy hours offend me even more than the manifesto. Sure, it's common among the best programmers to live at work because they love their job, but it actually makes them less productive, not more. There's nothing wrong with working nine to five. It's not a manifestation of lack of passion. In fact it's the most rational thing to do and it's in your and your employer's best interest.


> But the thing is programming is a craft many people are passionate about and those people are an order of magnitude more productive than you.

No. No, they're not. Some of them, however, are an order of magnitude more pretentious than you.


Haskell has no real world use, it just exists because the author wanted it to?

Did I misread that or is that what the author is saying?


That's why the next sentence starts with "All kidding aside..."


I don't think this should focus on "are they good developers or not". That's independent and "case-by-case" at the individual level. I don't think we can characterize that entier portion of the workforce one way or the other. This is more about bi-directional expectations between employee and employer.

Additionally, "passion" for the specific things you are building vs "passion for doing a great job" are also independent. They can converge (awesome for you) and sometimes diverge (welcome to life). More importantly, you will experience all three scenarios at different times throughout your career.

In regards to the general relationship I keep with my employees, I personally execute and support the "did the shit that needed to get done, get done" approach. Not sweating when someone logged on for the day, when they logged off, where they worked from, did they have beer during the day (my preferred answer is YES). Thats the trade-off for when we need to work late to sometimes get the necessary shit, done.

My parents prefer a different environment. They have a specific time they show up to work, a specific amount of allotted time for lunch and breaks, and a specific time when they leave. They different, it's not their problem when shit didn't get done. Plain and simple. There is no flexibility and that's the trade-off.

Each has their pro's and their con's and one isn't necessarily "better" than the other. What do "you" want and works best for "you".

What I'm seeing emerge in these discussions (on average) is an arrogant demanding of a blended approach entirely in favor of the the employee. They want to show up generally around nine, take breaks, take lunch whenever, play some foosball. All the "benefits" and be out the door at 5:01 PM with none of the "cons". Additionally, what gets done, gets done. It's not their problem, nor fault, in any capacity if it doesn't get done by 501. Someone project managed wrong, someone did scope properly, etc.

Maybe it's a new world, at this is becoming the norm, however, it frustrates me.


I'm not really sure if this has to be so black or white--you love what you do, or you don't--for most people it's probably pretty grey.

One thing I'll add to the discussion, for myself I've stopped doing contract work in my spare time because I feel it just takes away from my motivation and causes more stress. Instead, I prefer working on my own projects where I have more control over the design and implementation decisions, as well, I choose projects related to stuff that interests me. And by interest I don't necessarily mean computer science related interests, I mean other things like mental health, depression, etc. and using computer science to solve problems related to those fields.

It's all about integrating your life and interests I guess.


Agreed. Keep your pity.


I don't understand this manifesto business. Everyone wants, and can get, something different out of a career in software development.

Why do the "501 developers" care that some people would rather program late into the night than go out with people. Likewise, why should anyone care that the they would like to have enough free time to engage in other hobbies.

If I want my job to define who I am, who are you to tell me that it's "wrong"? If you want the free time to do other things, go for it, but don't assume that the lifestyle you want would make everyone happy.


Because the expectations jobs have come in large part form the cultural expectations prevalent within the field. And your job's expectations can make you either unhappy or unemployed.


It seems to me that the manifesto takes a swipe at other developers who "[w]rite a technical blog [...]" (referring to that whole list) as if the way they do things is inferior.

It also appears to make the assumption that the only reason someone would be so involved in their work is that they are sacrificing their personal life to get a promotion or make more money.

>We recognize that your willingness to allow your employment to penetrate deeply into your personal life means that you will inevitably become our supervisor.

This makes it sound like "non-501 developers" just lie back and think of England so they can get a bigger paycheck. Maybe some people just enjoy working longer hours.


The role of the 501 Developer is something that we should be striving to automate or abstract away.

I think that the craft of solving real world problems with computers has reached a plateau, through lack of the right tools, programming languages, methodologies, sociological systems, etc.

That 501 Developers are needed to intermediate between the technology and the solution stakeholders or customers seems like an indicator of stagnation or inefficiency in the current approach to software development.


Why is obsessive and 501 the only options? Anyone else feel in the middle?

Judging people's work by the hours they keep, or how they choose to spend the rest of their time seems immature and shallow. 40 hours per week is plenty to fulfill job responsibilities (and more), advance passion, grow technical skill, and love what you do. The pace may be a bit slower than 60-80 hours a week, but I find 40-50 more sustainable.

Working longer hours does not equal more done, more passion, or more skill.


I like programming, but it is far from my passion. My passion is making useful stuff people like to use (and preferably getting paid for it :). I prefer it this way, because it means I can keep my passion when I have to spend a week writing technical documentation or helping the sales team figure out how to turn their laptops on. If it gets us closer to people using the product, I'm good with it.


Its probably a bad idea to attach labels to ones-self. Everyone is different and thats fine.

In my personal experience I have found passion does not equal skill, skill does not equal passion and working long hours does not equal getting things done.

One thing I will say though is that it is important to get outside ones comfort zone; for us programmer types this probably means disconnecting and finding interest outside technology.


The funny thing about the manifesto that it is proclaiming a particular point of view (while neglecting the fact that most things on the list aren't mutually exclusive), while condemning another.

Dude, it's a personal choice for you to be okay with being average, but don't try condemn people who want to excel. I know that mediocrity loves company but geez.


Leaving at 5 has nothing to do with how "passionate" you are. I write better code when I go slowly and have time to be a human being. Even if it were my company, and I was extremely passionate about the product, I would still set these boundaries, because that's what I believe is vital to my mental health.


Nowadays everyone adding "Adjectives" behind their name for being a Programmer . like this "501" !! You code to live or to get pleasure.That is totally your choice ! But don't pity others for not travelling in your way.I hope they do have certain justifications .


Hmmm, I work more than 40 hours a week... Between my day job, and getting my own company going, I work roughly 16 hours a day... I enjoy it.

But then again that's during the weekdays, weekends I barely do any work, so I have no problem working such long days during the weekdays.


Work life balance? This aspiration applies to all industries.

If you have no other commitments (family, sport, TV etc), then you could spend all waking hours in front of a computer/smartphone writing code.

That feels like am unhealthy commitment.


And you'd probably be less productive than someone who found the time to relax and recharge their energy.


Is this related? It's an article I wrote on how WePay hires it's sales team: http://news.ycombinator.com/item?id=3864412


Adit has never seen Return of the Jedi. No credibility.


I am not a 501 developer, but I work with a very good one, and he is an invaluable source of stability and perspective.


I read this as a "501 Not Implemented" developer. Which doesn't really seem like a good thing to shout to everyone.


Wow. Author missed the point completely.


I agree that a job shouldn't define who you are.. but I think what you choose as your profession says a lot.


100% agreed to this


Someone commented this on the original post:

>People who work on something they aren't passionate about deserve neither, and their sacrifice will go unnoticed.

To which I reply:

That's an extremely arrogant, insulting and self-entitled notion.

You, sir, ONLY get to do what you "love" because millions of people every after day do what they don't love but have to do anyway (in order to pay for their food and family). People from the guys that work in mines to gather materials to make your computer internals, to guys that transport gas and flip switches at energy plants so that you can have electricity, to the guy that flips your burgers when you go to the fast food joint across the street, to the guy that cleans your offices. Not "loving your job" has nothing to do with an aversion to "hard work" (people work far more hours and intensely in shit jobs, because they have to), or not taking pride in one's work (there are people that DO take pride in doing a good job at cleaning streets from garbage for example --that doesn't mean the love their job).

It's a silly American notion that every job can be (or worse, has to be) the worker's "passion" --and only few get to have the privilege of that notion, and then again only after they have a lot of lucky breaks.


I'd go one step further and say that it's likely many of them are working on something they're passionate about:

Their families.


I would up-vote this one thousand times over if I could.

Blazing ignorance of the most basic verisimilitudes of the human condition is one of the more annoying characteristics of hacker culture.


I wouldn't characterize 'hacker culture' like that. Vocal minority is the blight of all groups / cultures.


Maybe they're an orphan. Maybe they don't have a significant other. Maybe they don't care about anything in life other than the success of their project.

Maybe the non-501 developers are genuinely self-sacrificing, in every sense of that word, while the 501s live off their labors. For the 501 is very happy to use Google to search for his Disneyland trip, to use his iPhone to find driving directions, to use Facebook to post the photos.

Say what you will, those companies were not built by 501 engineers, though 501s might well be going there now that the pioneers have built multibillion dollar companies.


There are 501 people and non-501 people in every profession.

The issue is something like this. One workaholic nerd works his life out to achieve something very extraordinary. Then he become famous and rich. And then people begin to dissect his life. During the process people figure out, that we worked crazy hours to achieve what he achieved.

When a theory is made out of this process your logical inference is working very hard is a prerequisite for success.

You start with this assumption then you automatically start classifying 501 workers as somebody who can't do anything big in life. Go a step further, people start classifying 501 people as lazy or inefficient.

Things get bad when you start comparing.


So you cannot be passionate about software and at the same time be passionate about your family? That doesn't sound right at all.


I did not say that at all. I challenged the idea that a person who is not passionate about their job is not working on something they are passionate about, by pointing out that you can have a job that you're not passionate about but still be passionate about working on your family—on raising your children well, on having a happy life with your spouse, on maintaining a strong relationship with your parents and siblings and nephews and nieces, etc. There are always some things we have to do in life that we're not necessarily passionate about.


You just crashed my lexical parser :-) Jk...

However, apologies I can see that I misread you. Sorry about that.


Not only that - but this notion that "you should only work on what you're passionate about" can kill projects when versatility is required. 'I'm not really passionate about doing database interoperability stuff in Java - I took this job because I wanted to write Python.' Well. A job is a job, no matter what your passion is - and someone who will patiently and carefully slog through for 40 hours a week regardless of their passions is worth more to my team than somebody who'll give 80 hours a week to their one passion and zero hours to anything different.


A job is a job, no matter what your passion is - and someone who will patiently and carefully slog through for 40 hours a week regardless of their passions is worth more to my team than somebody who'll give 80 hours a week to their one passion and zero hours to anything different.

That's awfully defeatist.

Why does it matter to someone who is passionate that you don't value him on your team? The end state is simple: he will not be on your team and it will not matter what you think. So what's the value of having (and writing about) this blanket opinion?


Having an opinion isn't worth anything unless it corresponds with the truth. Maybe this does correspond with the truth (i.e. grandparent wants to work with team players rather than people who only do what's fun). Seems pretty straightforward to me.

Value of writing about it? Very few of the comments on HN are valuable. People write for their own pleasure primarily, and if communication occurs that's icing on the cake. What's the "value" of you writing your rebuttal questioning the gp post's value?

TL;DR: don't really understand your question.


I've never refused to work on stuff I don't like I just charge more for it, usually a percentage.

A multi-million dollar project that can be killed because someone doesn't want to write java interop code is something I want to support, most people mistake me for a programmer, I'm a business guy who knows how to code, what the bossman has in this situation is a win-win situation, his programmer gets to keep writing python, I get to write java interop code for a percentage of the project, and he gets a project finished.


And it's worth adding: a pretty large proportion of these people who don't work jobs they love are still pretty happy. They have families and hobbies and lives that are full of more than their work.


> It's a silly American notion that every job can be (or worse, has to be) the worker's "passion" --and only few get to have the privilege of that notion, and then again only after they have a lot of lucky breaks.

I agree with this, but I don't think we should take the opposite for granted either-- personally I dream of a world where no human being has to scrape shit off the sidewalk to survive.


Perfect post. The dreams of the fortunate ride on the backs of the unfortunate. It's good to remember this on those days when you're not enjoying your work.


Indeed they do, it's much better to be fortunate.


But why are those jobs necessarily "shit jobs"? Isn't that an even more condescending attitude?

The jobs you mentioned (mines, truck driving, fast food, janitorial) involve moving things around in the physical world. When the work is done, it's clearly and perceptibly done. In certain key ways this is less mentally stressful than information work. And nowadays even a janitor can afford an apartment, computer, smartphone, and internet connection.

For those positions you mention that pay less (janitorial, fast food), the demands and training requirements are less. For those that pay more (mines, power plants), the risks are higher but the training requirements are also less.

And in each of these areas, you do have some fraction of people who are ambitious, who care about the technologies involved, and who get promoted. It's not like software engineering is the only interesting thing out there.


There is a difference between a job and a career. Taking a job you don't like to make ends meet while you try to find work doing something you're passionate about is one thing. Having a career doing something you're not passionate about is entirely different.

There's also a difference between passion and enjoyment. I can understand your work being enjoyable but not your passion. During one trip to LA I got a burger at In-N-Out. The high school aged people working there were clearly enjoying what they were doing, they made it fun while providing fast, kick ass customer service. I know developers who enjoy what they do but their real passion is something entirely different.

To me making a career out of something you don't enjoy or aren't passionate about is crazy.


You don't wanna know what happens to the In-N-Out employees if they ever stop smiling though.


Animal-style is people?


Sure, I enjoyed working as a clerk at a grocery store. It was fun. If it paid as well as programming, I'd probably be content to still be working at a grocery store, and doing programming for fun in the evenings, as the grocery work comes with built-in physical exercise...


I had the same reaction to that comment. If anything, I have more respect for people who do jobs I'd find soul crushing.


I think the concept of a 'shit job' basically is embedded in our human culture.

Work was synonymous with slavery even until recently. People who build beautiful things like Taj Mahal, Pyramids etc were all slaves who worked at the commands of kings. And most of them did it because they had no other option or nothing else to do.

A few who realized what they are worth and escaped that became philosophers and scholars.

Getting the point? 501 vs non-501, Its almost like slaves Vs philosophers.

Organized 9-5 labor is always going to be inglorious even if you are the best algorithmist in the whole world, because deep down inside it has a strong taste of slavery to it. They are parallels to the slaves who build the Colosseum of Rome. Even if you were the slave who could build 10 walls in a day you are still 'A nobody'. No one will even remember you.

And individual contributors working on their own crazy hours are always going to be glorious people, because deep down inside they are parallels to Socrates and Plato.


I think the concept of a 'shit job' basically is embedded in our human culture.

No, no, and no. It is embedded in recent cultures of vast inequality, slaves fed on dreams of glory. Egalitarian cultures don't have very much concept of "shit jobs", not the way we do.


My thoughts exactly. The external world does not work based on someone's passion. Whatever we do is the result of the sum of all the things in our life and not just our work life.

If you found your passion and it also pays your bills, great. Congrats. This is not true for most people.


I guess you aren't. Alright :)


They were my thoughts too


Your worldview differs from that of others. This happens a lot, no need to get all upset about it. "501 Developer" means absolutely nothing outside a very small group of people -- try not to sweat its significance.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: