Paul mentioned the frustrations of working with 501 developers. That was the first time I had heard the term 501 developer. A 501 developer is one who bolts out the door at 1 minute past 5pm. They are "outta here".

I like to think I came up with this term, although who knows anymore on the web? It was probably invented in the 1940s. ;) I knew a guy who said he invented "Location, Location, Location" but he was insane. Anyway...

Ramesh says:

There is never an end to stuff that can be done at work. But I got to stop at some point and "get on with life"....But of late, I am getting tired of coding yet another list box

When I started using the term 5:01 developer I wasn't trying to imply that time spent at work equaled commitment or productivity...although, that's a pretty weak statement from me considering that the term uses time to make its point. ;) It's not a very good term, I think.

What I was railing against by using the term was the person whose enthusiasm turns off at 5:01pm. I have to pick up my son also. I take him to school every day...and that's the way it should be. There's nothing wrong with leaving work on time. I certainly can't code until 4am either, my old hands won't take it. Hell, I code while wearing braces on both hands now.

I'm just saying that I prefer working with folks who are enthusiastic about the craft. Folks whose brains - whose excitement about problem solving - don't turn off at 5:01pm. I use the term 5:01 developer to refer to someone who is just at work to turn the crank. They're not necessarily creating new kinds of cranks or making new innovative crank designs.

I totally agree that coding another list box is a thankless job and I hope I don't have to do one again. I think that the "water level" (or the number of layers of leaky abstractions, if you like) is rising, and we as developers need to make sure our metaphorical boats are going to float with it.

That's why I'm so excited about technologies like LINQ and Ruby on Rails. They are making getting work done faster, easier. That's one of the reasons why I went to work for Microsoft, so I could help developers to get more done, faster...and, ironically, go home at 5:01 to be with their families.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

We have some 5:01 coders here at work: "User Group? What's that? Huh? After work hours? No thank you! When is payday?"

The door swings both ways sometimes, however. A person might turn into a 501 if they don't feel they are being fairly compensated or nickle-dimed to death.

John A. Davis

Thursday, 30 August 2007 19:03:58 UTC

Heh, I sort of take offense to the term 5:01 coder. Only because I take the statement literaly ;-).

I like to leave work at 5 simply because I have lots of other things going on in my life. It's not that I'm not passionate about what I do. I love development and I love learning about development. I attend DevTeach and I read books about development all the time. Sometime I wish I could spend 16 hours developing but I'm easily distracted by everything else there is to do in Vancouver.

I'm simply resigned to the fact that I'll never be one of the "Great Developers" out there because I don't live/breath code. I still feel I'm quite adept at my job and love to improve my skills. It just only allocate 1/3 of my life to it.

I think there's a good article out there that points out the fact that you can't really be a professional/expert at anything unless you drop everything else in your life. Personally, I'm content to be a jack of all trades, but understand what my limitations are because of this.

The article has actually made me think that I work best in a team that is also 5:01 coders too. How do you feel about that?

Unfortunately, this is the reality of any craft. There will always be those that lack the passion to move from journeyman to master. Not every carpenter will attempt to learn the art of woodworking, and not every coder will attempt to become a professional developer/engineer/architect.

I think the reason it stings a little more for software developers is our craft so heavily utilizes our mind and a 5:01 developer shows a general apathy for the very thing that keeps us passionate - learning.

If family is REALLY the whole point, why are you dropping your son off at school each day? Are they better equipped to raise him than you and your wife? You have been in the business long enough and you now work for a stable enough company to be able to afford your wife staying home to raise and educate your children.

I am not trying to be a troll. You seem like the kind of guy who is intelligent enough not to settle for the status quo and one who is always looking for the BETTER way to do things. There is a better way. I know you love your family and your kid. Now love him more.

Respectfully,

Jason Watts

Thursday, 30 August 2007 21:21:32 UTC

I think the part that people are missing isn't the time you leave, it's the time you stop caring. I was just teaching a pack o' corporate developers a few weeks back, and one of the students made a comment about how some of his friends "Have Facebook pages, play computer games and code at home."

Take me, for example. I toiled away as a lead developer at my old job, and I LOVED it. Until one day, I woke up and realized I'd been burning too hot for too long, and I decided a change of scenery was in order. So I took a gig as a contractor.

Now, silly me, never having been a contractor, I didn't realize what the term implied. Next thing I know, I'm being pushed into a Mort role (while my innate persona is strongly Elvis), being pressured to work 12 hour days and weekends, doing the most boring work imaginable in an environment that wasn't really as enthusiastic as I was.

That got old, really, really fast. Burnout turned into loathing, and sure enough, I'm now a 5:01 programmer. I hate it - I hate telling the boss that I'm going home, see you tomorrow (while everyone else is toiling away toward the deadline), but I just can't get excited about it. It's really made me question myself and my motivations. I cling to the memory that there was a time not too long ago where development was the reason I got out of bed, but right at the moment I feel a lot like Sisyphus.

The upshot: As much as I hate quitting a job after only two months, I'm starting a new job in mid-September as a Tech Lead with a software company whose values more closely align with my own, and they're letting me work remotely from home (which has been the holy grail of jobs for me for some years now). I'll be reporting to a guy I've known for a few years, and I think we'll all mesh great. I'm optimistic I'll find my enthusiasm again, and my goal is to use that 1.5 hours a day I won't be commuting anymore to do something *I* want to do - like open source projects, local user groups, more time with the kids, etc.

"You have been in the business long enough and you now work for a stable enough company to be able to afford your wife staying home to raise and educate your children." - Jason Watts

Is anyone else insulted? Just because some people choose to work doesn't mean they love their kids any less. And how do you know his wife doesn't make more money than he does? If she does, are you saying he should give up something he enjoys and gets paid for doing to stay home and raise the kids?

I can't figure out if this comment was sexist or just plain ignorant.

Bradley Landis

Thursday, 30 August 2007 21:34:17 UTC

@Jason

Some people when asked what they do for a living, say "I AM a software developer" and proudly interlace their persona with their career. This simple reply tells a lot about the amount of passion that someone carries with them everyday.

Other people only state "I create software", which probably means that they separate their business and personal persona. Is this a bad thing? To some degree no, but also to some degree yes.

When I blog about software it is normally using analogies that I come up with while outside of work. Everything I do or see, my brain will not quit trying to find correlations to software. Does it make me a little obsessive, yes - but it also helps me be a better developer. The 5:01 developer does not have this luxury nor the desire to view their personal world with developer eyes.

I'm not sure I get what's being put out here - it sounds like you're saying that a 501 developer is just a bad developer. Is that the case? Or is it just developers that have other priorities in their lives? It seems like a very slippery definition, where everyone here is chiming in that they're a 501 developer but no - they're not, because they have some ill-defined virtue I'm not grasping.

PBrazelton

Thursday, 30 August 2007 22:39:33 UTC

Paul Brazelton - I'm saying that to really excel in this field of ours that some care/passion/inspiration/concern/commitment/enthusiasm/excitement makes a developer better. Enjoying what you do and getting amped/jazzed about the construction of software is an attractive and beneficial quality to have.

The term "5:01" developer was coined to describe the *opposite* of that. Folks who just couldn't give a crap about software. For whom it's only and simply a job. Where coding is no different from being a Manager at McDonalds (although, arguably, being amped about food service is very possible, and the same rules apply).

I think that we're all saying (myself included) that the term 5:01 Developer is a lousy one because it focuses on when the developer punches out of the time clock. I know developers who put in 4 to 6 hours a day and are much more productive than I. You can leave at 3pm for all I care if the work is done.

I believe in this philosophy, but there is always the time when something comes up and you become a 1:22AM Coder. This should be an exception not a norm.

I'm in a recent life changing situation and am trying to fit myself into the 5:01 Coder realm after spending most of my career a whenever-I-feel-like-stopping coder. I'm getting older and missing out on all life has to offer. No longer though!

There's a flip-side to this too.

I do have a co-worker that is a 4:45 coder. The others on our team resent him for this. There is no passion to try and work out a problem 'til it's fixed before going home. Recently, we had a series of late night sessions to meet a (rather unrealistic) deadline and this other person would leave regularly at 4:45 every night. The excuse of having to pick up the kids or do something urgent away from work doesn't come into play here; he has no kids and is older and comes from a certain corporate environment that was dissipated when a certain female CEO took over the Garage. He would never ask what he could help with, always assumed it would just be assigned to him. Then when it was said he could get overtime, he would stay til 5:45. Another problem we had was that this individual kept saying that the deadline would never be met. Well, even with his "major contribution" we met the deadline. And now, he's no longer on the team.

The best thing to do in this situation is to evaluate the contribution you are making when you leave for the day. Hopefully, it's a respectful one if not a major one.

John Baughman

Thursday, 30 August 2007 23:06:39 UTC

Jason Watts - I appreciate your comment and your perspective, and thanks for leaving a real name, rather than "anonymous" or "better parent than you." ;) It's always nice to have a real dialog with real people. I value the candid comments of my blog's community.

If family is REALLY the whole point, why are you dropping your son off at school each day? Are they better equipped to raise him than you and your wife? You have been in the business long enough and you now work for a stable enough company to be able to afford your wife staying home to raise and educate your children.

I am not trying to be a troll. You seem like the kind of guy who is intelligent enough not to settle for the status quo and one who is always looking for the BETTER way to do things. There is a better way. I know you love your family and your kid. Now love him more.

Without getting deep into a home schooling versus private/public schooling discussion, here's some detail you likely don't have. My wife has an MBA, speaks four languages quite fluently, and was making a very comfortable living as in finance when we made the decision that she would take a few years off of her career to focus on the baby. She's now seven months pregnant with our second son and will be staying out of the work force for a few more years. She can and has made more money than I do and she's a non-trivial amount smarter than I (a point made clear to all who have met us together). We have discussed me staying home as Mr. Mom and her going back to work, but then this Microsoft opportunity happened that would allow me not only to work, but work from home, on my own schedule. Now I can not only drop him off at school, but also pick him up and go to the park as I just did today.

My son goes to pre-school 3 hours a day, 3 days a week. It's not a day care, but rather a school with programs in Baby Sign Language and Spanish Language, as well as soccer, dance, and many other topics I'm not familiar with. They are certainly not raising him, rather they are teaching him a few hours a week. At home, we teach him my wife's four languages and my own three, something we are, of course, a better equipped to do. We value having a very well-rounded and balance life. He's not yet two and may already need some additional passport pages.

Again, I do appreciate your honest perspective, possibly it came from thinking I'm "parking" my kid at day-care for 10 hours a day so I can blog, which I'm clearly not doing - with all due respect to those who absolutely must use day-care for extended periods for very valid reasons.

Much like Cam, other 5:01 developers wore me out. Years upon years of redesigning, fixing, or replacing code written by folks who have no business with a keyboard in their hands have worn me down. Maybe a good team with a lack of 5:01's that was working on interesting stuff would reinvigorate me, but I have a feeling such teams have gone extinct in my company, notably in IT. But I still love your blog, Scott!

I'm now starting to think that the 5:01 developer is not a good label. Why can't the label simply be 'poor developers', or 'uninspired developers'?

Once one hears the 5:01 developer expression one tends to tie the expression the the phrase 'someone who does not do their time' or 'someone who only does what the time that is required'. At least that was my first knee-jerk reaction to the initial description of a 5:01 developer.

Awesome post Scott! I had never heard of the term "5:01 developer" before.

I have worked with a couple 5:01 developers on a project and it's the most frustrating thing in the world. I found productivity all around really tanked on those projects.

Next time I am in an interview (on either side), I will make it a point to ask the other person what projects or extra code they are writing in their spare time (or what they may be learning on the side). If the answer is a soul crushing none/nothing, I'm getting up and walking out. :-)

Sushant Bhatia

Friday, 31 August 2007 06:50:13 UTC

One of the defining characteristics of a 5:01 developer for me is that he or she is not driven to learn new things.

You know what I mean, you come across something cool on the net and then you've got 5 things you think you could do more easily using that. And you think about it some more and it's 10 things. Then you've got this itch to try it out somewhere, so you do and soon everyone else around you is thinking along the same lines. This is absolutely the best way for new technology to spread, but someone's got to get the chain started. The 5:01 developer by definition is not that someone.This is not to say that the 5:01 developer isn't competent in what he's doing right now - it's just that he doesn't bring in any improvements. If the proportion of 5:01s in a group of devs goes too high, that organisation stops improving. Once stagnation sets in, it's hard to get rid of it and resistance to new ideas builds up. Soon after that, corporate training enters the picture and all is lost.

That's why I like the where I work - there's always a fair number of people doing something new and neat. I keep getting exposed to new ideas and technologies all the time which I can then put to use to make my life easier and more fun.

You know, over here in India, we get all sorts of problems... We were having issues with people not leaving office on time at all. Sometimes it's people who are really passionate about their work and don't want to stop doing it (can't give up a problem till it's solved kind)... but most of the times it's people who do not do concentrated quality work throughout the day and so have no choice but to stay back to finish off their day's work...

This caused a whole lot of hue and cry about 'work-life balance' and how no one should stay in the office beyond 6 and so on.... Now what I see more and more is that people have started taking this 'work-life balance' thingy to an extreme. I have freshers coming right out of college who don't want to put in an extra hour in the office because it will spoil their 'work-life balance'. And some of these kids are obviously talented... what a waste.. When I was a newbie in the industry, I couldn't get enough coding time... I wanted to learn as much as I could...

Sigh... if at the dawn of your career, you are not going to be passionate about your craft, when will you ever be?

This post reminds me a lot about your Hanselminutes episode on interviewing, specifically your comment about wanting to hire "lifelong learners." To me, this really goes hand in hand with being passionate about your craft.

I also like your emphasis on "craft" instead of "job." When you have a craft, you care about it and want to perfect it - sort of like a code artisan or something, because you really do see it as an art. This is why we enjoy reading code.

Many times, I find myself spending extra time trying to get my code to better express its intent, much like I would assume an author tweaks the wording in a book to get just the right emotion from the reader.

Scott Muc mirrors my own thoughts. I wanted a bit of clarification on what exactly makes a person a "501", and from this seat it looks like the usual pack mentality.

I understand not liking a coworker who is either a.) crap or b.) lazy, but what comes out of trite phrases like "501 developer" is a race for validation from peers. "I'm not a 501 developer because I code for 16 hours a day!" "Wait, I'm not one because I blog about programming!" "I identify as a programmer so internally my DNA compiles into CLR!"

I'm none of those things. I don't work more than eight hours a day unless someone on my team needs me or I'm at a deadline. I don't even look at a computer when I get home. On weekends - unless I'm on a project for a friend - my laptop sits lonely in my office. I don't identify as just a programmer.

I'm a father, a runner, a rower, an environmentalist, a human being and yes, a programmer. I'm a lifelong learner, and I love to learn everything, not just programming languages. I love technology, but there are so may other things in this world to love, and we have such a short amount of time.

So am I a 501 developer? To the attributes thrown out in the comments above, I sure am. I'm a rock-solid developer with a passion for solving problems, but I don't care if I solve them with LINQ, T-SQL or text files via ODBC. For that matter, if a problem is better solved NOT writing a line of code I'm just as happy with the result. I've been doing this long enough to know that most of us are solving the same problems over and over, just with shinier tools.

I suppose it wouldn't make for as fun a blog post, though, to state the obvious. "I hate lazy developers" is rather self evident, like blogging about how one hates sharp sticks in the eyes. So I understand why people need to create cute labels and then expound on them. But it seems unfair to create a label with arbitrary definitions handed down by one of the priesthood.

PBrazelton

Friday, 31 August 2007 15:51:38 UTC

PBrazelton - Well said! It's about solving the problem, well, in a way you're proud of, and getting home to the family. It's a silly label, but you're right, they do make good blog posts. At least it gets folks talking.

Scott: A young kid going to day care or pre school learns a TON of stuff from new vocabulary, to social skills and people interaction, socializing, making friends, music, dancing... I have 3 &4 year old kids and it's amusing and I am proud when I hear them say new words or express themselves in fuller sentences or tell us about their day and their class mates.

IMHO, a young kid who is home schooled only is missing out a lot. Home schooling might be fine at a later stage in life but not for young kids.

abdu

Friday, 31 August 2007 17:33:31 UTC

I agree with you Scott.

While I may leave at 5:01 it doesn't mean I "left work", only that I've "left the building". I'm far to passionate about the software I write to walk away so easily. It becomes something I think about throughout the day.

This doesn't mean that I do not have a life outside of work however. I am equally as passionate about my wife, my children, my friends and family. And given a collision between the two, family always comes first.

I don’t believe I could be as productive or get as much enjoyment out of my work were I not so passionate about it.

Scott (and other commenters), thanks for the clarification on the definition of 5:01 developer! I'm definitely all about spending time with software development projects in the evenings as my schedule permits, but given the fact that I tend to leave work at 5:00 (or sometimes 5:30 or 6:00), I thought that I might meet the definition of "5:01 developer". Based on Scott's post today and the other comments here, I'm glad to see that I had misunderstood the intent of the term. :-)

PBrazelton, I've been sitting here trying to conjure up the correct words and phrases to put together to say what you did. I mirror your sentiments and couldn't say it any better if I tried. Well said brother.

It's 5:01, I've gotta go...

Mark.S

Saturday, 01 September 2007 00:19:21 UTC

Even worse than a 501 coder is the 501 boss. I had a CEO for a small computer consulting firm who wanted nothing to do with computers after hours. They generally did not care about the craft beyond the ability to generate a profit for the company. I generally think of a 501 developer as someone with a programming job versus someone with a programming career or profession. I have worked with plenty of those types and I don't care for it. I much prefer people who are passionate about what they do and take pride in their work. Generally this translates into someone who is constantly seeking to improve their knowledge of their craft. I can generally look at a person's workspace and figure out what type they are by the reading material they have laying about.

Scott, have you read "Software for your head"(http://tinyurl.com/2hlxbr) by Jim and Michele McCarthy? Although a lot of people think that it is a very hard read, I wholeheartedly recommend it to anyone who is interested in how to make teams work. Also, one get a lot of good ideas/info/observations from their show at http://tinyurl.com/2gl63u.

Regarding 501 coders/developers etc. It is of course not about when they leave their workplace, it is about what they want and whether they have put enough energy into knowing what they want.

What you mean by 501 coder is probably just a person who does not want to acquire a virtue of craftsmanship/professionalism. What is surprising to me is the fact that people put up very easily with doing boring, not interesting stuff 8 hours a day, 5 days a week - u my book it is a significant waste of somebody's God given talent and creativity.

--Misha BergalMetaCommunications Engineering

mbergal

Saturday, 01 September 2007 21:14:22 UTC

This is interesting because Nick Bradbury (creator of HomeSite, TopStyle, and FeedDemon) also blogged this week about work vs. social life. I wrote up a brief blog post comparing what you guys said and offering a few of my thoughts: http://www.anotherblogger.com/2007/09/01/hanselman-and-bradbury-tech-vs-life/

I think you can sense when you're a 5:01 developer in the negative way. If you really think your job sucks, but you don't look for a new job these days, I think you're not passionate about the craft and not passionate about developing killer apps, and getting a better developer. It only shows that you do what is asked for, and all 'getting better' stuff you'll only do at work. My side of the story...

Some people in here are quite defensive about being labeled a 501 developer, even though no one has singled them out as such. Scott has said that he doesn't mean someone who leaves at 5:01 PM, but more a person who does the bare minimum to get paid.

Scott is saying that 501 is a state of mind. If you don't care what happens at work when you leave, if you never help out a coworker in need, if you don't spend any time whatsoever learning new things in regards to our industry, then you might be a 501 developer (hey -- a new Foxworthy meme with a geek twist?)

I don't stay past 5 normally. But sometimes I have to. I have to come back in tonight @ 10 PM to press F1 on a server's keyboard since it has a BIOS issue and won't complete the restart. I don't mind, really, because it is necessary, and doesn't happen every day.

When I'm vacation, if someone calls me from work because they need 1 piece of information that I have and it would save them an hour of work, I don't mind.

I love coding. I often do side projects for money/fun at night and on weekends. I also love to be withe my wife (not a computer geek), exercise, play guitar, cook, go to Chief's games, watch TV, see my extended family, etc.

If someone on here says that anyone who does anything on the computer at night is a mere computer geek, then I know the real truth.

I know I’m not a 5:01 developer even though I try to leave work before 5:30pm. I get to work a little late because I need to drop my son off to school. What I love doing is sitting on the couch at home with my laptop and tinkering around with code to learn new stuff. The family life is very important. They keep my head out of the computer screen. Now if only my little toe will heal after subbing it after running around with my son.