Thursday, December 3, 2009

Timetracking, Funny Math, and the Accountants

I joined my current company about 2.5 years ago. And since then the one constant has been my frustration with how inefficient the company is at times. These have included things such as an overreliance on obscenely expensive contractors (The first team of five developers I managed, cost somewhere around one million a year and contained no full-time employees), to endless meetings in which nothing is resolved, to various hopeless complicated processes that amount to nothing more than busy work.

Of course, when the company was bought out a year ago and a new executive team was brought onboard, they immediately began trying ot reduce cost. This jettisoned the 70% contractor work force (something a few of us had been complaining about for years), moved most of the real development offshore, and made cuts in various departments across the board.

But they're not done. And now, apparently, some of them have turned their gaze on our time tracking system.

Now, I've always seen corporate time tracking a curious thing. Time tracking is almost always something mandated by the accountants and managers, so they can get a handle on cost. Like many things, it's an abstraction, and in every implementation I've seen it's an abstraction meant to give the financial people the information they want.

For the people doing the real work, meaning development and QA, the abstraction is generally far less meanginful. They don't see it as something valuable because financials and project codes aren't how they think about their lives. They think about the project or task they're doing. Sometimes these overlap, but just as often they don't.

Of course, I firmly believe in tracking estimates, how close actuals are to estimates, and so on. That's a big part of what I'm trying to tackle with ZPlanner. The difference though, is that in tools like ZPlanner, the numbers come from the actual tasks and work that people have to do. Entering time in such a system gives them value, becuase they can look at a burndown and see how much work remains for their team, they can look at how many hours and tasks are assigned to them and see what's left.

Time tracking systems don't give any of this valuable feedback to a developer. So, people enter their time because they have to. As such it's validity is very questionable. I have only to open up my manager's interface in our time tracking system, and see timecard after timecard filled in with an exact 8 hours every day to know this is not "real" data. It's constructed for my benefit and the benefit of the accountants. My reports fill it out because if they don't, I send them an email chiding them for having not entered their time not because they really *care* about it.

When people are doing something just because they have to, more often than not they do a half-assed job. That's just human nature. If you have a problem with that, take it up with evolution.

And the more complicated you make the rules and more difficult you make it, the more carelessly the task will be performed. Which brings us back to the the attempts of our executives to make our company more efficient.

For 2010, we now have a series of new rules for entering time. The two most impactful changes being:
  • Every time card must have 8 hours entered per day
  • Buckets for management will be eliminated, which means all time must be charged against a specific project

Currently, when I have to file a timecard, I really try my utmost to charge the time I spent to the appropriate project. But frequently, there will be a big chunk of time on any given day, for which I can't really account. The time was usually spent in random conversation about our technology or other ongoing projects, answering email, and so on. It's in such small, discrete portions, though, it's imposisble to recollect exactly how it was spent. Currently, I log this to the "management" bucket. Now I will have to charge it against a project. Most likely this will mean, I spread it evenly across all the projects for which I have oversight, which is everything in my division. Trying to count it accurately would take 50% of my overall time and would be an exercise if futility.

Even the time I spend with my reports in one-on-ones needs to be charged to a project I'm told. I no longer have a 'management' code against which to charge it which will likely be whatever project that particular person is assigned to. The fact that I probably spent the time discussing stuff having nothing to with the project is immaterial. As flawed and inaccurate as the data is now, I'm pretty convinced these rules will cause it to be even more skewed.

My initial reaction to this was that it was a terrible thing. I kind of thought of it in an absolute sense as in, time logged should correspond to reality, and that's the only way the data can led to sane decisions. I thought the intention was to log time as accurately as possible, but I now understand that's not really the case.

Last night, I brought up my concerns about the new time tracking rules to a VP. He explained that the intention was to either pass along the cost or use use these tools to find inefficiency. I told him I thought it was dumb to mandate that everyone has to log a minimum of 8 hours per day. There are probably days they work less than that. And I guarantee you, no one is "productive" eight hours out of the day at this company. If they work 8 hours, they take a coffee break here, discuss some random thing with their colleagues that's completely non-work related and so on.

He countered that the new system would serve two goals. To make sure the cost is passed along to the customer and to make sure people are being efficient. He said that right now the buckets of things like "Management" allow people to hide things. If they try to just amortize this time across their projects, the people who are in charge of those projects will see through it.

But that presumes people know exactly (or even remotely) how long "managerial" stuff takes. I don't think the problem in our company is (primarily) inefficiency on the part of the developers or QA or anyone doing real work. It's the amount of managerial overhead. I can't imagine what requres my team to have 6 project managers for the amount of projects we have. Often a project manager has only 1-2 assigned projects. How can their be *that* much to manage? I just don't buy it.

The VPs contention is that will come out. I suspect something different, however. People will learn other ways to game the system and because now the data will be ever less accurate (if that's possible) than it is now, the decisions the executives make based upon it will be every more divorced from reality.

But maybe it all works out. I don't know. This VP did bring up some good points insofar as "reality" doesn't matter, if the cost is passed along appropriately to the customer and the margins rare. I guess my incredulity is because I don't have an MBA. Reality doesn't matter.

But I like to think it does. And the *real* way to answer these questions, to make sure that costs are calculated appropriately is to start with how the estimates are generated. To track them in a real tool that caputure how much real work is done and how much "management" is logged. To ask hard questions based on empirical observation of why so much *management* time is needed, and to cut the cord in some cases and see what happens.

Managers will always justifty their existence. They create work for eachother. It's not out of ill will, but it's just their nature. There's a great quote from Northcote Parkinson, after whom Parkinson's law is named which goes:

"But the day came when the air vice marshal went on leave. Shortly afterwards, as it happened, the colonel fell sick. The wing commander was attending a course, and I found I was the group. And I also found that, while the work had lessened as each of my superiors had disappeared, by the time it came to me, there was nothing to do at all. There never had been anything to do. We'd been making work for each other."

So to me using a tool that most people don't care about, with an abstraction meaningful only to a few who aren't actually doing any of the "real" work, and which the smart people will find simple ways to game is not the way to fix these problems.

But what the hell do I know, I don't have an MBA.

5 comments:

Joshua DeWald said...

In the time I was there, I probably logged into the time tracking system twice. Never got bothered about it ;)

I once overheard one of the finance guys (now, granted this was prior to the new rules) say that it ddidn't matter what you booked your time against... as all 8 hours from their standpoint when toward whatever your "official" project was. Prior to that I tried to very honestly track the buckets of time, but from then on it seemed pointless.

I think all the points you make are great... reality doesn't seem to have much to do with these processes. One thing it will do is let them play around and justify whatever million dollar financial package they deemed worth purchasing.

Code Monkey said...

Interesting that you were never bothered about it. It's pretty ironic that I rail against this stuff, yet I send out reminders that cards are due, chide them when their late, and examine every single one to make sure it makes *some* type of sense while others who presumably care don't even expend the effort to make sure people have submitted them (Assuming you were reporting to VP I think you were)

Chris S says he hasn't submitted a card in 6 months.

That's I think a big part of where this mandate is coming from. I'd assumed everyone was fairly good about getting their cards in. I don't think it's unreasonable, but again I think there are far better ways to expend this effort that would give much more meaningful data.

Jeremy Walker said...

Well I've almost got an MBA and what it sounds like you've got is a leadership gap. No system will work or have the desired effect unless you have buy in on the level its used. Like most things this is common sense. You wouldn't release a product no one wants why force people to use a system that no one wants. You need to sell it. The fact you didn't know the intent and had to ask about it shows that they weren't selling very hard. Its also hard to generate buy in. Simply saying do it and ignoring feedback that no one wants to do it is an excellent precedent to set for people who want to ignore the problem of filling in their time sheet accurately.

One school of thought would say the people using the time tracking system need to help design and implement it in order to gather sufficient value from it to use it. This of course needs to be done in conjunction with input from the upper crust that is pushing for information discovery and ultimately efficiency gains. What I read from your post is, "There's a witch hunt and if I don't fudge my numbers I'll be the next efficiency", solution, ignore the problem and don't feed management the ammo to fire you.

HR would simply say they need to communicate their goals more effectively and in a fashion that is relevant to the consumers of the system. If that doesn't work break out the carrot or the stick.

My personal opinion is that tools that are trying to be used in such a macro sense, to observe a complex system in a simplistic fashion, will fail. Either they will fail spectacularly enough that their input is ignored or they will bring about bad decisions either from bad data or an impossible interpretation of that data.

This is why organizationally you break companies into smaller units. Global time tracking is for the bean counters, project tracking is for the team. Unless the activities of the firm are very uniform its unlikely that trends in the data from time tracking across the organization will yield meaningful actionable information. You'll be shoving a lot of different shaped polygons into a square hole if you try that.

If your VP thinks people are "hiding" things in the manager bucket than their should be a discussion about why things are bing hidden and what things are being hidden that bucket. Rather than simply forcing you to hide things in another bucket. Either directly confront the problem or live with it.

Code Monkey said...

You sure do have an MBA Jeremy! You seemed to ignore most of what I wrote then reiterate as your own the precise points I was trying to make. Maybe I just suck at writing in a comprehensible way (I'm not being sarcastic).

In summary, I think we both said pretty much the same thing, namely:
a) Such a tool needs to be seen as worthwhile by the people that use it for it to generate meaningful data
b) It's an abstraction, and an abstraction only meaningful to certain people (in this case, the financial ones) and forces one omto, as you wrote, "shoving a lot of different shaped polygons into a square hole"
c) Project tracking is more appropriate and meangingful for most users of the system, rather than a global time tracking system
d) If they have concerns people are "wasting" compnay time or resources, there are bigger problems. If some of us employees are really bad actors, changing the system only means people have to figure out a new way to game it...which is trivial for smart people anyway.

Jeremy Walker said...

;)

So I agree with all of your points, the solutions I'm suggesting, which you didn't lay out explicitly the first time

* Goal Congruence
* Confronting the actual problem (s)
* empower the units within the company to achieve the stated goals
* Communicate

So yeah, I'm ignoring your points and restating them again!