How do you measure a software engineer's productivity?
October 20, 2014 10:54 AM   Subscribe

I’ve been told that my productivity at work needs to improve, and that I should think up three ways in which my manager can measure my productivity and its improvement. Difficulty level: software engineer. Wall of snowflakes inside (longer than expected, sorry folks!)

Some background: I’ve been working for the same company for five years, and for the first two years I was a plain and simple Engineer (we don’t have senior engineers at our company, but by the end of my second year I was taking on senior-developer-ish tasks).

In 2012, I was promoted to Engineering Manager, taking charge of a group of four engineers on a project that was kept very hush-hush. At the outset of the project, the day I started my new job, the company owner (who is a bit of a micromanager and gets involved at all levels, whether you report directly to him or not) told me that he didn’t think I was capable of doing the job of EM. I stood up to him, but throughout the next year he made comments to that effect, regardless of mine and my team’s performance (the rest of the management chain, up to senior VP level, praised me for how good our performance was).

At the end of my first year, I was summarily removed from the position of EM — the company owner had decided that I wasn’t the right person for the job, and hired someone else. I was told that this didn’t reflect on me as a manager, but I was demoted to being an engineer again, and put on a team with whom I’d worked previously, though on a new project

After that, my work suffered quite a lot. For the first few months I was getting up to speed with my new project, which has a steep learning curve. At the same time, my manager (who is based in China; I’m in the UK) was taken seriously ill, so there was little contact from above to tell me my performance wasn’t good.

Finally, during our annual review period, that manager told me that I needed to improve. He was absolutely right and I didn’t challenge him; I just set myself some goals and went and achieved them.

Not long after that, he resigned as a manager (he has a long-term illness so it made more sense for him to be an engineer) and we were given a new manager, based in Atlanta, who had never managed a team before.

In August, I had a slump. Only a couple of weeks, but it was a serious one. I suffer from depression occasionally, and whilst I’m not currently medicated I have needed to be in the past. When I was in my slump, my colleagues reached out to me and helped me through; at this stage I hadn’t spoken to my new manager about the problems I was having because he was on holiday.

At the end of August my new manager said that there had been concerns about my performance “up the management chain,” and that I needed to improve. I said that I recognised I’d been in a slump, that my colleagues were helping me, and I set myself some short-term goals (making those goals clear to my manager too). Almost immediately my productivity improved, and I started to feel confident in my work — happy to be an engineer for the first time in a year, really. I met my goals (though I didn’t discuss them with my manager as he was unavailable for long stretches during this time; I don’t know why) and I was pleased with how I was doing. I made a point of sending my manager daily status emails to keep him appraised of my work whilst we couldn’t have a conversation on the phone, and it became a habit.

A month after that first conversation, he brought up my performance again, saying that there were still concerns, but not specifying what they were. I was so surprised by this coming up again after a month of nothing but silence from hime that I didn’t press him on why it hadn’t been brought up before. He once again said that “senior management” were involved, and that he’d also contacted HR about this. He told me we’d talk the following week to set some short term performance goals.

That “next week” call got postponed for three weeks in a row.

We had the call today, and he told me that he was pleased with my improvement in productivity, but that he still needed to set some goals for me and then decide, based on those goals, whether I needed a performance plan (which is workplace-speak for not-quite-on-probation). He mentioned upper management again (but refused to name names when pressed).

He told me that I should think up some ways that he could monitor my productivity over the next three weeks, and that we’d talked again when I’d had the ideas. He will also think up some metrics, and we’ll pick the best three to measure me by.

Now, I’m well aware that you can’t measure developer productivity by lines of code or by bugs found or whatever. I’m struggling to think of ways to actually measure my current productivity (and I still don’t know, I realise now, what he’s actually looking for from me).

The only things I can think to measure are:

- Number of patches landed per day/week.
- Number of bugs closed per day/week.
- Number of code reviews per day/week.

But after that I’m at a loss. Any suggestions as to what I could / should be measuring would be appreciated.
posted by six sided sock to Work & Money (32 answers total) 7 users marked this as a favorite
Well, what were the goals that you were meeting and that were making you happy? Is it not possible to go back to those?

But you know what, it kind of sounds like nothing you do is going to get you out of this and they're contriving ways to justify firing you. If they were on the up-and-up then there would be mention of your previous improvements and building on that, not vague threats and radio silence.
posted by bleep at 11:09 AM on October 20, 2014 [11 favorites]

All of this sounds very deeply like problems that are not about productivity and are really, really about you needing to be looking for other work, because sometimes "not a good fit" is really a thing. So, you know, I think "resumes sent out" would probably be the best metric for you to be thinking about right now. No matter what the industry is, I think, this is a sort of universal behavioral signal for "we know you're still here but we're not totally okay with you still being here and wouldn't you be happy elsewhere". I'm not sure I agree that they're trying to fire you, but only because "just make the person's life unhappy until they quit" is a thing.

The only thing I can think of that might be of real use, depending on the actual stuff you're working on, is to start doing time estimates for tasks when you start them, and see how close your finishing time actually aligns with your estimates. This could get into the problematic realm of you being judged for things that aren't fully in your control, though--it's a good measure if you're then looking at "why did this happen", not if you're just earning points for checking boxes. Like, if you aren't meeting your estimates, the problem could be that you don't have a good idea how long tasks like this take, or it could be that the process of diagnosing the problem takes too long, or that you end up waiting on information from someone else, or whatever. So if you feel like he just wants to tick up points, I'd stick with the easily-countable stuff even if it's dumb stuff.
posted by Sequence at 11:11 AM on October 20, 2014 [9 favorites]

Wait, wait, wait.

This person is your manager?

He has told you that your performance is not up to snuff and then he is asking you to think up ways he can measure your performance?

I realize that he's also saying he's going to come up with some metrics and the two of you will collaborate on this, but look - this situation is all fucked. If he knows there are concerns about your productivity, then he should also know what those concerns are and it's his job as a manager to figure out a way to convey them to you.

This is especially true what with the fact that he gave you goals, you met those goals, and now he's saying there are still some sort of nebulous concerns whose nature he won't identify that are coming from higher up the chain but he won't say from whom.

This all came together when I got here:

a performance plan (which is workplace-speak for not-quite-on-probation)

Well, no. If your workplace is like almost any other workplace in the world, "performance plan" is almost always workplace-speak for "they are trying to get rid of you." Of all the times I've seen a performance plan happening, I can only think of one example when the person actually stayed at that job. Every other time, it's just meant the writing's on the wall.

The short version: I have a very strong suspicion you're being railroaded here. If I were you, I'd start looking for a new job because they're not even bothering to make it look like you're not being railroaded. As far as an actual answer to the actual question you're asking: Sure, those are as good a set of metrics as any, because honestly I don't think it's going to matter. Regardless of how well you meet these goals, they're going to keep repeating this until you're gone. I'm sorry, this sucks, and you don't deserve to be treated this way.
posted by FAMOUS MONSTER at 11:11 AM on October 20, 2014 [32 favorites]

This seems totally backwards to me.

I don't understand why it's *your* job to figure out how to measure your productivity. That seems like it's management's job.

he still needed to set some goals for me and then decide, based on those goals, whether I needed a performance plan

So he's going to come up with some goals after the fact, and then discipline you for not meeting the goals before they were articulated?

he brought up my performance again, saying that there were still concerns, but not specifying what they were

Management sounds incompetent. Presumably there are big goals (deliver this piece of software by this date) which dictate smaller goals (build this module by this date) and so on until you come up with metrics which can be used to hold junior employees accountable. You don't ask the guy at the bottom to come up with the goals.
posted by leopard at 11:12 AM on October 20, 2014 [3 favorites]

So... this is going to be tough to turn around. Many people believe that "performance Improvement Plans" (PIPs as they're known) are basically window dressing on the path to firing employees.

All of the metrics you list are easily gamed and ultimately prove nothing. Number of bugs closed per week? By that metric Program manager and QA verifiers are effective developers. Number of patches landed? Just chose all the tiny and borderline trivial patches. Number of code reviews? Just become a professional reviewer and don't submit any code.

My suggestion is to address this issue on two fronts:

1 - find a new job. Being outright fired is a very real possibility for someone in your situation regardless of whether you improve or not.

2 - make a sincere attempt to improve. You'll have to take your cues from your managers or whoever is evaluating your performance here. Suggest metrics but they have to ultimately agree what are the best metrics to measure. Focus on just these things for the next three months. Check in with your manager (or again, whoever is making the evaluation) weekly or even more often. Over-communicate. Ask for incremental feedback regularly. Get them to agree at the very beginning to give you regular incremental feedback.

Do they want you to do design? That's hard to measure. If they really want you to grind, grind. But find a new job unless you like doing this kind of work long-term.

Ultimately this is not about finding a magical metric that proves how good you are. This is about perception and communication. And it simply may be that The Power That Be have made up their mind (rightly or wrongly) and now need a paper trail to make this a clean termination from a HR point of view. It may not be - I know people who have turned things around on a PIP. But I also know people where it was just one more road sign on the path to termination.
posted by GuyZero at 11:14 AM on October 20, 2014

Yeah, you need to find a new job. You've been on a performance plan for that long with changing managers and being managed remotely? That sounds like a nightmare. You probably dodged getting fired because of the management change. If they think you're "that guy/girl", they will make you that eventually...

Software is a very artistic enterprise. Everyone wants to reduce it down to rote metrics, but at the end of the day, all that matters is releasing code and bugs against that released code. If you're a member of a team, there just isn't accountability outside the team to track you that well. The team knows whether you're net positive or net negative. The problem with having them vote for you is that then it will be obvious you're on a performance plan or they do it to everyone which will impact general morale.

No offense, but the management knows whether you do stuff or not. Showing them commits or closed bugs or whatever is a lot of work to defend your job when you really shouldn't have to be defending your job. Find somewhere better to work!
posted by cmm at 11:15 AM on October 20, 2014 [2 favorites]

The head of the company personally dislikes you and meddles to keep you from getting promoted (heck, actually got you demoted!). You have no future at this company.
posted by flimflam at 11:16 AM on October 20, 2014 [10 favorites]

You're being managed out of the company, but your manager is doing a piss-poor job of it.

How to manage someone out of a company:
1) Tell them their performance needs to improve
2) Set nebulous and/or impossible-to-meet improvement goals
3) Set up "Performance Improvement Plan" to meet the nebulous and/or impossible goals
4) When the person inevitably fails to meet the goals, let them go

Sounds like your manager is failing on step 2, but likely intends to follow through with the rest.

Or maybe he's not failing. He gave you a goal of figuring out ways to measure your performance. You're probably going to fail on that goal.
posted by erst at 11:18 AM on October 20, 2014 [7 favorites]

Oh, but to actually measure your productivity while you search for another job, pick a bunch of game-able metrics and game the crap out of them! LoC -- tons of short comments and short lines of code, bugs filed -- file separate bugs for all sorts of little aspects that would normally be part of one larger bug, etc. Pick all the easy code reviews and finish them.
posted by flimflam at 11:21 AM on October 20, 2014

Response by poster: Further context that I should have added: My manager said that it wasn't just me whose productivity was being looked at, it was the whole team; I'm not being singled out (though this could be a lie, of course). There is an ongoing saga of our team of five being set goals that are almost impossible to meet (i.e. enough work for a team four times the size, and only two months to do it in, followed by changing targets at the last minute) and then getting castigated by the company owner when we don't meet them.

Now, I too have suspected I'm being railroaded. The *only* thing that makes me think I'm not is that if they wanted to get rid of me that badly, they would have upped and let slip about it by now. I know this because they've done it several times in the past few months — several colleagues were told that the company (or at least the owner) was thinking about whether they should be let go, and were offered (on the QT of course) three months of pay to go quietly. Make of that what you will.

There are reasons I don't want to leave right now — I'm in the middle of a house move, for starters — but come the new year I'm certainly going to be getting my resumé out there.
posted by six sided sock at 11:27 AM on October 20, 2014

Response by poster:
The head of the company personally dislikes you and meddles to keep you from getting promoted (heck, actually got you demoted!). You have no future at this company.
He's done it to two of my immediate colleagues, too: one this year and one a few years back. He personally dislikes pretty much everybody at some stage.
posted by six sided sock at 11:29 AM on October 20, 2014 [1 favorite]

Response by poster: Oh, and to be clear: My manager also sees every patch I land and all the bugs I file and fix (and so does everyone on the team; that's the way it works here). So gaming metrics is out, even if I were interested in doing that (which I'm not).

I'll stop threadsitting now.
posted by six sided sock at 11:42 AM on October 20, 2014

You're free to make all the excuses you want. Stockholm syndrome/battered wives syndrome, can lead a horse to water, etc etc.

You really should dust off and update that resume post-haste.
posted by k5.user at 11:45 AM on October 20, 2014 [2 favorites]

Is it possible that the bigwigs have it in for your whole team and that you are all being railroaded? This does happen (management might want a clean slate with the department, especially if they want to pay people less or rescind some of the perks you have, like working remotely). It's also possible that your immediate manager is terrible at managing and/or communicating, or that THEIR manager(s) are terrible at managing and/or communicating.

See if you can corner your manager, have a sit-down chat, and get some quantifiable goals. But don't count on getting any more concrete answers than you already have. It's time to start looking for new work.
posted by Rosie M. Banks at 11:47 AM on October 20, 2014 [1 favorite]

It sounds like almost nobody works in the same location, and most communication happens via phone/skype/email, etc.

I would push back on this. If "upper management" is unhappy with your productivity, they are already measuring it in some way. If your direct manager isn't clear on what that is, he needs to push up the chain, not down to you, to get concrete measures and goals for you (and your team) to meet. That's the job of a manager.

I'm not usually a big fan of running to HR (they work for the company, not for you) but since their name has already been dropped.....I would contact them and get on the record that it's hard to meet specific goals or benchmarks when you are purposely kept in the dark about how you are measured and what is actually expected of you. Also the fact that you seem to have had a string of bad/absent managers, which makes it even harder to meet the (unknown) expectations when nobody is managing you. By at least getting this on the record, hopefully someone can go back to the management chain and say "hey, you're not actually managing here, cut these folks some slack." Or at the very least, you set yourself up for a good severance package when they drop you.
posted by trivia genius at 11:55 AM on October 20, 2014 [3 favorites]

The only metrics that make any sense are the metrics that they are using to decide that they are unhappy in the first place. They need to tell you what exactly those are. Improving something else won't help.

Although, maybe nothing will, because I'm also of the experience that once the words "performance plan" get uttered, it's all over but the gathering of the required documentation.

The standard defense to a performance plan, just FYI, is unfairness. Performance supposedly required of you should be measurable and also be required of other people with similar positions.

(This is where the union often gets us - if there's another "slacker" out there getting away with it, it has to be both or neither. Often we're not willing to do that, because it's not really about the objective performance, it's because we hate the first person for some arbitrary reason and not the second.)
posted by ctmf at 11:57 AM on October 20, 2014 [4 favorites]

Its impossible to set metrics to please them without knowing what their specific issues with your performance were. Do they think you take too long to complete tasks? Do they have examples? You need to come up with metrics that directly address the things they are complaining about - and if you don't know what they are specifically unhappy with, then this will be a total waste of time for everyone. So, if you don't already know, ask for concrete examples of what they are unhappy with, so you can address those things.

In the meantime, work on resume and start sending it out now, because getting a new job takes a while. House move or not, you need to start actively looking because this company sounds toxic and badly-managed.
posted by Joh at 12:01 PM on October 20, 2014 [1 favorite]

I know that it may seem like being disloyal or otherwise imperfect, but I strongly recommend fixing up a resume and looking at the job market. My experience has been that, even where I felt a deep sense of loyalty to my colleagues and employer, opening my eyes and looking at what is actually out there has made me a better, more professional colleague. If I bother to look around, I stop play-acting and trying to convince myself of something I may need to believe more than it is actually true.
posted by billjings at 12:09 PM on October 20, 2014 [1 favorite]

Best answer: In 2012, I was promoted to Engineering Manager, taking charge of a group of four engineers on a project that was kept very hush-hush. At the outset of the project, the day I started my new job, the company owner (who is a bit of a micromanager and gets involved at all levels, whether you report directly to him or not) told me that he didn’t think I was capable of doing the job of EM.

A lot of people would have been looking to leave right at that point. But they keep treating you like this and it keeps getting worse and worse. "Stockholm syndrome" may he putting it a bit strongly, but it seems like you are putting up with an awful lot of bullshit and drama from these people. Sometimes it's worth it for other aspects of the job but this doesn't sound like it is. It sounds more like your issues with depression are keeping you from seeing that you should be treated better, and could be, elsewhere.
posted by BibiRose at 12:30 PM on October 20, 2014 [3 favorites]

There is an ongoing saga of our team of five being set goals that are almost impossible to meet (i.e. enough work for a team four times the size, and only two months to do it in, followed by changing targets at the last minute) and then getting castigated by the company owner when we don't meet them.
This is probably the only metric your higher ups actually care about having met, and you already know it to be unrealistic. Unfortunately, no other metric will probably satisfy them, and the ability of your team to meet them is not something within your control (or even, it seems, your team's control, given the circumstances).
posted by foxfirefey at 12:43 PM on October 20, 2014 [1 favorite]

While I certainly appreciate that you have other stuff going on in your life, you're putting yourself at pretty extreme risk of having both tons of other stuff in your life AND no job if you don't start seriously job hunting.

If that's cool with you, no worries, keep on keeping on. But if that's an issue, the writing is on the wall here and it would be very ill-advised to disregard what your boss is clearly telling you, especially since your boss has let it slip that upper management is also gunning for you. This isn't going to turn out well.
posted by zug at 1:20 PM on October 20, 2014 [1 favorite]

I'm sorry for not directly addressing the actual question you asked, but I feel I must address the unspoken question here, which is (or should be) Should I stay at this company? And the answer is a resounding NO.

While I think you should get treated for depression, and you should try to become more productive, etc etc etc, this is not all about you and your flaws. Your company and your manager are very poor, demotivating and impossible. You were demoted for no discernable reason, and your current manager is both just a poor manager in general (who in the world tells someone there are issues with their performance but doesn't specify what those issues are???) and a poor fit for you. You are a professional, not a teenage apprentice, but your assignment to write about three ways to measure your work performance sounds AT BEST like you are being treated like a bad child writing out your naughty deeds on the blackboard. And at worst, your manager is just SO BAD at their job that they genuinely don't even know how to measure your performance (shudder).

I worked as a web developer for a decade, most often as a contractor but also as an employee. I would never ever tolerate an atmosphere like the one you're in. I reject the idea that you have to suffer treatment like this for any reason. Quit and find a new job in an environment of respect.
posted by mysterious_stranger at 2:42 PM on October 20, 2014 [6 favorites]

Oh, and just to be clear: I don't mean start looking for another job. I mean quit, immediately, and then look for another job. As long as you tolerate treatment like this you're sending yourself all kinds of bad messages about your worth. Quit, breathe free, and find something better. Don't drink the koolaid that says you are obligated to be owned by a company continuously.
posted by mysterious_stranger at 2:44 PM on October 20, 2014 [4 favorites]

You have at least five years of experience in software engineering. Why are you still in this job? Get out. Go get paid what you're worth. I can almost guarantee that not only will you find a job with a better working environment, it will probably pay better too. If they'll fuck you on working conditions, they are almost certainly fucking you on money and everything else.
posted by The Master and Margarita Mix at 4:22 PM on October 20, 2014 [2 favorites]

Instead of saying "I don't have time" try saying "it's not a priority"

Make your resume a priority.
posted by Diddly at 4:33 PM on October 20, 2014

There is an ongoing saga of our team of five being set goals that are almost impossible to meet (i.e. enough work for a team four times the size, and only two months to do it in, followed by changing targets at the last minute) and then getting castigated by the company owner when we don't meet them.

Get out. No system of measuring productivity will somehow cause you guys to magically meet impossible deadlines. If they are serious about improving, they can adopt real agile development methodologies and stick to them, but that requires your manager to have the backbone and authority to say things to upper management like "We already have 50 points allotted for that sprint. If you want want feature X by November 30th, you'll have to bump eight other points worth of work."

It doesn't sound like these people have a clue about managing software developers nor do they have any interest in improving.

Finding a new job in December is hard. Start looking this instant and you could have something before the holiday craziness.
posted by zachlipton at 4:45 PM on October 20, 2014

I'm so sorry that you're in this highly toxic work situation, where management asks you to guess what you need to improve on (which is likely a nebulous, ill-defined, capricious and unrealistic standard). As many people before me have already advised--please get out for the sake of your mental health.

If you can't figure out what it's like to get out of your work situation yet--do you have any opportunity to take some breaks and just get out of the office just to see how you feel whenever you're out of it? Do you feel more comfortable and / or healthy? If so--there's your answer, right there. (I've had some friends who are stuck in toxic work situations like yours--at a point where they feel particularly stuck, they started taking breaks, outside of the office, and they all felt much better when they're out of the office--which helped a lot in making the situation more clear to them.)

Also, you might want to take a look at this list of classic mistakes in software development. Does anything in your office look like this? Maybe this will help you...

Hope this helps, and wish you good luck!

posted by Tsukushi at 4:58 PM on October 20, 2014 [1 favorite]

Best answer: Yeah, you need to start looking for another job now: do not wait until the new year. A performance improvement plan is the company's way of letting you know they plan on firing you unless something major changes: the fact that they haven't figured out what 'success in the plan' would look like, means they want you to go.

Start looking now. Try to get a new job within the next six or seven weeks, because in December hiring stalls until late January. You might be able to hang on by a thread until January (especially because your company seems disorganised/slow, and because many orgs won't fire in the three weeks prior to Christmas), but why bother. Just get out.

(And yes, you should have left when you were demoted. Part of the art of managing your career means understanding your trajectory inside your org. Demotion was your cue to go.)
posted by Susan PG at 11:10 PM on October 20, 2014

Best answer: It is time to GTFO.

Your story is full of yellow flags. Getting demoted by the owner of the company was a red flag. You need to move on.

By all means, show outward compliance on this metrics thing (what you've already figured out is fine) but the metrics are not the important thing here. Quit fixating on what is basically bullshit.

The important thing is that you have no long term future at this company and even your short term future is looking shaky. You need to get out, stat.
posted by mattu at 5:31 AM on October 21, 2014 [2 favorites]

Response by poster: So, after reassurances from my immediate manager earlier this afternoon that I'm not being managed out of the company, his manager had a long call with me where he told me that the company owner thinks that the whole team needs an overhaul and that we've been coasting for too long.

And the lack of feedback I got about my performance until recently? "Oh come on, man! How much self-awareness do you have? You should have known you weren't doing well enough!"

Anyway, the fact is that the company owner wants to have several people removed from the company (including my former manager, whose performance has suffered due to a life-threatening illness).

Oh, and I was told this under a ": NDA," so I'm "not allowed to burn [him]" with it (because he'd get fired for telling me). He did suggest an alternative role for me as a QA team lead, but by that point I was barely listening. Actually the most galling part was that he kept seeming to try to be my friend through it all, which made me rage-y.

Honestly, I don't know whether to laugh or cry. And I don't know if I'd get away with saying "okay, I'll leave now for $X months salary," which I know other people have done in the past. And I'm fighting the bit of me that's telling me that it was just a matter of time, that I always knew they'd find out I was a fraud. (Which I've had in every job, ever, regardless of the fact that I've never, ever had a bad performance review until now).

Anyway, yes. Sorry for being rather naïve. When I joined this company, this was resolutely not who we were. Now, it seems, it absolutely *is* who we are. So it goes. I'm working on my resumé tonight and will have it out in the world in the morning. Time to GTFO, indeed.

posted by six sided sock at 10:48 AM on October 21, 2014 [2 favorites]

These people are bad news in many ways. While that stinks for you to have to deal with it, that really doesn't reflect on your performance or make you a "fraud." It sounds like you've more than made the best of a bad situation for quite some time. Check that attitude and best of luck with your job hunting.
posted by zachlipton at 7:38 PM on October 21, 2014 [2 favorites]

Oh my God, this is not *your* fault: don't blame yourself. (Side note: I have worked with hundreds of engineers and their level of self-confidence has literally zero correlation to their actual capabilities: it's weird. You know about the happiness set point -- the idea that everyone has a baseline level of happiness that they tend to revert back to no matter what? I think the same is true WRT confidence. You sound like you may have a tendency to be self-doubting, but you shouldn't mistake that for being bad at your job. They're unrelated.)

Your boss is behaving ridiculously and obviously has no authority: you shouldn't believe anything he tells you. Your company owner is clearly an idiot, demoting people randomly and spreading FUD. None of this is your fault: you just happen to be working at a place that's terribly badly managed. Get out and you'll be totally fine :)
posted by Susan PG at 7:16 AM on October 25, 2014 [3 favorites]

« Older Productivity Ninjafilter: how do you keep track of...   |   Music to read by. Newer »
This thread is closed to new comments.