views:

206

answers:

5

( Please provide the question this one duplicates. I'm disappointed I couldn't find it. )

My development machine is "slow". I wait on it "a lot".

I've been asked by decision makers who want to help to fairly and accurately measure that time. How do you quantify the amount of time you spend waiting on the computer (during compiles, waiting for apps to open every day, etc).

Is there software which effectively reports on this sort of thing? Is there an OS metric (I/O something something, pagefile swapping frequency, etc, etc) that captures and communicates this particularly well? Some sort of benchmark you'd recommend me testing against?

EDIT: I'm writing C# (mostly ASP.NET).

A: 

Depends on your work environment. E.g. in Visual Studio (C++, 2005) you can do timed builds, such that the IDE prints the elapsed time after the regular build output.

Péter Török
A: 

Quantification is difficult when you don't have anything to measure/compare against. If your dev-box takes 12 minutes to compile a project of 100,000 lines of code without any other dev-box to measure against you have no idea if this is good or bad. Maybe 12 minutes for 100,000 lines is actually good?

Measuring it won't help you and it certainly won't help your decision makers. Consider; "Yes boss, it takes an average of twelve minutes to compile our project." The boss says; "Ok, is that normal?". You have no idea.

Computer hardware is cheap. Look at the dev-box and consider asking the decision makers to throw some cash at it to improve its performance. If you compile on average 5 times a day and it takes an average of 12 minutes a compile, that's a lost hour every single day - adding up to 5 lost hours a week. Well worth the cost of some RAM or a CPU upgrade.

Chris Laythorpe
Probably the two most effective upgrades are more RAM, and/or an SSD hard drive.
Joel Mueller
Boss: "Is that normal?" - Automatic answer: "No it's slow!"
mafutrct
A: 

To me, a slow machine does not kill productivity as much as unexpected slowing down does - if the machine compiles the whole solution in 12 minutes every time you press F5, the solution has some problem, not the machine. Beside that, I don't have problem with 12 minutes, I can get up take a break. It's actually good to take a break when you know and have control on how long the break will be.

What I found the most productivity killer are these cooperate software that start scanning virus (or install updates) at their will - having to sit there and wait is a pain of ass.

Codism
(I'm assuming the 12 minutes came from the post about 12 minutes to compile 100,000 lines) I agree with almost everything you said, except for "if the machine compiles the whole solution in 12 minutes every time your press F5, the solution has some problem, not the machine." There are too many variables here to be able to simply blame it on the "solution". And I don't agree that a large program is always a bad one.
Wallacoloo
A: 

Close FireFox to gain some memory. Add RAM. Helped me a lot.

Daniel Mošmondor
+2  A: 

Here's one metric that may impress some higher ups: measure the average time it takes to build your application, and how many times you do that per day. For instance, We ended up with ~100 builds a day @ 60 secs each. Now, measure the average build time on a presumably faster machine (say 30 secs per build).

At this point you can see how much time it would save you to have the 'faster' machine. Per-developer, per-day. Multiply by the number of developers, and the days in a month and you can see how this stacks against adding another developer to the team. Yes, I know, there are other considerations when adding more people to a team, but this will give you a rough comparison that 'higher ups' can relate to. For instance: if we all had faster machines, we would spend less time on the builds, comparable to one extra developer.

On the other side, you should provide good estimates of the cost of upgrading everyone's machine.

Now, if you can, you should run this type of comparison against multiple 'faster' machines to determine their relative performance and perhaps individuate which bottlenecks you are facing (RAM vs CPU vs I/O ?).

Finally, my personal take is that, while this sort of process and the following discussion with the stakeholders takes place (and it may take a while), you could get everyone bigger/more monitors. That's a relatively cheap upgrade (of course, not that cheap if you go for 52" LCD monitors, right?) and more monitor-estate does improve productivity (protip: also improves employees morale, which, in turn, improves productivity).

HTH

FOR
Re monitors: The high-res 30" monitors are worth every penny when it comes to writing code. I use a 30" primary and 20" secondary.
280Z28
Last place I was at I had to use 1GB of memory on a single 17" screen. How I laughed! The previous occasion of using such a p poor machine was some time around 2002.
adolf garlic