top | item 13847279

Ask HN: How do you manage software engineers' time?

22 points| hackerstyle | 9 years ago | reply

I am managing 12 software engineers and 3 QAs. We have a flexible working schedule, where people can come at any time and should work 9 hours a day for 5 days a week and they can work from home when needed.

We work with another office which has 5 hours difference (behind us), so we prefer to start at 11 AM and leave at 8 PM.

I like to manage team's output rather than managing their time, because if they are forced to spend time inside the office, it doesn't mean they are productive or even working. At the same time it's hard to manage output, because software engineering tasks are hard to estimate and things can go out of the track easily.

I would like to hear about the culture aspects you built inside your companies to increase productivity and how do you manage your team's time? (how do you like to be managed?)

I been noticing few things in the office, and would like to see how would you react to them: a. 2 team members play mobile game 4-5 times a day (5-10 mins each game). b. Some comes at 11:30 AM and leaves at 7:30 PM c. Some comes at 12:30 AM and leaves at 8:00 PM e. Some leaves early last day of the week without compensating the difference.

24 comments

order
[+] addcn|9 years ago|reply
I've found that you have to pick results (output) OR time. You can't manage both and trying to do so sends the wrong message to your team. They'll question your motives and start to assume they can substitute output for time or vice versa.

Pick one and stop thinking about the other. Worried people aren't working enough? Is one guy only working a day a week? If you have team members like that they don't have enough work and you need to set better goals with/for them.

So save yourself the eternal headache and pick your poison, people will respect you a lot more for doing so.

[+] hackerstyle|9 years ago|reply
Thanks for comment, it makes sense. Do you do anything to increase people productivity? for example: I hate to see people playing games in the office, but I know at the same time that it might be healthy to have this kind of freedom.
[+] psyc|9 years ago|reply
I'll just tell how it worked on the best team I ever worked on. Time was not managed at all. Show up for scheduled meetings (which are always between 11AM-4PM) and the rest is your call. Work from home, go golfing, whatever. Output was managed in the normal boring way. Estimates up front. Project schedule made. Daily 10-minute meeting for quick progress / problem reports. You tell the difference between normal project slippage and poor performance by paying attention. If one person was behind, we'd use a little light ribbing, e.g. calling them "the long tent pole" but we'd also have someone senior work with them one-on-one. If someone's output was chronically unsatisfactory and working with them didn't work, they're fired. If the whole team is behind, then that was probably just normal underestimation.
[+] itamarst|9 years ago|reply
The best way to manage output (since that comes up a lot in other comments) is to:

1. Figure out bottlenecks and fix them, they may be individual, they may be on level of way team operates. E.g. "our tests are slow", or "Jane knows C++ but Joe doesn't, so only Jane can do C++ code reviews when they come up."

2. Talk about the reasons you want stuff done. This gives the team the opportunity to figure out better solutions, rather than just being code monkeys writing a spec.

Focusing on hours is a mistake: you focus on the thing you can measure since it's easy, even if that reduces productivity. Micromanaging people's hours is not a good way to increase productivity.

[+] guilhas|9 years ago|reply
I'm a developer, and in my company:

We have a bi weekly team meeting to discuss tasks/issues assignment. Almost all day. We make sure everyone has 2 weeks of work assigned, estimation on tasks is as best we can do.

Then everyday we have a tool to log time against each tasks we spent time on.

We have to log 7h. From a 8h30 day minus 1h lunch, 15m break morning, 15m break afternoon.

We have to log/distribute 7h every day between assigned tasks, or special tasks like: network/software/hardware problems; meetings (without active task); task planning and time spent logging time; releases deployment;...

It's a pain in the ass, but help us thinking/focusing on what needs to be done.

Team managers, project managers, and BAs also log their time.

Every other day my team manager verify if everyone is missing logging their time and send private email reminder(just a pic of weekly calendar with missing logs). If I start to fall back to much he starts calling every day asking what I'm I working on.

Quarterly, in my personal evaluation, time logged is used as one of the metrics to evaluate progress. But not taken to serious, as it is a hard one.

Edit1: Everyday we have to make sure the task remaning time to completion is updated, increase/decrease/maintain.

[+] tedmiston|9 years ago|reply
All of the concerns you mentioned seem to be based on managing people's time instead of their output.

Except the first one, 5-10 minutes is a normal break, so it wouldn't be anything notable to me how one chooses to allocate their break. They'll produce better results overall vs not taking an hourly-ish break.

[+] hackerstyle|9 years ago|reply
Agree on games.

I find it hard to manage output alone, it's a combination of both.

Do you count hours where you work?

How do you manage output?

To me output is challenging, because any engineering task can take less or more time that what's estimated and thus how to set a realistic goals for the team members without making them go crazy.

[+] EliRivers|9 years ago|reply
"Some comes at 12:30 AM and leaves at 8:00 PM "

That's nineteen and a half hours in the office. This is crazytown and that employee needs some pastoral care. Unless that's a typo for 12:30 PM...

[+] wayn3|9 years ago|reply
When I'm working contracts and my managers/team leads/whatever are inept at management, I establish the following.

1. I ask you for the high level roadmap. The "birds eye view". Then we talk about what my responsibilities are and how you want things to be prioritised. At that point im practically walking the manager through managing me but w/e.

2. Once I know what he wants from me, I appreciate it to be left alone. I send update e-mails that highlight the discussed priorities and my progress on them with a request to contact me if anything has changed.

That's it. This is on top of any team meetings. You can talk to me whenever you feel like it, but if its about something technical, what you want to tell me better make sense. Or you'll just look ridiculous.

Addressing your "issues":

The only thing that matters is whether your team members are productive. If you don't know how to measure that, you need to figure it out. Assuming you have metrics in place to measure the productivity of your employees:

a. You see me playing a game. Its none of your business. Is my productivity where you want it? If its not, tell me about it. If it is, let me play my game, I'm working on a task that requires some white noise.

b. I only put in 8 visible hours. Is my productivity where you want it? If not, tell me about it. If it is, how I spend my time is none of your business. If you're going to dictate my hours in spite of me doing my job, I'm going to adhere to your bullshit while suddenly being less productive. In the meantime, your competitor is receiving a job application.

c. I only put in 7.5 hours instead of 9. See b.

d. somehow, d. doesn't exist. my bad.

e. See b.

^ Maybe, in some world, you could actually get more work out of me if I spent that one more hour in the office. But that's not how motivation works. You can't ask me to deliver X and then say "but I wanted X+1". Decide what you want. Hours or output. You don't get both. Do you want me to do the work or look like I do the work?

Now, let's discuss how you are measuring productivity. If you manage 15 people and can't figure out how to measure productivity, that's on you, not your employees.

Practically all of the managers I've worked with so far do not really understand how to do this job. Its your job to delegate tasks that you need to deliver on. Not much else. Your employees deliver on the things you measure. If you measure time spent in the office, people will optimize for that. If you measure time spent looking busy, people will look busy. There are an infinite amount of ways for me to look busy doing no fucking work. The only thing you should measure is output.

[+] hackerstyle|9 years ago|reply
Thanks for your honest feedback, much appreciated. Usually each team member knows the plan, and what should be finished and when. We have the right tools to generate reports and KPIs but the issue in software development is that things change easily, for example:

a. on a specific day, the expectation is to finish task A, but then, the engineer discovered that it depends on unplanned task B and now we need to finish B before being able to complete A and deploy it.

b. an engineer is working on a specific task, and he's investing a lot of time and effort but it was not finished on time because the actual plan didn't work out and needed additional time.

That's why it's kind of hard to manage output alone.

your example at the beginning was excellent, can you give me more details to how you like to be managed in terms of output? if you have a place where I can read from would be awesome.

Thanks again.

[+] theory_of_10|9 years ago|reply
From my experience I see managing output is far better than managing time. Also, it's showing bad attitude when your team is playing games.
[+] hackerstyle|9 years ago|reply
Regarding games, read the comments above. It provided so much good information.
[+] hackerstyle|9 years ago|reply
Can you share your experience in managing engineering team output?
[+] frankhn|9 years ago|reply
Breaks occur in every office (coffee, toilet, smoke). It's fine as long as it doesn't damage business interests.
[+] hackerstyle|9 years ago|reply
Do you record when employees come and leave? we currently don't and it's pretty flexible and that's one of the questions that I don't have an answer for. Should it kept flexible and team can come and leave when they need to or set some rules to manage that.
[+] awartani|9 years ago|reply
What are your practices to manage output?