News for hackers. Stuff that matters.
Re:Why doesn't every company buy developers the best hardware? by cletus on Tuesday July 19, 2011 @08:47AM (#2780602)
Good questions to ask when being interviewed:

- What is your standard developer hardware configuration?

- How often is it refreshed?

You get bad answers to those questions and it's a definite warning sign (IMHO).

If you're working for a cash-strapped startup (possibly bootstrapped), you may want to negotiate a deal whereby you supply your own hardware (in exchange for higher salary and/or stock/option grants) if they're only in a position to provide substandard hardware.

One side note: what constitutes good hardware depends on what you're doing. If all you're doing is writing PHP/Python/Ruby in vim/emacs and running a local Apache/nginx and possibly a MySQL server then it almost doesn't matter what hardware you have... apart from the monitor.

But if you're compiling huge C++ (or even Java) projects then you probably want good I/O (possibly an SSD, preferably in RAID1 config for redundancy), lots of RAM and a good CPU.

As one data point: I have a 6 core machine with 12GB of RAM and 2 24" monitors (some opt for 1 30") plus a Macbook Pro 15" with SSD. You can refresh your hardware every 18 months if you want to (but most don't unless they have a pressing need; I know some people with 4-5 year old workstations because those are fine for what they do).

Re:Why doesn't every company buy developers the best hardware? by cosgroveb on Tuesday July 19, 2011 @10:46AM (#2781119)
>If all you're doing is writing PHP/Python/Ruby in vim/emacs and running a local Apache/nginx and possibly a MySQL server then it almost doesn't matter what hardware you have... apart from the monitor.

OK. If you're developing on a local instance of Apache/nginx sure. But as a professional web developer I usually have a fully virtualized dev environment running. That means, at least one of our app servers, our database server, and possibly a Windows VM (for testing in IE - usually I can save this for when I'm in the office and have all this stuff running on another machine).

Re:Why doesn't every company buy developers the best hardware? by regularfry on Tuesday July 19, 2011 @06:02PM (#2783317)
Yep, this is true. At the very least I've got to be able to knock up an instance of the server OS version quickly without interfering with the rest of my desktop config.
Re:Why doesn't every company buy developers the best hardware? by praptak on Tuesday July 19, 2011 @09:18AM (#2780710)
"But if you're compiling huge C++ (or even Java) projects then you probably want good I/O (possibly an SSD, preferably in RAID1 config for redundancy), lots of RAM and a good CPU."

For huge builds it makes sense to go with a compile farm. Working on a god box that sits idle 99% of the time is a bit wasteful.

Re:Why doesn't every company buy developers the best hardware? by rch on Tuesday July 19, 2011 @09:38AM (#2780814)
Quick aside: does ESXi still impose too much overhead to move a compile farm onto VMs?

A friend of mine tested it 3 years ago and it was something like 300% slower (no idea about the disk config, but he's a smart guy). It would have been worth it at anything under about a %50 hit...

Re:Why doesn't every company buy developers the best hardware? by Spyplane on Tuesday July 19, 2011 @12:21PM (#2781575)
We tested it at my last job maybe 5 months ago and it was a complete failure. Granted we didn't spend a lot of cycles on it, but we saw how slow it was and went back to native hardware pretty quick.
Re:Why doesn't every company buy developers the best hardware? by absconditus on Tuesday July 19, 2011 @01:34PM (#2782035)
What exactly would be gained by using VMs, assuming that there were no performance problem?
Re:Why doesn't every company buy developers the best hardware? by tedunangst on Tuesday July 19, 2011 @06:30PM (#2783426)
The boss gets to put "lead the conversion to a virtualized environment" on his resume. True story.
Re:Why doesn't every company buy developers the best hardware? by Joeri on Tuesday July 19, 2011 @04:56PM (#2783036)
Two reasons: - Easy migration between hardware configurations of a running system. - Snapshots to revert quicker after a failed upgrade / change. (Typically in addition to traditional backups.)
Re:Why doesn't every company buy developers the best hardware? by rch on Wednesday July 20, 2011 @08:48AM (#2785221)
My case was for a heterogeneous build environment, where separate environments needed to be maintained for different developer groups.

It would have been a good fit for VMs.. except for the performance.

Re:Why doesn't every company buy developers the best hardware? by miahi on Tuesday July 19, 2011 @01:27PM (#2781983)
For local compiles with good I/O I use RAM drives, hosting most of the project, the IDE and the compiler/jvm on RAM drives. The files are backed up on a git repository on the hard drive, so I don't have to worry about data loss if the RAM drive has problems.

If you have to use a laptop, throw away the useless DVD drive and change it with a second HDD/SSD.

Many of the better laptops can also have a second mini-PCIE slot for an internal 3G modem. Install a modem there. This will help you a lot: 1) Internet access everywhere, 2) you don't have to worry about signal (the internal antenna is bigger and better) 3) you don't have to worry about crappy USB modems and their crappy drivers.

Re:Why doesn't every company buy developers the best hardware? by nickolai on Tuesday July 19, 2011 @12:06PM (#2781499)
Regarding compiled languages, I wouldnt really mind a poor man's workstation setup as long as

* The compilation is done remotely on a beefy server with no CPU/Disk IO/Disk space issues.

* I get several monitors. they don't even have to be big - 17 inch is fine - as long as there are at least two.

* The dev box is able to handle its software responsively. I souldn't have to reboot it. Ever. Hell any dual core with 2GB of ram, a linux distro + emacs would do.

Currenlty my 600 euro i7 box at home would probably put my work box and the team's remote compilation VM to shame. Both. At the same time...

Interestingly, from reading the comments i feel that startups are actullay more inclued to supply devs with good hardware than established players. I was expecting quite the opposite.

Re:Why doesn't every company buy developers the best hardware? by rbanffy on Tuesday July 19, 2011 @05:57PM (#2783296)
> i feel that startups are actullay more inclued to supply devs with good hardware than established players.

On most startups, the CEO's desk is, at most, a couple dozen steps away from the devs. It's the bean-counting professional managers that are brought in after that stage that make the developers miserable.

Re:Why doesn't every company buy developers the best hardware? by ma2rten on Tuesday July 19, 2011 @01:43PM (#2782089)
The reason why startups are more inclued to do so, is that extra hardware cost almost nothing, compared to salaries. The only reason not to is bureaucracy.
Re:Why doesn't every company buy developers the best hardware? by baconner on Tuesday July 19, 2011 @04:45PM (#2782995)
I suspect the reason is at startup the person making the final decision on hardware actually has to use it and is intimately familiar with what's being done on it. At a big org with say 1000 developer's that's not the case and at 1kish savings per machine there's a big "look what I saved us" opportunity for that decision maker.
Re:Why doesn't every company buy developers the best hardware? by hkmurakami on Tuesday July 19, 2011 @05:13PM (#2783096)
I know a place that gave new employees (even coders) machines with 256mb ram... I shuddered in horror.
Re:Why doesn't every company buy developers the best hardware? by masklinn on Tuesday July 19, 2011 @08:58AM (#2780648)
> possibly an SSD, preferably in RAID1 config for redundancy

Since the code should be in a source control system, I don't see the point of this. RAID5 (increased redundancy and throughput) maybe, but even then you're increasing the chances of failure (the RAID hardware itself can fail) and you're not gaining much (if any) in the way of IOPS, which will be your biggest issue.

Re:Why doesn't every company buy developers the best hardware? by cletus on Tuesday July 19, 2011 @09:10AM (#2780679)
It's not about source code backup. It's about a developer not losing half a day when an SSD dies. With RAID1, at least in theory, when one dies you should be able to replace it and keep going.
Re:Why doesn't every company buy developers the best hardware? by mahyarm on Tuesday July 19, 2011 @04:02PM (#2782806)
Thats what time machine with a relatively slow external firewire HDD is for. It would only lag by an hour at most.
Re:Why doesn't every company buy developers the best hardware? by jrockway on Tuesday July 19, 2011 @07:07PM (#2783521)
Are you serious? The goal of RAID is to eliminate downtime; a drive fails and you pop in a new one. All without ever having to reboot or even stop working.

With Time Machine, you still have to manually rebuild your system after your drive fails. This is not what Time Machine is for; it's for, "oops, I shouldn't have deleted that file". (Which, incidentally, RAID is not for.)

Re:Why doesn't every company buy developers the best hardware? by r00fus on Tuesday July 19, 2011 @08:29PM (#2783740)
RAID + SSD = no TRIM (cept for recent Intel drives). That's a problem. It's easier (and much cheaper) to just have a bootable backup that's updated nightly.

Even a RAID1 failure requires you to have a replacement (ie, trip to Fry's). A bootable backup, however slow, is just there.

Re:Why doesn't every company buy developers the best hardware? by jrockway on Tuesday July 19, 2011 @09:39PM (#2783930)
Pretty sure this is not the case for Linux. LVM supports discard, so md probably does as well.

Also, you don't immediately need a replacement drive: RAID1 boots fine with only one device. Assuming your company policy is to have RAID1'd SSDs for all developers, you're probably going to have extras on the shelf anyway.

Time machine is for accidental data loss. RAID is for disk failures.

Re:Why doesn't every company buy developers the best hardware? by r00fus on Tuesday July 19, 2011 @08:09PM (#2783689)
Exactly.

A nightly differential bootable system image backup a la SuperDuper, Macrium Reflect, Acronis or the like + cheap external 3TB drive = zero downtime... if the SSD fails, boot from external, and schlep it while the SSD is repaired/replaced.

Time Machine is bonus for lost/overwritten local files. Source Control guards the jewels (you don't fear committing untested code to local branch, do you?)

Re:Why doesn't every company buy developers the best hardware? by rcfox on Tuesday July 19, 2011 @09:30AM (#2780776)
Going half a day without committing code is missing the point of version control.
Re:Why doesn't every company buy developers the best hardware? by jm4 on Tuesday July 19, 2011 @09:52AM (#2780877)
I think a lot of people would disagree with that statement. If you are committing that frequently then there are probably instances where you are checking in half written code that does not even compile. If you are using DVCS chances are your commits are still only stored on your local machine and just as susceptible to loss. If you are using something centralized or pushing your changes you are potentially going to disrupt the rest of the team unless you are working on a private branch. In that case, it seems as if version control is being used as a backup system where a substantial number of revisions cannot even be built. I think that is poor use of version control. It becomes difficult (at least for me) to analyze past changes (maybe months after the fact) when some of the versions are half-baked ideas that I committed for safety before going out to lunch.

I think there are two requirements here: 1) redundancy of work in progress and 2) change control management. I want my work in progress to be relatively safe from failures, I want it to be automatic and I want to be able to choose which changes are worthy of their own revision number in version control. Personally, when committing work in progress I want my revisions to represent a logical stopping point and not necessarily dictated by how much time has elapsed since the last commit.

Re:Why doesn't every company buy developers the best hardware? by there on Tuesday July 19, 2011 @09:39AM (#2780820)
i think the parent meant that the developer would not be able to get any more work done during that day because their machine is without a hard drive, not that the code on the hard drive would be lost.
Re:Why doesn't every company buy developers the best hardware? by ErrantX on Tuesday July 19, 2011 @09:43AM (#2780847)
The better solution here is to have a couple of "gold disks" of a default developer machine; with all the required programs etc.

That way if you go down you can just swap the drive out and be on your way again.

This is what we do (and we have a lot of hard drive churn due to heavy use) and it works well.

Re:Why doesn't every company buy developers the best hardware? by protomyth on Tuesday July 19, 2011 @11:40AM (#2781373)
I think I would rather have the RAID so I don't have to take as much time. Setting up the personal info stuff on a machine takes time too.

For Linux / Windows folks, SuperMicro has a nice tower that has 4 hot swap hard drive bays that I really like.

Re:Why doesn't every company buy developers the best hardware? by ErrantX on Tuesday July 19, 2011 @11:43AM (#2781389)
Things like Chrome and Dropbox have made this less of a chore.

Speaking only for myself... I have a gold disk plus a little script that syncs scripts and configs to backups. And I use Chrome logged into my Google account.

I do see your point, but a lot of it can be mitigated.

Re:Why doesn't every company buy developers the best hardware? by SoftwareMaven on Tuesday July 19, 2011 @12:08PM (#2781504)
Between BitBucket and Dropbox, it takes me no time at all (well, a little time to sync Dropbox, but I'm busy in those times).
Re:Why doesn't every company buy developers the best hardware? by harisenbon on Tuesday July 19, 2011 @09:24PM (#2783885)
This recently happened with our main content server. I had been bugging my boss for almost 3 years to do backups of the system data as well as the content data, but his logic was that since the system was RAIDed, even if we had a loss of data, the RAID would allow us to swap in new drives.

Well, our air-conditioner went out for 3 days in the middle of a Japanese summer, and the RAID controller itself shorted out, taking the drives with it. My boss still doesn't understand how we lost our data, because "RAID was supposed to protect our data."