Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do you decide when you've done enough work for the day?
288 points by zzaip 6 months ago | hide | past | web | favorite | 120 comments
I'm a relatively junior software engineer, a little over a year out from university, with a cushy remote job working for big-co. And I never know how much work to do on a given day.

Right now, my daily rule of thumb is to try to have my butt in the seat for ~8 hours. I clock out at 6 and stay disciplined so I don't end up overworking as many remoters do. The main disadvantage of this strategy is that it just doesn't align with the reality of the job. Some days I work on something complex and want to work more hours, while others I'll knock out a few small things and want to call it early.

Strategies I'd like to use but can't:

- Show up and leave with my coworkers. We're a remote team, and have a few serious workaholics on the team (not to mention the issue of timezones).

- Leave when I've done my tasks. This might work if we had actual sprints. Our reality is an endless stream bugs and features for us to work on before we launch our product, and we just grab tickets as they come. Hopefully this improves after launch.

What do you do? I want to do enough work to feel good about myself, without burning out. I have very little supervision from management, my coworkers seem to respect and like me, and I am generally productive. Help me, HN.

How strict is your employer about butt-in-seat schedule?

If you have full flexibility, I’d suggest aiming to hit 40 hours on a weekly basis rather than 8 on a daily basis. That gives you the flexibility to work, say, 10 hours one day because you’re really on a roll, and to stop at 6 hours the next afternoon when you’re tired and distracted without feeling guilty.

Don’t go over 40 hours on a regular basis. That’s a recipe for burnout. A week of crunch time every 3 months is one thing. But regular 50-hour weeks aren’t sustainable for most people.

I’d also suggest setting goals in the morning for what you want to accomplish in a day. Put down your work when you reach the goal, unless you’ve got several more hours in the day. In that case, set another goal for the remaining hours. If it becomes clear that you won’t reach your goal within a reasonable number of hours for the day, put your work down whenever you hit a stopping point close to the time you’d planned to wrap up for the day.

More experience should help you make increasingly accurate estimates of what you can accomplish in a day, so you’ll hone this process as time passes. Plus it’s great practice at estimating, which is a difficult and valuable skill.

It’s unusual to hire junior engineers fully remote in part for this reason: more experience in a “typical” work environment give you more context for these sorts of judgement calls.

From my own experience, burnout is primarily emotional. Time spent is a side-effect.

It's not how many hours you work, it's how much of your experience involves despair, frustration, and resentment. That might either be towards your employer ("stupid schedules, I'm not valued"), towards yourself ("this should be easy but I'm failing"), or towards the universe for simply not being the way it "should" be.

Amen. Working on my own products has never caused any kind of fatigue. It’s energizing :)

I find there is inevitably still tough days working for yourself on a project that takes more than a month. Overworking can lead to losing sight of your goals which can lead to burn out.

Fair enough! Breaks and structure remain important.

I wake up every morning at 5:00, do some excersises, write down my goals, do pushups until I can’t any more and then process all emails from the past 24 hours. Once that’s done I set a todo list for that day and push things forward that aren’t a priority.

So far, this ensures I’m able to stay on top, don’t lose track, can work 10 to 12 hours a day easily and not feel tired or unproductive.

There’s still plenty of time left for “life” as well. Just have to be in bed at 22:30 at the very latest.

Setting goals, cooking every day and adhering to that routine works wonders to be honest, I highly recommend it :)

Ok I can see why you don't get burnt out much. I don't exercise and go to sleep at 4am lol

I feel the same. From my own experience, I've done both 9h-10h of productive work for few weeks in challenging projects and 8h ass-in-seat in crappy and bad managed ones.

It’s both. You can be fine doing somehing you hate for a couple of hours. But 12h and more.

Beautifully put.

> If you have full flexibility, I’d suggest aiming to hit 40 hours on a weekly basis rather than 8 on a daily basis.

I think this is an exceptional answer. I’ve been working as a contractor recently where I am hard capped at 40 hours a week and it’s been wonderful. Work 12 hours one day when I’m in the zone and don’t even think about stopping? Sweet, that’s 4 hours off my Friday afternoon. Can’t concentrate today? That’s fine, I’ll put in some extra time tomorrow.

That’s a major change from my previous position where I felt like I never had a “not at work” mode and there was always more I could do.

I think capping yourself on a weekly basis is valuable because it gives you flexibility on a day-to-day basis while retaining a regular cadence.

I'm not convinced burnout comes from merely working hard, it comes from when you work hard and expectation of reward is missed.

Agreed. It seems to me that burnout from work would only be qualified if burnout from play was a thing - because work to the fortunate among us, is play. Managing expectation is key, or more palpably perhaps - anticipation. The scientist, Robert Sapolsky, has done some interesting work on how dopamine affects behaviour. He shows that we get far more pleasure/dopamine from anticipation [future] rather than reward [present], where dopamine dries up. Our endurance is largely about our perception of the future. Good video here if anyone is interested: https://www.theguardian.com/science/punctuated-equilibrium/2...

In my case, it was due to crunch time shortly before release, and then after the project was released falling into a void of not knowing how to fill my time.

Which caused stress and eventually a burnout that I am only just slowly getting out of, after about 5 months.

I suppose it is different for each person though.

Spot on. When I was younger I could do 15 hour days without looking at the clock when orders were coming in and shipments were going out. Reward is a big motivator for time invested.

I don't agree with that, because the number of hours you work are pretty irrelevant when not in a butts-in-seats setup. Also, burnout is not really directly related to the number of hours you work.

Work should be focused on productivity, not hours spent. Employers, clients and managers have expectations of a quantity of work being accomplished for a specific budget, and it doesn't matter to them if its done in 2hrs or 200hrs.

>"Employers, clients and managers have expectations of a quantity of work being accomplished for a specific budget, and it doesn't matter to them if its done in 2hrs or 200hrs."

You're assuming every project is fixed-scope, fixed-cost and variable-time. In my experience that matches a small minority of projects.

Although " fixed-scope, fixed-cost and variable-time" makes it easier, this works also in other situation, including variable-everything, part of a product team.

You are given tasks or projects for a specific budget (budget, for your manager is 1 engineer). They have expectations on what 1 engineer can deliver on average.

This is what people mean when they say "we care about output, not butts in seats".

Experience alone doesn't help you get better at estimating. You also need to have reasonable stopping points. That's why I try to aim for rigid 8 hour days, rather than being flexible. It allows me to see how much work I accomplished in a given day, and what kinds of tasks generally take less time or more time. Days are very intuitive chunks of time to reason about, and I find this helps my estimations be a lot more accurate.

Interesting, I would advise the reverse, get into a daily routine, try to not variate too much, and avoid working the weekends.

This is what works for me.

1. Start the day with a plan (15 to 30 min)

2. List things that, absolutely, need to be completed

3. List things that would be great if can be completed (bonus)

4. Have a set time when you are going to finish work. For me, 6pm. So when 3 or 4pm hits and I still have 1 or 2 things from my list #2 above, I get on it right away. That also helps me to stay on track whenever I am in meeting or unexpected phone call etc. Excuse myself or end the call quick so that I can get back on track.

It sounds very simple but it has helped me feel accomplished when I end my day at 6pm. Feeling accomplished for the day is very important for me. I usually hit the gym at 7pm and if I don't feel accomplished, I end up having a sucky gym time. A good gym time, run or outdoor activity, helps to set the tone for the rest of the night. If I am working on a side project, I usually start working again around 10am and stay up until 12 or 1am latest. Rinse repeat until Friday.

So MY short answer to "How do you decide when you've done enough work for the day?" = When you feel "accomplished" for the day :)

Starting with a plan has been absolutely essential for me.

This year I started a business which means I work full time from home (or a nearby coffee shop), because my co-founder is in a different city and timezone.

While I've worked part-time remote and on distributed teams before, the lack of structure from being your own boss has been a huge change. A blessing and a curse to be sure.

When I start the day without a plan, even if I "get lots of things done", I feel stressed all day and am almost certainly not effective.

Making lists on sticky notes, and crumpling them up when they're done, is the best feeling and reaaaally makes you feel accomplished. :-)

If I'm in the flow, I just keep going. My only hard-and-fast rule is that I'll stop if it gets to about 4am, because I find it very difficult to get to sleep if there's sunlight outside. I haven't always been this disciplined and sometimes used to go right through until I dropped from exhaustion, but discovered that was unhealthy.

Having said that, I almost never get started before midday, and often it's only in the early afternoon or sometimes even the evenings after a lot of online procrastination. I have some days when I'm extremely productive, and others where I really just can't get into the zone to do much of anything at all. In the latter case I'll just write the day off and try to make something of it in terms of relaxing. I make no distinction between weekdays and weekends, so I'll just work whenever I'm in a productive mood.

I'm also a remote worker; my client is on the other side of the world, and I bill by the day. So I have a high degree of freedom over which hours I work, and to a certain extent, the amount of days I work each month.

Butts in seats and meeting a quota of 8 hours a day is entirely pointless, and serves neither you nor your employer. The only things that matter are, in order: 1) your health & work/life balance, 2) the value you bring to your employer.

Amazing how I wrote this post without typing anything in it, I bill by estimate so if something is estimated 40 hours and I do it in 2, I can get more work or just chill, I usually book my time around 200 "hours" a week and some good weeks I work 18 real hours and the bad ones around 70, pays extremely well but has very little margin for error so the bad weeks have to be rare. I had 18 straight months of good weeks and now I'm in a 6 week streak of bad ones, great/awful clients make or break this system.

How do you handle deployments on those "40" hour projects? I understand that you provide that much value, but it the client thinks they are paying for hours, even if not directly, seeing a contractor push code in 2 hours and then bill me for 40 has to hurt a bit.

Obviously if your estimate is devoid of any hourly numbers, this conversation is moot.

Those are closed price projects, they do use hours for reports and all but its really a fixed payout for a fixed amount of features.

> and others where I really just can't get into the zone to do much of anything at all

Have you checked your sleep pattern when this happens? I have noticed if I did not get enough sleep (Because I was in a flow or anything else), it will catch up with me the next day. Can't concentrate no matter what until I get some rest again.

Oh yeah, definitely. If I don't get enough sleep, the next day is completely fucked. I'd say a good night's sleep is the single most important factor in ensuring I'm productive. It's something I struggle a lot to get right, especially when I'm on a roll in a late night coding binge but know I'm going to pay for it the next day.

What's going to happen to your life is you're going to learn what other people's natural speeds are, what yours is, and what is needed for your specific job, and you're going to have a much better barometer for that. That's going to happen naturally over the next 2-3 years.

In the meantime, you can:

* Try to incrementally improve. Keep a daily log (wish I had started this my first year), write down your stupid mistakes, false starts, other things. Re-read entries sometimes. Try not to make the same mistake twice and to be doing more complex tasks over time.

* Do the "butt in seat" thing without beating yourself up. A good one is to try to work ~40h a week (even 35), except if you can see an immediate career benefit not to by working the extra hours on a side project or stretch assignment. It doesn't have to be 8 hours every day it can be 12 on one day then 4 the next. Log your hours (remote people should always do this) and note patterns. For example, if you are consistently working less than 40h, try working harder, more than 40h, reconsider your approach or appeal to your manager.

* Ask for feedback. You can set up a meeting with someone (for example lead, manager or just someone more senior you work with) and ask "what do you think I should do to be more useful to the project?". Alternately you can wait until a more social occasion or a lull when working 1:1 with someone and just ask "so how do you think the project is going?" If they think you have a time management issue, they'll tell you, if not, you're good. Side note, you may hear stuff like work on your soft skills, have better work life balance. It doesn't strictly mean "work less" but it means your coworkers think you're too focused on individual achievement.

This is something I generally recommend to juniors, which goes against a lot of advice I’m seeing here - spend more time learning if your work is all good for the day. Early on, it is important to ramp up to get to senior as quickly as possible. If you don’t, you risk having trouble if you get laid off for whatever reason and need to ramp at a new job with a new codebase. I generally recommend doing around just under your max focus abilities - enough to push you hard, but not to the point where your mental health suffers.

Once you get to senior, your job prospects will reflect how quickly you got there - the quicker, the better opportunities you get, which has a cascading effect on your entire career.

I have seen junior devs fall into the trap of taking the job for granted, and run into trouble searching for new jobs - you don’t want to be that person.

Most employers who are mature enough to support remote work are also mature enough to understand that you are paid for the value you deliver, not the hours you spend starting at a screen. I made my decisions accordingly when working remotely. I would spend the bulk of normal working hours on work... but if I had to think out a problem, I'd go for a walk or clean the house while thinking. I'd also lay out some goals for the days that felt reasonable, and if I got them done by lunch, I might relax in the afternoon... but if I was still working on them at dinner, I'd keep working til they were done. I also worked harder on the days when I was in the zone, and didn't waste my time forcing it on others days. Over time it all balances - even though no single day matched expectations from an office job, I delivered results.

A lot of good answers but I'll throw mine into the mix. Assuming I know what the ultimate goal is for what I'm currently working on, the day-to-day becomes working towards what I call momentum tasks for the next morning. The start of the day is when I'm at the highest risk of being derailed, so super easy tasks are paramount. So before I wrap up for the day, I'm making sure I'm stopping at a point where I know - and perhaps am excited - to continue the following day. I never stop at an impasse, personally. That means I can sometimes put extra work in, but generally I come up with momentum tasks quite intuitively. I'll write my todo list before going for a 5k run after work [typically ~5pm to reset my brain for relaxing a bit, and often get ideas for how to overcome larger challenges that comes with the concreteness of thinking about momentum tasks. I find self-set constraints really helpful in my productivity. I am generally a pretty boring person, though, so it suits my personality. Just my 2 cents.

> I'm making sure I'm stopping at a point where I know - and perhaps am excited - to continue the following day. I never stop at an impasse, personally.

This is a very nice trick, and one that's less likely to happen by accident if you set your own hours.

When the end of the day approaches, start finishing up whatever you were working on, and mentally prepare for what you'll be doing the next day. Then forget everything until tomorrow morning.

There's a huge amount of variability between developers, so don't think that the "workaholics" doing 50+ hour weeks are necessarily being more productive than you; unless you actually compare, they could really be struggling and just trying their hardest to keep up with everyone else. In the past, I've solved problems in minutes that someone else on the team had spent many long-houred weeks and eventually given up on.

> When the end of the day approaches, start finishing up whatever you were working on, and mentally prepare for what you'll be doing the next day. Then forget everything until tomorrow morning.

Be prepared to either let go of whatever plans you have made, or to stash them in actionable form in longer-term storage for a rainy day, in the event that you start work the next morning and are thrust into reactive triage mode. It can be immensely frustrating if you are anticipating and have expended mental energy planning tasks A, B and C, and attempt to juggle completing them with surprise Sev 1 priority tasks X, Y and Z.

Another trick is that when you're near the end of the day, deliberately stop partway through a problem and write down something about the next steps for yourself to read when you get back in.

This can help short-circuit some obsessive "just one more X" behaviors in night-owls, and makes it easier to get back into the groove the next day.

Try to know how many hours of "deep work" you can do before losing steam. Usually it's ~4 hours, once you get past that point, do some tickets that are not too demanding, and preparation for the next day. That should be around 6 hours of work and that's more than enough, almost no dev does 8 hours of solid work a day, a part of it ends up being browsing the internet and reading articles.

I'm remote and have been prone to workaholism in the past. Here are my techniques:

- I do track my progress on key long term objectives. If I'm getting behind I need to know, and burn the candle at both ends until I catch up. This should be rare.

- I try to set a daily goal or two of stuff to get done to make sure I stay focused on something productive and don't get distracted with yak-shaving or non-work.

- I stop hourly-ish and assess what I've achieved in the last hour. Sometimes I'm just not getting anything done and I'm better off calling it a day to get some real rest and diversion.

Best thing in my opinion is to have something external that limits your schedule.

For me and few it of my coworkers it definitely were our children. I know I want to be at home by 18:00, so that I can have dinner with my family. One colleague was starting at 7:00 and and finished by 15:00, because he was pisking up his kid from preschool at 15:30 most days :)

I am not suggesting for you to get a kid :P but knowing that every day I want to end by $HOUR because I have a $THING does wonders :-)

This of course depends on the flexibility of your working hour window. I see a lot of fairly complicated answers but for me, having a simple punch clock app so that I know exactly how long I have worked for the day, every day, works.

Some scenarios with my approach:

1) No flexibility, chair sitting required from 9 to 5.

With paid overtime, I would be there for 8 hours and never 10 minutes longer, unless the project was ending in two days and was not finished or the production was burning down.

Without paid overtime, I would be there for 8 hours and consider staying a little longer if production is burning down.

2) Flexible (meaning it does not matter if you work from 8 to 4 while skipping lunch, 10 to 6 or you don't show up at all - this is my situation now).

I will still track my time down to a minute. The overtime rules stay (unless I am really having fun with something and know I will get paid 150% of hourly for it). As for daily hours - usually I will work longer hours whenever required (within reason), at least at the beginning of the month.

Since my hours are flexible and I know exactly how long I have worked so far, I can easily stay there for 9-10 hours one week and leave after 6-7 hours the next, depending on the workload / situation.

I have noticed that some people, unless they are contractors with billable hours, look down on tracking your time or "punch clocks" as if it is beneath them. For me personally, it brings me the peace of mind. I don't have to ever debate myself whether I am working too much or too little since I have the exact numbers.

This is really dependent on your employer's attitude. What worked for me, though, when working independently, is:

- Start the day by making a list of tasks you can do that day. You don't need to finish them all, but there should be no moment that you don't know quite what you could pick up. - Then work using the Pomodoro technique: alternate 25 minutes of work with a 5-minute break, and every fourth break is 15 minutes. In those 25-minute sessions, do not e.g. check Hacker News, and in the 5-minute sessions, do not work. - My day was done when I finished 12 "Pomodoro's", i.e. did six hours of productive work.

I was way more productive than I was when I had to go to the office, yet had more spare time. I guess that helps: if you can compare it to going into office, you feel less guilty for fewer hours butt-in-seat if you're getting more done.

Of course, things like meetings can complicate this.

> This might work if we had actual sprints. Our reality is an endless stream bugs and features for us to work on before we launch our product, and we just grab tickets as they come.

> Hopefully this improves after launch.

It won't. It will improve after you or more likely someone more senior stands up and does something about it. Which requires buy-in. Which is much harder to get in a highly remote team IMO.

Or it will change when you find another job that already matches your criteria.

we as human are expected to stay 8hrs in the office because that's what our culture says: 40hrs a week is a normal work week. But if you analyse what we do in the office: barely ANYTHING.

My advice to you: As a Junior, you should expect good mentorship and support from your more senior peers and your manager. So lean on this. Make sure that the expectations between you and your manager are clear. Ask your manager the productivity he expects you to have. What tasks are expected to be done either daily, weekly or in the sprint. Try to see also what other engineers of your level are accomplishing. Once this is a little more clear to you, then forget about hours, butt in seat, etc. Do those tasks and find the sweet spot. If the expectations take you 1hrs/day, take a little more work, because performing better than expectations will make you feel good and motivate you (and probably be good for your career). If it takes over, say, 4-6hrs/day, the expectations might be a little too much, or you might need to growth a bit more and learn how to be more productive.

You're a junior SE and working remote? Yikes. I'd want others around that can help me out. So simply fixing bugs and adding features is a junior dev kind of task. Prioritization, understanding the business need - that's how you differentiate yourself at this point. It's not about hours worked but about identifying what is and what isn't as important.

Junior at big-co has a say in prioritisation and business need?

If you have a good manager or reasonable people on your team, you'll be given chances to see if you stay in the rails.

What you are looking for here is primarily a feedback mechanism issue. This is something that is a hard problem, since good, useful feedback is never quite as simple as just asking someone. Employees are looking for it. Managers are looking for it. Executives are looking for it.

With respect to work time and workload there's always an element of presentism - if "enough" surfaced activity happens over the course of each week and the work is not obviously deficient, then most managers won't ask questions. And you already know that much, since you had many years of school to get that idea in your head. And when it's on-site, it's simple to get to that level - if you're in the office, you're at work, even if it isn't time-on-task.

But there is always going to be a level beyond that, of taking on tasks that are a good combination of "builds up a career" and "builds up the company" - stuff where you can act more independently, and likewise fail independently. You can easily fall into work that does neither or only one of those things, or convince yourself into workaholic behavior and sacrifice everything else. Nobody can offer a clear bright line of "this is the best possible course of action". But there is a "better" out there somewhere!

So if you can measure yourself by whether you did something of both career and company and other life things each day, then you already have a more balanced self-measurement than "quantities of issues" or "lines of code" or "hours in seat".

The night before I make the list of the three MUST-DO items, always three. Once those are done, I can bail whenever and feel good about my work product.

I have a similar expecting from my employees.

These items are the detail, the standing orders still remain (answer phones, do meetings, email, etc)

How I handle juniors and beginners:

It is ok to stay longer

It is ok to stay longer especially as a beginner. You are in a learning phase. But still need to do your stuff.

It is also ok to screw up or ask questions.

Never ever go every week over 50 hours. I have a junior right now which works longer because he sees us working long hours. I will tell him soon to suck it up and go home on time.

To be honest (not always fair), if someone is working too many extra hours "to learn how it works", then that says something about the capacity and capability of the person.

Or the support/documentation/culture of the 'team' or organisation...

I work in consulting and in that it is about api platforms.

There is no documentation. Everything is new and unique :)

Also true.

I'm not sure what "butt-in-seat" means, unless you're working interactively in real time with a team, or doing customer support. Otherwise, what matters is billable time. That is, time when you're actively on-task, and not on HN or whatever. A reasonable practice is tracking 10-15 minute intervals.

Then limit that to a rolling average of 40 hours per week, or whatever you like, and can negotiate with your employer.

I've mostly worked as a consultant, so there's been no limit, other than however close to 24 hours per day that I can handle. And sometimes, with rush jobs from multiple clients, I've just about maxed. But in that case, I've discounted work time, especially for clients who weren't pushing as hard.

Start the day with a plan.

I use the Franklin covey method of listing out tasks ranked by importance first. Most important have “A”s next to them, then “B”s and so on. Then rank the list by order, 1,2,3,etc.

List should look like this:

1A - most important fire drill task I need to get done today

2A - def have to do this too

3B - let’s do this after that

4B - blah blah blah


This will focus your efforts on being effective rather than efficient.

Then I intentionally detach myself from accomplishing everything on the list. There will be days when you can’t even get through task 1A so you really have to be able to cut yourself off and sleep on it. If you get too emotionally attached to completing the list you’ll experience dissatisfaction. Instead, choose to value other aspects of your life like the fact that you have flexibility, family time, good health, etc.

I generally try to get as much work done (in life) as I can. Some projects I can work for 12 hours a day on, others I'm tapped out at 6, so I just maximize output. If output is below the debugging cost of that code or something, I stop. Could be 2pm or 10pm.

Do you think this approach applies if you’re trying to save energy to work on side projects? I feel like if I work as hard as I possibly can at my day job, at the end of the day I’m not left with much juice left to work on the things I actually care about.

This is a place where having an awareness of what is important at your job can help. You described a process of adding features and fixing bugs. If you ever want to achieve balance, understanding the value of a feature so that you can determine what actually needs your time is important. Then, it's not about quantity of your time and effort that matters, but how much value you are adding.

I own a small start-up and struggle with work life balance. I'm a night owl and generally not terribly productive in the morning, but once I hit my stride in the afternoon/evening, my productivity continues to increase and I often find myself plugging away at 3-5am. I have found that it's in my best interest for throughput to continue when I'm "in the zone", but it does create some friction with the spouse.

I'm very interested in how to define the "enough work for the day" question. Or we could just listen to Dan Reeder: https://www.youtube.com/watch?v=xNWhiXxdbWk

I always stop at 5pm. I take some kids for a walk to decompress. Around 9pm, after kids go to bed, then I’ll do another hour if I’m working on something fun.

I love coding, and I would be coding if no one was paying me, but there’s more to life than just that.

If your team are not able to have at least a short term roadmap for planning your work, then think about assigning points to tickets yourself. Let's say, you think you should be able to do 5 points a day. If you knock out 5 one pointers or one 5 pointer, that's your goal achieved, so you can clock out early if you want to (or carry on if you're in the zone). If you find 5 doesn't fit well (you're working too much or too little for your hours) change the numbering until it's closer.

Keep track of your progress and you should be able to get more of a feel for your own productivity (as well as getting better at estimating tasks).

I get paid for 40h so I do 40 hours.

At the beginning of my career I was probably less active but now I work better/fuller.

This article remindes me how I wanna be.


So if I can't anymore for the day I take a break and continue later. Not sure when I had a time when it was just no longer possible but than I would just go home.

Also I don't read Reddit or hn when I work. Helps a lot to keep focus. And I try to work on something else for the company in break time like when a build is running.

To me, it's more about making sure that you accomplish while pushing your learning curve up. This is easier when you work for an employer, but hard when you work for yourself as you always want to push more in less time. Another thing in a virtual work model is to make sure that you are engaged with your other coworkers throughout a regular basis especially if there are some others that are not working remotely. I think it's more about making sure that the team has a good feeling of the virtual model. I wouldn't be too worried about keep tracking of the exact clock in/out.

I spend the first 70% of the work day on hard problems and things I absolutely have to get done. For me this 70% ends at 4pm.

At 4, I step out for a coffee, stroll around the block and grab a cookie. Then I come back to my table and reply to annoying emails and tackle the easy stuff till about 6-6:30.

I never start working on a tough problem after lunch, because if things go wrong, I end up working long hours and can't get it out of my head even when I go back home.

By the way, I'm really impressed that many people commenting here can work 6-10 hours at a stretch. I need to stretch every 45 minutes to 1 hour lol.

In this past job which was the first one that didn't track time at all, I still wrote down my hours every day and still tried to balance it to +/- 0 at the end of the week, if not possible then end of the month. After a while (months?) I did what everyone else seemed to do. Just eyeball if it's either roughly 40 hours per week or if the last days/week was very stressful tread a little more careful, or if nothing seemed to work and I was distracted make a mental note to catch up next week.

That said, I enjoyed most of my time there very much and often would be doing exploratory stuff that I might have done on my own time anyway, so sometimes I took some extra time to evaluate one more possibility and used some spare time. Other times I just did some private stuff only veeery distantly related to actual work stuff and chalked it up as "learning".

So yeah, probably not a really helpful answer. But if you're having fun and are learning a lot a few more hours won't hurt. If a fun evening of spare time does not include programming (which I guess is true for at least 50% of programmers) then don't put in extra time. I think I've mostly done "I have a guilty conscience if I leave a lot sooner" but I also try really hard to not slack off during my 8 hours and count them as working hours. And yes, if you have that "Today I achieved more in 6 hours than the whole last week" then absolutely stop working, it's probably true.

>> I'm a relatively junior software engineer, a little over a year out from university, with a cushy remote job working for big-co. And I never know how much work to do on a given day.

Protip: Optimize for consistent performance. It's better to close 3 tickets every day, than close 30 tickets on Monday and one or two every other day, even though the latter scenario adds up to more tickets.

(Obviously, replace "tickets" with your own measure of productivity.)

Using TDD (Test Driven Development) I tend to stop working when fatigue sets in and I'm tempted to skip unit tests for the sake of immediate gratification.

Unless that sweet green bar is your immediate gratification.

> I want to do enough work to feel good about myself, without burning out.

Two things about this:

- I think you should be careful of linking your work ethic to your self worth

- It would probably help if you had a more clearly defined goal.

Common healthy goals are:

- I want to be Tech Lead in X years

- I want to retire early at X

- I want to learn about technology X and work primarily with it, here or elsewhere

- I believe in what my company is doing and I want it to succeed

From that standpoint, you can start to tie your behavior to whether or not it helps you achieve your goals.

> I have very little supervision from management, my coworkers seem to respect and like me, and I am generally productive.

I think you should also examine this. Don't let others set your priorities for you. If your manager or company want you to work more than you're comfortable doing, find another job. If your coworkers don't respect you based upon how much or little you work, find another job. If you find yourself not being productive for reasons like "this is boring", "I don't believe in this", etc., find another job. Dealing with situations like that -- while not always avoidable -- is a short road to burnout.

Feeling good about oneself is obviously very personal. From your post it seems that you're mostly satisfied with your flow. So your motivation is a key for the adjustments that you're seek.

If your motivation is about advancing in your career (getting noticed), then it's somewhat specific to your workplace.

What's it there that gets one promoted? Overwork? Yes-man? Report athletics? Plain year count?

Either way, being junior you need some feedback from your supervisor, both to show your progress and to gauge the expectations. There's probably a yearly review system in place, if not yet. So setting one own goals is a good way to prepare for a future review.

In a kind of 'conveyor' style of workflow where you just draw tasks from the stack it may be harder to see the larger project scope. But it's still there.

Your department/team may have commitments, e.g. to reduce the bug backlog, to deliver features for integration. Basically, it's business goals, larger than just a personal churn.

Once you understand how to contribute to the team value, you can decide about how much is your fair contribution.

When the clock hits 4pm, I have a daily standup meeting. About half the time, this meeting occurs, and I go home afterwards immediately. If it doesn't happen, a quorum of people had something better to do. If I don't have anything actually urgent or interesting, I tend to bail with the others. Otherwise, I work away until maybe 5:15, then I go home.

I'm basically paid to be on-hand 9-5, so that's what I do. I don't check email outside work hours as a rule. If there's something technically interesting, or is important to do but cannot be done within the constraints of a business workday (basically, anything that involves deep thought, concentration, and sustained effort), I may choose to do it when that's convenient for me. And I know things; I remember, and I've been around long enough to know the whys and wherefores and sequences of events that led up to the present state of things.

Not that you asked, but this sounds like a totally dumb time for this meeting.

It creates a reliable interruption, such that if it happens you're likely to be distracted enough that it isn't even worth trying to get back into serious work for 45 minutes before you need to go home.

It's also late in the day, so any tasks that come up must pass a high bar to be actually remembered and resolved. A task must either be so urgent that it is worked on immediately (and then people will resent the standup for making them stay late) or so important that it can be remembered the next day. This means a whole bunch of simple-to-fix issues are probably being ignored, either by forgetting or just not being raised in the first place.

I'm not surprised that the meeting often doesn't happen. A better time for a standup is before lunch or earlier in the morning.

I haven't found an actually good time to have these kinds of standup meetings.

First thing in the morning is not good, because it requires people get in in time, and so it becomes a gate on starting work if you are on time until the latest person arrives. Also kind of useless to do until the morning email triage is completed.

Midday doesn't work, I've found, because it is impossible to carve out a consistent time to meet. External sources always try to clutter up 10-2 with calls and meetings that involve herding cats and aligning schedules over which there is little control. Also tends to blow into lunch time and people get hangry and cranky.

End of the day at least serves as a terminus to the day, and since standups are mostly useless, skipping it to sneak out and play golf or whatever tends to be a common outcome.

What you're describing is a workplace with a generally broken approach to meetings. The best thing you can do with standup in this environment may be to eliminate it, or minimize it as you've described. But there is often a place for a standup meeting in many work environments, and barring the other stuff I'd suggest before lunch is a good time - anchored to another interruption that would happen anyway, and provides an incentive to finish quickly without making it a hard stop.

Pedantic guy asks "what is your definition of 'work'"?

The short answer for me is, I've done enough 'work' when my efficiency curve drops more than 15-20%.

After that though I relax my scanning the latest news, HN and other consistent sources of interesting and useful new information. Is this work? Actually I (as in the guy in my brain who uses it when I'm not) often comes up with work arounds for the local maximum I've often hit in my "real work". Things like a better way to structure some code, a better way to approach a system problem, all kinds of useful things pop up from time to time. Really it's a way of getting out of the rut.

I've come to view this as essential work though it seems like just goofing off.

Well the Brits have a saying for it. "Bed, bath and bus." That's often where inspiration strikes when you least expected.

I'm always objective focused with my team...

1. we breakdown issues/bugs into 2 - 4 hour increments where we write test(s) to replicate. Then share with team. Hopefully there can be a fix in that time, else create a new issue.

2. we breakdown new tasks into 2 - 4 hour increments with a new function(ality) + necessary tests

Then we spend ~1 hour a day doing code reviews. Some days I can get through multiple issues, some days it's just 1. In either case, we can assume 5 - 8 tasks / issues a week are completed. How everyone does it is up to them; so that's how you decide how much work you need to do.

Unfortunately, estimating can be poor for these tasks, but that's why we time box it and require a team notification for any issues (plus tests). It works relatively well, and everyone checks for open PRs or code reviews between each task -- so blockers don't occur.

I recommend trying something like that.

I thint tgere are two strategies that work.

1.) Keep log of worked hours. When you want to stay longer, whether because need or because it goes well, stay longer. Note additional hours. Take those hours back (work less) within next two days or so. That way you will not overwork your self and will still take advantage of continuous time chunks.

If you are organized person, you can also note how much was "focused effective" and how much "staring into it butt in seet". I did that in past and it was eye opening.

2.) Work every day exactly same schedule and live very regular life. This his frustrating and hard for most people. Anyway, after a while you will codition yourself to be focused at exactly those times even if you are working on something big.

Large disadvantage of 2 I'd that you will become overall less flexible person that way.

Once I get 5 billable hours in the rest is just gravey. I’m a consultant though so I get paid by the hour.

Humans work in cycles.

So, you already had the right hunch.

You don't really have a good direction on a random day and can't really get into the zone? Fix some small bugs for 2h and then call it quits, go to the gym, drink beer with your friends.

You got that one feature that you know exactly how you build it and you're on fire for it? Knock yourself out in a coding session of 2 x 20h and take 3 days off afterwards. Much bette than forcing yourself to quit at 6pm even though you're burning to do it.

Productivity means taking advantage of the human cycle, which is comprised of your mood, hormones, the characteristic of your problem and many more factors that you can't really control.

Read Deep Work and find a schedule that works best for you. If it doesn’t work for your employer find a company that it will. You’ll be happier and more productive.

I have clients for whom I averaged 5-6 hours a day. They saw me come and go and were happy to pay me 40 hours. I have other clients who act like they cannot survive without me there 8+ hours a day. For them I get there at 7am and work till 5. Many days I leave still feeling like I didn’t get to accomplish everything I’d hoped.

There’s quite a bit of variety in expectations out there. You have to cross this river by feeling the stones.

Switching context has a cost. Resuming work has a cost.

If it is already end of day, it may be reasonable to start your next task tomorrow rather than spending time next morning trying to resume your work.

I try to end my work day right in the middle of "Flow"; especially when I know _exactly_ what my next move will be.

This has two functions:

1. Gives me something to jump-start my next day with; I'll be eager to finish my work, instead of dallying on Slack/email/GitHub.

2. Keeps me from overworking. It's easy to think you're "being productive" by pushing lots of code late at night, but at least for me, this is when my lowest quality work happens as my brain has started winding down. Save it for later!

You need to plan. Merely having sprints will not make your days shorter!

Think what's your 1 day, 3day, 5 day, biweekly, monthly, quarterly, yearly, and 5 year goals for yourself, team, product and company. What unknowns may influence decisions or are strategies? What assumptions need to be confirmed? How often are we checking ourselves on our progress? When do we get to change our mind?Do these things and how much should you with in a day becomes very clear.

As a remote developer, setting a schedule for yourself is really important -- at least when you are getting started. Once you have an established work pattern that you are happy with you can experiment to see how things work.

I recommend doing what you are doing until you feel like, "OK. I'm in a rhythm and things are going well." Perhaps you are already at that point.

Next, when you have one of those days where you are feeling good and want to continue, work an extra hour. Then play with how you are going to use that hour the next day. Will you start late, or leave early or have a long lunch, or whatever? Tell your coworkers that you're going to do it. "I worked late today, so I'm going to X tomorrow". This keeps them informed so that they don't panic if they are looking for your help the next day.

Evaluate the progress. Did it feel good to you? For example, starting late does not work for me. I'm a morning person and taking an hour or two off in the morning means that I will get started on my side projects... and never stop. Then I end up working my "day job" until midnight --- no good!

Also, evaluate the reaction on your team. Were they OK with your behaviour? Every team is different. It's important to try to work with the team and not just stubbornly go your own way. I've worked with people who have the attitude, "It's my right to do whatever I want. I'll come in at 2pm and leave at 4pm and make up the time when it suits me". I hate working with people like that because programming is a team sport and I have to accommodate your weird schedule.

I work time shifted by 9 hours from the rest of my team. I know it impacts them and I do whatever I can to help them -- including working late nights sometimes (even though I'm a morning person). But you do what you can. Some of my colleagues can't get up early in the morning, so I'm happy to accommodate them, just like they are happy to accommodate my choice to live on the other side of the world. There is a give and take there, and as long as you are aware of it (and not always taking), then I think it's fine.

Deciding whether or not to work late is always a judgement call. My advice is to consider 2 things.

1: Is it truly and emergency? The server is on fire and you are losing customers. Somebody needs to work on it. You should stay if at all possible. Even staying around to provide moral support for your colleagues can make a big difference. Sometimes there is nothing you can do, but if you hang around and read slack (or however you communicate) and make occasional comments, it can really help the team. Nothing is more lonely than sitting in front of a melting down server, not having a clue what to do and everybody has buggered off for beer.

Sometimes people say it's an emergency and it really isn't. In those cases, consider the cost of saying no. There will be a cost if someone asks (or hints strongly) for you to stay and you say no. It sucks. It's not what it should be. But it's very common. If you can afford to pay the price, then feel free to draw the boundary. If you can not, then do what you have to -- and then try to get yourself into a situation where you can afford to say no the next time.

2: If you just feel like working, then go for it. Keep in mind that this comes after you have established a "normal" working day for yourself and when you know how to take back the time later. But stopping yourself from having fun (even if it's making other people money) is just silly.

Always keep in mind your own health, though. When I was younger, I seemed to be able to work a lot of hours and still stay very energised. As I've gotten older, I can not longer do that. I have to pay attention to my energy level, because a 12 hour stint can wreck me for the next 2 days. That's no good for anyone.

Finally, I occasionally work a short day when I'm really not on the ball. Again, I confer with my colleagues before I make any decisions. People know I'm usually around between 9am and noon their time. Sometimes I need that time off and around 9am I say, "I'm not getting anything done today, so I'm thinking about packing it in for the day. Is there anything that somebody needs me to do before I go?" Sometimes there are lots of things, and I stay and do what I can -- which is good because that often makes me productive, when I wasn't before. But if there isn't anything pressing, I'll rest and be able to do a very productive day the next day. That kind of thing really depends on the team and the amount of trust everybody has in everybody else. It won't fly on some teams, but I work with a good team.

This is the question of the next few decades. How much do we keep the "x amount of hours a each day" thing built into our culture.

I do this. I also sometimes tell myself that if I can get these - let's call it 3 - things taken care of I can consider the day a success and leave early.

This is the best way I've found to get things done, with a corollary: spend a little extra time at the end of the day deciding on what tomorrow's 3 things are.

I'm a business owner and I start my day early (5ish). I am usually done around 1 for a few hours then do another hour before bed. As I've grown older I've learned to recognize when my brain is mush and I've replaced actual work with the appearance of work. Even when things are going great there is a limit to what I am capable of each day.

Have boundaries and respect personal needs. Quit when needs unmet or crossed enough. Be homeless if necessary.

Look up the concept of Flow Theory by Mihaly Csikszentmihalyi. I run a relatively small Creative Agency called Lazy Eight, where we are experimenting with 60 hours a month(measurable execution), its been working well so far but will be interesting to see once we scale a bit more.

I think your approach of 8 hour day is fine.

Add to that anything you feel passionate about-- things you'd learn for 'fun' and you should be fine. (For me, there are tasks that I'd do even if I weren't employed at the time. Those are the 'after hours' items.)

I wrote an app for my old pebble watch to display on the watchface how much I work. Some days are inevitably longer than others but by Friday evening I try to leave once I clocked 45 hours for the week. Any remaining brain power at the end of each day goes into side projects.

This is brilliant. Gonna see if there’s an equivalent for Apple Watch, and if not, write it myself.

I use rescuetime to track my computer usage and aim for a certain number of “productive” hours a day. This way I don’t feel guilty for procrastinating or falling into a hacker news hole, that time is not counted toward the productive time goal.

I know cause I start to get slow at programming and find it hard to solve problems.

Easy. Once I have to do pretrain 30min before training in the gym. Nothing except exceptional routine change (a short trip) or emergencies would get in the middle of that.

When it's 5pm...

But seriously, you should have a metric of quality over quantity. If you work on a team or a highly collaborative environment, the Dynamics and the answer will change.

I have a hard stop at 6 PM, and I made sure everyone else knows that. I do check email one last time at around 10 PM and work on a code review or respond to a comment.

When I reach a milestone..it can be done in less than 8 hours. If the 8 hours limit is reached, then enough work is achieved anyway and go home. No extra hours

Excuse me for the off-topic, but how did you find that job? Junior + remote seems a very difficult combination.

I try to not go over 20k keystrokes a day

I hope you don't write java in a text editor

These days I just do one big idea. If I finish early I might do other smaller tasks which I don't care about too much. When I was a junior dev I tried to do a lot of things everyday to prove how fast I am. That worked for the short term but looking back there are actually very few things which are genuinely useful. Creating new revenue streams for the company for example.

When my concentration drifts too far. I can have breaks in concentration but when I really start to think about completely different things I call it a day. That is when doing dev work; for sales/investor/board meetings, it is just when they finish, which is usually when food and/or drink appears on the table and people start talking sports.

Having had my first tate of work in an agile shop there’s a lot of nuggets of wisdom here.

The quality of responses in this thread are why I love HN. So much to chew on here.

When it's 5pm, regardless

Once I'm braindead, have stomach ache, become too distracted, etc.

Start at 8:30, end at 8:45. If you’re end of day meeting load or other demands make you stay late, come in later.

The challenge is to get your stuff done in that time period. IMO, if you’re working more than you are paid to work, you’re a sucker. Direct your passion elsewhere.

How did you get a remote job at BigCo?

Sheer random fluke. Originally I was on a normal team - then that team got shut down, and I was transferred to a new team that was partially remote. Management wanted us to go into our nearest office, but it was far and nobody on the team was there anyways, so it was pointless. Management knew we might quit if they made us trek 3 hours round trip to this empty office, and the project was behind schedule and they couldn’t afford to find new devs. That was that.

It helps that the current project is iOS and there’s a dearth of qualified iOS devs here. If it was some generic service work, we probably wouldn’t have had much leverage. Crazy way to start my career!

Work regular hours. The secret to productivity is routine, discipline, and sleep. That’s non-negotiable. So you’re going to have to set a base day. I like to work hard so in your situation I’d say a minimum day is 8-5 or 9-6. Then I’d build on that.

First thing to do is to make sure you’re working well in those hours. Don’t try to compensate for procrastination by sitting there longer. On the vast majority of days I will literally not do anything other than work when at my machine. Quitting social media massively helps, or at least logging out on your work machine and vowing never to log in. Delete the apps on your phone, or keep your phone in another room or powered down. Have two phones if you really need one to make/receive calls during the day.

You’ll have days when you’ve done less than you want. It’s tempting to work extra hours to compensate, but instead you should say “right, I screwed up by procrastinating today or making a bad call on proceeding down that problematic road to achieve X that soaked up a lot of hours, but tomorrow I’ll have another go and get it right.” Go to bed, try again.

The most important thing to learn is how to decide what to do. This is far more important than the number of hours, or your skill level. A great programmer writing the wrong code has zero productivity. This is the most important advice for getting things done: deciding what to do. Sam Altman said something along these lines recently, he’s bang on.

At this stage you’re junior and won’t be as productive as others. So you’ll want to work some extra hours if you’re ambitious. If you’re keen, I’d recommend working Saturday rather than more hours in the evening. It’s less stressful and you’ll get more done, particularly if no one is contacting you. And a Saturday day can be more relaxed, maybe you want to socialise and you just do half a day, maybe you work on a laptop in bed or in a cafe for a change, you’re the boss that day.

You need to skill up, technically and managerially/organisation-wise. One method is to devote an extra hour a day to learning some tech skills. For example, you have a git problem that costs you an hour. Write on your todo list - learn git - and that evening (or whenever you invest a few extra hours) you study git, make a cheat sheet. That investment begins to accrue. Other things you might consider: mastering IDEs or emacs, build tools, testing, dev methodologies, languages etc. An hour spent googling and reading blogs, stack overflow, watching screencasts, without any pressure to get other work done is remarkably constructive.

So the todo list: you need to learn to organise yourself. This will up your productivity and reduce the need for long hours. Read a few books: Getting Things Done, Rework, The Now Habit. These soft skills are so very, very, crucial.

Finally: take care of yourself. Junior devs tend to have more of a social life, and it’s important to enjoy yourself. But be aware of and invest in all these things: exercise, diet (minimise caffeine, sugary drinks/snacks), relaxation time, and more than anything: sleep. Sleep. Sleep. Cannot emphasise enough. If you’re going out late one day, that’s fine, but try to sandwich it with good nights of sleep either side.

This might sound like a productivity guide rather than answering your question, but essentially I’m answering a related question: how can you spend your time well so that you don’t need to work 12 hours a day, but get enough done and still enjoy your life?

There will times you have to break any routine or hours limit you have. In which case, that’s fine, but as soon as that period is over: have a rest, make a firebreak over a long weekend, then do a reset and get back into that routine.

  The most important thing to learn is how to decide what to do. This is far more important than the number of hours, or your skill level. A great programmer writing the wrong code has zero productivity. This is the most important advice for getting things done: deciding what to do. Sam Altman said something along these lines recently, he’s bang on.
This is strong advice - I’m saving this to refer to later. Thank you. This whole post is great, and you were insightful to see the real question I was asking, and answer it. =)

I know this is not bery popular point of view on HN but:

Burn out? You are in your mid 20ies, if you can’t put in long hours and hard work now you won’t be able to do it later in life trust me.

It really comes down to how industrious and conscientious you are rather then how smart and happy you are.

If you’re a hard worker and know your job well you will make it on any job, even the ones with shitty management. If the managers are unbearable leave - you are lucky to be in the industry where if you’re any good you can land a job in a day. Most people don’t have this luxury, work very long hours in completely shitty jobs (think cleaning toilets) and never burn out and lead happy life.

It’s basically down to your personality and what you value in life, nobody else but you can really tell you what’s best for you.

> It really comes down to how industrious and conscientious you are rather then how smart and happy you are.

I get it that industriousness and conscientiousness are important, but I disagree that "it" (whatever "it" is) comes down to those rather than being happy.

(I also disagree that being smart or working smart is less important, although it's true that just being smart without any of the former two doesn't allow one to accomplish much. Of course if you value the idea of being busy and doing a lot as an end in itself, that's another story.)

If your economical circumstances, the surrounding society or other realities dictate that you have to be particularly industrious in order to survive and to meet your basic needs, wants and goals, it makes sense to have that as your central value. But if you're already getting what you need, why on Earth would industriousness rule over happiness or satisfaction?

I guess this is pretty much a matter of values, and if you get that satisfaction from being and feeling industrious, that kind of answers the question. But if you don't, it doesn't make much sense -- in that case the former is just a means to the end.

> Most people don’t have this luxury, work very long hours in completely shitty jobs (think cleaning toilets) and never burn out and lead happy life.

Well, you can kind of toil away in a non-thinking job, and if it suits your personality, that's fine. It can still be exhausting particularly if you need to do it in a hurry, but I wouldn't expect you to burn out if you can keep doing pretty much the same thing every day and it suits you.

However, I think a lot of people on HN are the kinds of people who get satisfaction from more than just getting their basic job done, and the ability to be creative and to maintain the kinds of cognitive abilities required e.g. for tech jobs does actually require a balance, at least for most people.

But yeah, it's a matter of values in a sense I guess. Doing what fits your values gives satisfaction.

Like i said, not very popular:)

Question is why is everyone so obsessed with work life balance?

I come from 3rd world country and I never heard of that concept before I moved to some European countries.

I used to work anywhere from 6-16 hours a day and even night, I never complained and always did my job as best as I could, so not sure why is that viewed as horrible, and I feel the only reason people think about this is cos it’s easy to find a job in this profession, I don’t see people working in Mcdonalds or stock traders talking about it.

I’m sorry if you don’t share that point of view.

No need to be sorry. I don't think many here will be envious of your point of view.

As for why work life balance is seen as something to be strived for, there might be several reasons.

Most workers here are thought workers, which means productivity is incredibly hard to measure. Along with this, the general consensus seems to be that we have limited number of hours of true productivity per day with this sort of work. (Idk if the science is there to back it up, but it is the consensus). So by this logic working 70 hour weeks has a cost.

Another reason is that an hour at work takes an hour from society as a whole. Another hour at work is an hour not being a husband, not raising kids, not spending money at bars with friends, not shopping (to the benfit of the economy) not cooking or other hobbies which develop well rounded citizens.

Also maybe to the larger point, why? Why give your life (50hpw+ consistently) to an employer if it's not needed and you don't love it? There is a whole world out there and you already give an majority size chunk of you life to work and sleep, what are you going to do with the rest?

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