Take the 2-minute tour ×
The Workplace Stack Exchange is a question and answer site for members of the workforce navigating the professional setting. It's 100% free, no registration required.

As a salaried software developer, I've worked in a few environments where I've been told "we don't have 9-5 hours here, we just expect you to get your work done". Which sounds idealistic, except that when I ask about how late in the afternoon I should stay, I get told "go home whenever your work is done".

I never understood that, because generally there is always something that needs to be done, so by that logic you will never go home. Furthermore, it is rarely the case that the project will reach a perfectly clean "closing point" for the day, anytime between 5PM and 7PM.

I've seen people that basically live at the office, but I don't want to do that as I have other things going on in my life.

So what's the solution? In the evenings I always feel like I have to decide between losing part of my personal evening time, vs being seen as a slacker.

share|improve this question
9  
*comments removed* Remember what comments are for. For extended discussions, Get a Room (a chat room). –  jmac Jul 10 at 5:55

10 Answers 10

up vote 140 down vote accepted

So what's the solution? In the evenings I always feel like I have to decide between losing part of my personal evening time, vs being seen as a slacker

Unfortunately, there are no simple answers here. "Whenever your work is done" almost certainly means "Whenever you deem it appropriate", since most software developers don't measure their work on a daily basis.

I think this is all part of being a professional, salaried employee. You don't punch a time clock. You won't be told "come in at x o'clock, take exactly 1 hour lunch, and leave precisely at y o'clock". You have to figure it out on your own, based on your company's culture, your own career ambitions, and your family needs.

I tell my team that I don't want them watching the clock.

Aside from "core hours" where we schedule our meetings, they are free to come in early or late, and free to leave early or late. I don't care how many hours per day they are sitting at their desks, I just care that the work gets done.

I don't want to babysit them, and I don't want to micromanage them. I treat them like experienced professionals, and I trust them to act like mature professionals and figure out on their own how many hours they need to be around to get their work done.

I've told them that if they can accomplish their work in less than 40 hours, they can feel free to leave as they see fit. But if they are behind, or we have critical deadlines/releases coming up, I expect them to work extra as needed.

In practice, everyone figures it out for themselves. They each adjust their schedule according to their commuting and family needs, according to how hard they want to work, according to the needs of the projects they are working on, and how much they want to get ahead.

Some work around 40 hours per week or a bit less. Others work more. Some have worked a lot more.

Some generally arrive very early, and cut out earlier than others to optimize their commute. Others generally arrive very late and cut out later than most for the same reason.

Sometimes people arrive early to get a jump on a particular task or to communicate with our overseas office. Sometimes people hang around extra because they are "in the flow" and don't want to put down their work until they have completed a particular set of work.

During our weekly one-on-one meetings, and at annual review time, I never talk about how many hours they put in, when they arrive, or when they leave - unless their performance isn't up to the expected level. I've very seldom had to do this, but on rare occasions, I have to tell people that they simply aren't working hard enough, and that the amount of hours they spend in the office clearly isn't enough to get their job done. Either they are miscalculating, they are in over their heads, or they don't care. If it's a miscalculation issue, we work together to figure it out. Otherwise (and if they don't correct the problems), they are eventually reassigned or dismissed.

I'd advise you to look around and get a good sense of the culture within your company. You will likely see some people who are steady workers, but not trying to get ahead, while others are harder-driving. You might see some who are "slackers". You will see some who always get their projects done on time or ahead of time, while others miss the mark periodically or often.

You will see some who come in early and/or leave late, and others who work to the clock.

Then, decide what you want to be, how you want your day and week to go, and act accordingly.

share|improve this answer
11  
Hey Joe, it's really great to see decent, trusting people in charge. I'm a SE and work in a very similar culture - none of us take the 'mickey', we put in good work and as a result of this 'flexibility' I care about the job, my peers, boss and the company I work for. You sound like an awesome boss :-) –  Jimbo Jul 11 at 21:21
1  
@Jimbo Your place sounds awesome, but I think places like yours are minorities. I've seen places where you get a 'death stare' even when you leave after a 9 hours work. By the way, supporting Joe's argument, I heard that Treehouse only have 9 hours per day and 4 work days per week, but look how far it gets them. –  Samuel Adam Jul 25 at 2:22

You might not reach a clean closing point, but there's usually a logical point. For instance, you might finish developing a portion of the feature you're working on, and have a choice between continuing to the next piece, or to stop for the day.

One piece of advice I'd give you is to leave the code you're working on in a clean state - no errors, and all tests passing if possible (easy if you're doing TDD). This will make it easier and quicker to jump back in tomorrow morning, without having to figure out what the error is again.

share|improve this answer
5  
On the other hand, having a failing test can be a good reminder of where you left off. Even if the test is just the descriptive method name plus fail("not implemented") –  Michael Deardeuff Jul 13 at 14:35

The latest possible point is "when you are tired". There's a point where staying at your workplace doesn't serve any useful purpose anymore, or where you even cause more damage than doing good. Not saying that's how long you should stay, but you definitely shouldn't stay longer. At that point, it doesn't matter whether you are done or not.

share|improve this answer

Other answers have addressed the part that's about the state of the work, and I agree -- leave the work in a state that you can pick up from the next morning and that won't mess anybody up in the meantime. But I sense another dimension to your question.

I just started a new position so I have fresh experience with this. You are trying to judge the norms of the place as much as the actual work milestones. You don't want to be the first person to leave every single day, especially if you're leaving substantially earlier than everybody else. Even if you get in hours before everybody else (so you've worked a full day or more), nobody saw that so it doesn't help (yet). In those first weeks at a new company in particular, people need to know that you're not a slacker, that you're invested in the work, that you're not watching the clock.

If you need to leave early for an "external" reason, in my experience people understand -- especially if you say something about when you'll be available again. "I have to pick the kids up at school at 3, but I'll be back online from home by 4" sends a different message than "3:00 -- bye!". Communicate with your team.

Once you've been there a little while you'll get a sense of the group and then you can adjust. Once the people who come in at 9 start seeing your checkins and builds (because you were there at 7), they won't think twice about it if you leave at 4 while they're planning to be there until 6. Further, you'll be talking with each other (right?), so you'll learn each others' habits. As a new employee I know that I can catch Alice first thing in the morning, Bob gets in after the morning rush, and I shouldn't bother Carol and Dave until they've had their "morning" coffee at noon -- but if I'm working from home a bit after dinner they'll still be around. It all works out.

share|improve this answer

These things are very culture dependent, I work in the Netherlands.

I think that if you have a contract that says you'll work some number of hours (say 40 hours in five days, 8 per day) then on most days that's how long you should work. If you don't have a set number of hours, then 8 hours is close to the maximum that a software developer can be effective in anyway, so it's a decent guideline. If an emergency comes up or an important deadline is close, you do whatever it takes to get it done; conversely, if on other days you're very tired at 4pm and can't concentrate at all, just go home.

The part about getting the work done is about communication (what isn't) -- as long as your work is done when your project leader expects it to be, you're fine. Of course initial estimates will regularly be off, both because the requirements shift and because nobody is good at estimation. Communicate the new estimate clearly and as soon as possible, so the project leader has the chance to deal with the new situation. This is a much better long term solution than working 10 hours per day: that doesn't magically make estimations better so it doesn't solve anything, and they don't pay you for 10 hours per day so you don't owe them that.

share|improve this answer

For me it's one of 4 things.

  1. I've reached a good stopping point and it's reasonably close to quitting time.
  2. When people that I need to work with have already gone home so I'm no longer being productive. On Firday's that seems to be around 2:00 in the afternoon in the summer.
  3. When my co-workers come by and ask why I'm not going home yet.
  4. I have a commitment to be somewhere else. My wife doesn't like being stood up.

But the other side of that is that being able to connect from home, there are days where I am online coding at 11 or 12 at night because an idea just hit me and I want to try it before I forget it.

As long as you keep in mind and can sleep at night believing that you are doing a fair week's work for the company, day to day it balances out over the long run.

share|improve this answer

I really like Joe Strazzere's answer. However, when it actually comes time to go home, if possible I like to finish a unit of work so I don't lose my train of through. If that would take me too late into the evening, I like to at least be able to check my work in knowing it will compile and not break anything, even if it's partially complete.

I don't begin a large or complex piece of work if I don't think I'll be able to get it to a sensible check-in state by home time, so sometimes I end up doing admin or small tasks in the hour or so before heading off.

share|improve this answer

You don't leave the office "when you're done", you're leaving the office when you have reached a stopping point.

You've reached a stopping point when you're confident that you can pick up from that point and go on working when you're back at the office the next day.

You haven't reached a stopping point if you know that if you have to repeat part of what you did the day before when you show up for work the next day.

@JuliaHayward in her comment makes the excellent point that "You also haven't reached a stopping point if you have just checked some code in and haven't waited to see the build result. Be sure that others can also pick up from where you leave off." I second her comment. Who knows, you could get run over by a truck, as happened to one of my colleagues who made the mistake of staring at a buxom young woman as he was leaving the office and crossing the boulevard on his way to the train station :)

Leaving the office "when you're done" is not a reasonable standard for projects that require days, weeks, months or years to finish. Unless "when you're done" is defined as "when you've reached a stopping point for the day".

If you are hitting your milestones and you're giving a good account of yourself at the scrum meetings, you shouldn't worry about being seen as a slacker. Every minute that I spend worrying about what others think of me is a minute where I am not getting anything done. I asked one of my friends "Did you get it done over the weekend?" His answer: "No, but I worried about it" I felt so much better that his part of our project was in good hands after that :)

Note:

@emory comments that "The stopping point is one indicator and that "Other indicators are bus, car-pool, metro schedules; medical appointments; SOs schedule; child's schedule; biological signals (you are tired, hungry, etc); fire alarms."

I am differing.

There is a difference between selecting and reaching a stopping point for the workday, where you are actually making sure that either you or someone else can pick up where you left off, and a stopping point for the day such as making a train schedule, where the only planning you might care about is making sure that you get to the train station in time and do not care in what state you are leaving the project.

If you have to make the train schedule, then you should select a stopping point for the workday that will allow you to meet your train schedule for the day. If selecting such a stopping point results in extra time to twiddle your thumbs, then use that extra time to do some other work such as reading about that other issue in Stack Overflow. Then get off your butt and race to the train station :)

share|improve this answer
  • Aim to have the most important stuff done / finished at a point so that anyone can pick it up after you before 4pm so there is nothing left behind you after you leave.
  • If there is no major release for the day, you didn't do any critical mistake that needs to be fixed or lives don't depend on your work for that day then feel free to leave anytime after you worked your hours.
  • If you feel like you would not bring any value by staying late then leave.
share|improve this answer

Pick some number you are comfortable with, be it 40 hours a week, or whatever, and do that much work every week. In general you are probably going to want to stick to a schedule, and you are probably going to want it to be from around 9 to about 5. Yes your schedule is flexible, but that does not mean that when you are just doing standard everyday stuff that you should not just pick a normal schedule and stick to it.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.