views:

213

answers:

9

Hi guys

Now the machines we are forced to use are 2GB Ram, Intel Core 2 Duo E6850 @ 3GHz CPU...

The policy within the company is that everyone has the same computer no matter what and that they are on a 3 year refresh cycle... Meaning I will have this machine for the next 2 years... :S

We have been complaining like crazy but they said they want proof that upgrading the machines will provide exactly X time saving before doing anything... And with that they are only semi considering giving us more RAM...

Even when you put forward that developer resources are much more expensive than hardware, they firstly say go away, then after a while they say prove it. As far as they are concerned paying wages comes from a different bucket of money to the machines and that they don't care (i.e. the people who can replace the machines, because paying wages doesn't come from their pockets)...

So how can I prove that $X benefit will be gained by spending $Y on new hardware...

The stack I'm working with is as follows: VS 2008, SQL 2005/2008. As duties dictate we are SQL admins as well as Web/Winform/WebService Developers. So its very typical to have 2 VS sessions and at least one SQL session open at the same time.

Cheers Anthony

+3  A: 

That sounds like a decent machine for your stack. Have you proven to yourself that you're going to get better performance, using real-world tests?

Check with your IT people to see if you can get the disks benchmarked, and max out the memory. Management should be more willing to take these incremental steps first.

Robert Harvey
Well I know that builds take upwards of 5 min. That when ever we move between windows VS takes about 10sec to repaint. I can't have more than 2 instances of VS open without the system grinding to a halt (i.e. it takes about 30 sec to move between any open application). When multiple apps are running, intellisense takes about 2 sec to kick in... Its all little things like this that continually break continuity...
vdh_ant
If the project is very large it would help if you create DLL's out of the completed portions of the project and reference the DLL's, so that VS won't keep rebuilding them over and over.
Robert Harvey
RAM is so cheap that if you can't get your employer to spring for an extra 2 gigs, BRING your lunch to work for four days and take the money you saved and buy another gig for your computers.
Dave Markle
+3  A: 

The machine looks fine apart from the RAM.

If you want to prove this sort of thing time all the things you wait for (typically load times and compile times), add it all up and work how much it costs you to sit around. From that make some sort of guess how much time you'll save (it'll have to be a guess unless you can compare like with like, which is difficult if they won't upgrade your systems). You'll probably find that they'll make the money back on the RAM at least in next to no time - and that's before you even begin to factor in the loss of productivity from people's minds wandering whilst they wait for stuff to happen.

FinnNk
The problem is that they don't want best guesses or gut feelings... they have said they want hard data that says VS performs this well with 2GB of ram and performs this well under 4GB... Likewise with a due core machine vs a quad core machine... The thing they don't realize is that each development environment (for organisation to organisation) is different so it is virtually impossible to prove this without getting the equipment and testing within our environment... but they wont buy anything till they have the hard data...
vdh_ant
@vdh_ant .. then cannibalize another machine for its RAM to prove that inserting it into the first machine will speed up that machine.
Peter M
It's rank stupidity, isn't it. 2Gb of RAM is dirt cheap, and yet they want probably highly-paid people to waste time doing sums and measuring whether it's worth spending £20. The OP has my sympathies.
mackenir
+2  A: 

Unfortunately if they're skeptical then it's unlikely you can prove it to them in a quantitative way alone. Even if you came up with numbers, they'll probably question the methodology. I suggest you see if they're willing to watch a 10 minute demo (maybe call it a presentation), and show them the experience of switching between VS instances (while explaining why you'd need to switch and how often), show them the build process (again explaining why you'd need to create a build and how often), etc.

jwanagel
That mightn't be a bad idea, because I could just see them questioning the methodology... if they could see it first hand then they might get a better picture...
vdh_ant
Any enjoying work doesn't seem to be a priority for them, either. I freak out when I constantly have to wait for the damn thing to swap in one of the apps that I keep open all the time (jEdit, Notepad++, 2 SQL tools, mail, Eclipse, time tracker, browser with two dozen tabs, a couple of CMD prompts).
Aaron Digulla
+1  A: 

Ask them if you're allowed to bring your own hardware. If you're really convinced it would make you more productive, upgrade it yourself and when you start producing more ask for a raise or to be reimbursed.

Short of that though..

I have to ask: what else are you running? I'm not really that familiar with that stack, but it really shouldn't be that taxing. Are they forcing you to run some kind of system-slowing monitoring or antivirus app?

You'd probably have better luck convincing them to let you change that than getting them to roll out new updates.

If you really must convince them, your best bet is to benchmark your machine as accurately as you can and price out exactly what you need upgraded. Its a lot easier to get them to agree to an exact (and low) dollar amount than some open-ended upgrade

semi
I have serriously thought about bringing in my own machine... It costs virtually nothing (well not quite - but for my own sanity). They are running Symantec Endpoint Protection, Altiris and a couple of other things... I think part of the problem is that the projects are largish and have multiple running parts (i.e. web front end, service backend, etc)...
vdh_ant
Consider temporarily turning off the antivirus products, and see if the problem goes away.
Robert Harvey
A: 

Take a task you do regularly that would be improved with faster hardware - ex: running the test suite, running a build, booting and shutting down a virtual machine - and measure the time it takes with current hardware and with better hardware.
Then compute the monthly, or yearly cost: how many times per month x time gained x hourly salary, and see if this is enough to make a case.
For instance, suppose you made $10,000/month, and gained 5 minutes a day with a better machine, the loss to your company per month would be around (5/60 hours lost a day) x 20 work days/month x $10,000 / 8 hours/day = $105 / month. Or about $1200/year lost because of the machine (assuming I didn't mess up the math...). Now before talking to your manager, think about whether this number is significant.
Now this is assuming that 1) you can measure the improvement, even though you don't have a better machine, and 2) while you are "wasting" your 5 minutes a day, you are not doing anything productive, which is not obvious.
For me, the cost of a slow machine is more psychological, but it's hard to quantify - after a few days of having to wait for things to happen on the PC, I begin to get cranky, which is both bad for my focus, and my co-workers!

Mathias
You could be right about the psychological cost... I hadn't thought of it that way... But as you say when you have people like mine that you need to convince, bring that to them it really hard. As I said the, its all little things like this that continually break continuity and add up but I just don't know how I can bring that to them when they say they want hard data... They would say well you shouldn't break your concentration while waiting for a build to occur... What I typically do is move to a different task and then back, but there is time lost in going back and forward...
vdh_ant
+1  A: 

The main cost from slow developer machines comes from the slow builds and the 'context switching', ie the time that it takes you to switch between the tasks required of you:

  • Firing up the second instance of VS and waiting for it to load and build
  • Checking out or updating a source tree
  • Starting up another instance of VS or checking out a clean source tree to 'have a quick look at' some bug that's been assigned
  • Multiple build/debug cycles to fix difficult bugs
  • The mental overhead in switching between different tasks, which shouldn't be underestimated

I made a case a while ago for new hardware after doing a breakdown of the amount of time that was wasted waiting for the machine to catch up. In a typical day we might need to do 2 or 3 full builds at half an hour each. The link time was around 3 minutes, and in a build/debug cycle you might do that 40 times a day. So that's 3.5 hours a day waiting for the machine. The bulk of that is in small 2 or 3 minute pockets which isn't long enough for you to context switch and do something else. It's long enough to check your mail, check stackoverflow, blow your nose and that's about it. So there's nothing else productive you can do with that time.

If you can show that a new machine will build the full project in 15 minutes and link in 1 minute then that's theoretically given you an extra 2 hours of productivity a day (or more realistically, the potential for more build cycles).

So I would get some objective timings that show how long it takes for different parts of your work cycle, then try to do comparative timings on machines with 4GB of RAM, a second drive (eg something fast like a WD Raptor), an SSD, whatever, to come up with some hard figures to support your case.

EDIT: I forgot to mention: present this as your current hardware is making you lose productivity, and put a cost on the amount of time lost by multiplying it by a typical developer hourly rate. On this basis I was able to show that a new PC would pay for itself in about month.

the_mandrill
+1  A: 
Aaron Digulla
+5  A: 

Actually, the main cost for your boss is not the lost productivity. It is that his developers don't enjoy their working conditions. This leads to:

  • loss of motivation and productivity
  • more stress causing illness
  • external opportunities causing developers to go away
mouviciel
Which in money is worth about... hmm.... 0$
Faruz
It's worth something. Just because it's not quantifiable doesn't mean that you should ignore it.
Robert Harvey
@Faruz: Loss of productivity is worth about 0$? You must think very little of your productivity...
nikie
A: 

It’s easy; hardware is cheap, developers are expensive. Throwing reasonable amounts of money at the machinery should be an absolute no brainer and if your management doesn’t understand that and won’t be guided by your professional opinion then you might be in the wrong job.

As for your machine, throw some more RAM at it and use a fast disk (have a look at how intensive VS is on disk IO using the resource monitor – it’s very hungry). Lots of people going towards 10,000 RPM or even SSD these days and they make a big difference to your productivity.

Try this; take the price of the hardware you need (say fast disk and more RAM), split it across a six month period (a reasonable time period in which to recoup the investment) and see what it’s worth in “developer time” each day. You’ll probably find it only needs to return you a few minutes a day to pay for itself. Once again, if your management can’t understand or support this then question if you’re in the right place.

Troy Hunt