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.
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.
Most people writing software are wealthier than most of their ancestors and 95% of the world.
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.
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.
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?
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.
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.
Funny. I wonder why.
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'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)?
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.
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, and you might not get paid the same.
 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.
Something is wrong with a job that doesn't fit those things within a normal 40 hour work week.
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.
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?
Its not hard, its called contracting for an hourly wage. The problem is that many employers want workaholism at a 40hr a week wage.
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.
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.
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.
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.
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.
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.
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. :'(
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.
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.
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.
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.
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 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.
-- 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.
In any case, I try not to _work_ more than 40-hours per week, but my play frequently still involves computers.
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.
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?
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.
Probably true. But you don't get to be Mozart or Van Gogh by being well-balanced. ;-)
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.
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.
... actually, that sounds like _why but without the whole suicide thing in real life.
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.
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".
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.
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."
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."
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.
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.
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.
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?
(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.
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.
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. :) )
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!
"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?
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.
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.
"I call 'em as I see 'em." is an attitude I can work with, because it lends itself to meaningful discussion and, maybe, some kind of understanding. "They aren't anything until I call 'em." on the other hand is useless wankery in my opinion.
On the other hand, I agree with you that "I am a <501 or xxx> developer." is a somewhat weak statement, but for other reasons than you. I think 501 and others are overly broad labels and philosophies. Most people who are capable of having their own opinions would probably agree or disagree on some of the 501 points, but not subscribe to all of them as a package.
I 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?
A little known fellow named Ken Jennings who happened to win a few million on Jeopardy.
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.
This naturally makes 501 types uneasy, because it leads to unfavorable comparisons.
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.
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'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...
I wish it was true; but you are just bullshitting.
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.
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.
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.
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.
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.
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.
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?
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?
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.
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 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.
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.
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.
No. No, they're not. Some of them, however, are an order of magnitude more pretentious than you.
Did I misread that or is that what the author is saying?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
>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.
Blazing ignorance of the most basic verisimilitudes of the human condition is one of the more annoying characteristics of hacker culture.
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.
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.
However, apologies I can see that I misread you. Sorry about that.
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?
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.
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.
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.
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'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.
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.
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.
If you found your passion and it also pays your bills, great. Congrats. This is not true for most people.