Setups/systems for programmers

Henri108

Limp Gawd
Joined
Dec 6, 2013
Messages
465
What are your favorite setups for programming?
What screen configuration and how much power do you like to have?

We have 6-8 programmers comming within 2 months and I only have experience with systems for photo/video/advertisement/...

All help will be highly appreciated!
 
I would personally advise going for nice, thin laptops. The ability to move around and/or take your work with you is just too valuable. If your developers have good laptops, developers will seek each other out and pair on larger/cross domain problems to work more effectively, and they might even put in some extra hours outside of work if they have all of their work right in front of them on a laptop. If you give them cubicles and desktops, expect a far less collaborative team.

Additionally, I've always liked having a second monitor and a mouse and keyboard I can hook into. If each developer will have their own desk, I'd recommend getting a second monitor, mouse and keyboard that they can hook into when they're not on their way to a meeting or pairing with another developer away from their desk. If you have an open, collaborative workspace rather than personal desks or cubicles, just set 5-6 'spots' that have an additional monitor and keyboard. Developers will use these locations as 'pairing stations' when they need to collaborate, or as 'power zones' individually when they're not pairing.

People like to talk big about power, but as far as that goes, I don't think you really need too much, especially if the developers aren't doing CUDA/HPC or running big, complicated enterprise systems locally. If they're not going to need to run 3 local databases, 4 application servers and a message queue on their local machine, they aren't going to really need that high end of a system. A good, fast SSD and plenty of RAM is the most important thing you can give your developers. Most quad core CPUs will be fine, and if they're claiming they need high end video cards, its probably because they're trying to run games on their lunch break. A MacBook Pro or Dell XPS with 8 gigs of RAM should be fine, especially if developers have access to a second screen.


I would also figure out what kind of development they're going to be doing. If they're doing web application development, you should probably get them a WebStorm/IntelliJ/PyCharm license. If they're doing .NET/C#/ASP.NET development, you're going to want to make sure they have a copy of Visual Studio.
 
Last edited:
Thanks for the suggestions!
Good recommendation on the team work. We never had more than 1 permanent programmer. The day after tomorrow the first interview will be made, I'll also ask their preference.
XPS 13 looks good (I have the XPS 15 and it's a little to expensive to buy 6 pieces).
External 24, 27 or 34 UW? If 24/27 should I go with a 4K variant?
 
Don't get i3's...all our i3's are terrible at Visual Studio for some reason.
SSDs as primary drive are awesome.
We use Dell Precisions(i7, 8GB) with 2nd mechanical in DVD slot caddy for additional storage.
The key feature though is the Precisions have DP, VGA and HDMI out to drive as many external monitors as you can get your hands on. nVidia GPU option recommeded as the AMD options seem to top out at 3 displays total and one *must* be native DP(this situation may have changed in the last year though).

Precisions aren't cheap but a good machine is an investment.

If you are only going to have a single external montor, I find 27" 1440p is the sweet spot and plays nicely when you add other, lower res monitors whereas mixing a 4K with lower res causes weird scaling issues when you start dragging windows between monitors.

Oh, and a decent chair. I'm not talking about an aeron or something like that(never sat in one), but one that doesn't feel like sitting on a bare plank after an hour.
i0Dkyhph.jpg
 
Last edited:
Dell Precision M4800 or M6800 (15 & 17" screens)

I use 3 1080p monitors and would like to have more.

For compiling large programs, you want the fastest CPU and RAM the system will take.

16GB minimum.
 
What are your favorite setups for programming?
What screen configuration and how much power do you like to have?

We have 6-8 programmers comming within 2 months and I only have experience with systems for photo/video/advertisement/...

All help will be highly appreciated!

Don't cheap out and buy $400 machines, your developers will definitely notice and talk shit about it. 6-8 developers cost quite a bit of money, buying good machines for them is not a lot money and will make your devs happy.

Desktop or laptop development depends on the culture of the company. My last company, no one worked from home, worked non-office hours, or was on call. We only had desktop computers which were great for price for the power and ergonomics. My current company we have desktop machines and laptops with docking stations.

Things I would look for:

1. Lots of screen real-estate. Two monitors at least. If you can swing it, it is awesome having a 2560x1600 30" display, otherwise at least 2 monitors 1080p. (I had 3 monitors, but traded 2 for a 2560x1600 display which was great for an IDE with a lot of toolbars while still having enough coding space. The second monitor was used for documentation, googling, etc.)

2. A healthy amount of RAM. Just our IDEs and development tools typically take up quite a few gigs of RAM. If we are running environments on it such as webservers or databases for development it will eat even more. RAM comes pretty cheap nowadays.. 16 gb would be pretty easy.

3. SSD. I wouldn't build a computer without one anymore.

4. Decent processor

Extras:

5. Mechanical keyboard (e.g. cherry mx brown keys)
6. A decent mouse. I like the Logitech Corded Mouse (M500), it's only $22.99 so hardly expensive. Has "hyper scrolling" you can turn off the clicky middle scroll and spin the wheel to fly through documents.

Although, you know what would be really cool. Just call them and ask them. That would make a very good impression
 
depending what they're doing.

Lots for screen space. for pretty much anything

for coding
27"+ 1440p monitor(s)
One 32"+4k Monitor
or a hand full of 24"1080p.Monitors

Lots of screen space and text should be eaisly readable.

If there is going to be much compiling done a higher end cpu (doesn't need to be xeon) and fair amount of ram 16GB should be more than enough.

Laptops are nice if you can afford it, just get the docking stations so you can add more monitors. External Keyboard and mice they can leave at the orifice.

probably desk/chair space is most important though. the more comfortable someone is the better.
 
Don't get i3's...all our i3's are terrible at Visual Studio for some reason.
SSDs as primary drive are awesome.
We use Dell Precisions(i7, 8GB) with 2nd mechanical in DVD slot caddy for additional storage.
The key feature though is the Precisions have DP, VGA and HDMI out to drive as many external monitors as you can get your hands on. nVidia GPU option recommeded as the AMD options seem to top out at 3 displays total and one *must* be native DP(this situation may have changed in the last year though).

Precisions aren't cheap but a good machine is an investment.

If you are only going to have a single external montor, I find 27" 1440p is the sweet spot and plays nicely when you add other, lower res monitors whereas mixing a 4K with lower res causes weird scaling issues when you start dragging windows between monitors.

Oh, and a decent chair. I'm not talking about an aeron or something like that(never sat in one), but one that doesn't feel like sitting on a bare plank after an hour.

If going with workstations, I will go for the i7 4790K. We have been running Xeon Dell Precision for years for everything visual. Most have 16GB of ram and Raid 0 Velociraptors (upgraded them all to 850 EVO’s 1 month ago). These machines are 5 years old, but still go through hi res files like todays mid-range workstations.
For the monitor I was thinking of the new Dell 27” 4K display, they are 500€ and have great reviews. But some say the 34” Ultrawide is a lot better. I might also look into 2x 1440p 27”.

We have had 1000€+ Herman Miller Aeron chairs for everyone since 10 years ago, best chairs ever and one of the best investments we ever did imo.
Dell Precision M4800 or M6800 (15 & 17" screens)

I use 3 1080p monitors and would like to have more.

For compiling large programs, you want the fastest CPU and RAM the system will take.

16GB minimum.
I am a bit reluctant towards laptops as I have experienced before that people will also use their laptop at home for personal use. It’s important to draw the line between work and play imo. Also their kids/girlfriend will use it and they will break A LOT sooner. (we had 3 people with their own laptop, after 2 years the first one broke and 2 others looked like they made through a war; whilst mine was used to travel more than 1.000.000km around the world and used more than 12 hours a day and it still looked like it just came out of the box)
If I ask the programmers what they would like most I think 90% will say laptop because they can take it home, but I don’t know if they will be more productive using laptops.
Don't cheap out and buy $400 machines, your developers will definitely notice and talk shit about it. 6-8 developers cost quite a bit of money, buying good machines for them is not a lot money and will make your devs happy.

Desktop or laptop development depends on the culture of the company. My last company, no one worked from home, worked non-office hours, or was on call. We only had desktop computers which were great for price for the power and ergonomics. My current company we have desktop machines and laptops with docking stations.

Things I would look for:

1. Lots of screen real-estate. Two monitors at least. If you can swing it, it is awesome having a 2560x1600 30" display, otherwise at least 2 monitors 1080p. (I had 3 monitors, but traded 2 for a 2560x1600 display which was great for an IDE with a lot of toolbars while still having enough coding space. The second monitor was used for documentation, googling, etc.)

2. A healthy amount of RAM. Just our IDEs and development tools typically take up quite a few gigs of RAM. If we are running environments on it such as webservers or databases for development it will eat even more. RAM comes pretty cheap nowadays.. 16 gb would be pretty easy.

3. SSD. I wouldn't build a computer without one anymore.

4. Decent processor

Extras:

5. Mechanical keyboard (e.g. cherry mx brown keys)
6. A decent mouse. I like the Logitech Corded Mouse (M500), it's only $22.99 so hardly expensive. Has "hyper scrolling" you can turn off the clicky middle scroll and spin the wheel to fly through documents.

Although, you know what would be really cool. Just call them and ask them. That would make a very good impression
1) I also found this is very important, see above what I am thinking about.
2) 16GB was what I was thinking about. Best Price/performance imo.
3) Me neither; I even put SSD’s in Pentium builds.
4) Will be i7 if I go with desktops.
5) Also thought about that, I got a Ducky Shine with Brown keys a few months ago and LOVE it, but these prices are hard to swallow and I don’t know if I can even make up for the added cost even after many years (I only type 3 words/minute faster with my mechanical compared to my laptop).
6) 3 years ago I bought M500’s for everyone. It’s also my personal mouse. Before this we used the legendary Microsoft mouses.
Like I said above: If I ask the programmers what they would like most I think 90% will say laptop because they can take it home, but I don’t know if they will be more productive using laptops.

Thanks a lot for the help everyone, looks like we are all thinking very alike!
More idea's are always appreciated.
 
I think devs universally like screen real estate. Some prefer a single large monitor; some prefer multiple smaller monitors. At home, I use two 30-inch Dell LCD panels. At work, I have two 24-inch panels and my MacBook Pro display. Some guys have been getting cheap ($400!) 4K screens, and they're quite impressive. (The Seiki SE39UY04 is a current favorite.)

Some devs like laptops for the potability reasons described. The nature of the work I do doesn't quite fit on a laptop; I end up running two or three VMs for the servers I need on the laptop, and then run my client software. By that point, I've maxed out the machine and I've got no memory left -- I end up thrashing.

Depending on the work they're doing, and the availability of (and need for) servers to support that work, a laptop might not cut it. Or, it might be preferred.

A fast network connection is a must.

Of the developers I know, the vast majority enjoy an "open" work environment. It's just too noisy to concentrate: getting some complex debugging scenario set up only to have someone start a conversation, or some jerk have a loud phone call, or get called towards an impromptu-meeting ... it's just a pain in the ass. Other people don't mind so much.

If you buy some stuff and give it to the team and expect them to use it, you're going to meet with complaints. If you have a budget and some options, and offer choice and flexibility, then you're going to have a happy and productive team.
 
As an Amazon Associate, HardForum may earn from qualifying purchases.
I use 8 screens at home and it helps a ton being able to just have things open on other screens for reference.

A more reasonable setup for a workplace would be 3 1080p screens with a docking station and laptop that can handle them. (a lot of laptops can only do 2 screens). A decent sized SSD is also a must.

You would probably be looking at about $200 for each monitor and about $1500 for the laptop.

A laptop helps a ton. Being able to take your computer to meetings and being able to work from home is huge.
 
What sort of programming are they doing?

But Generally...
i5's minimum, i7's are better, some may even need more than that.

I'd go for 2x 27" 1440p displays, screen size over resolution, but I wouldn't go any lower than that resolution these days. The Ultrawide monitor lack vertical pixels.

Laptops are good if people are travelling or moving about (plus most can drive two external monitors), 15.6" is better than 14" unless you're on a plane. Full HD minimum.

Glad others chimed in about the importance of a decent (gaming) mouse. The extra buttons are really helpful for jumping around the IDE.
 
I think devs universally like screen real estate. Some prefer a single large monitor; some prefer multiple smaller monitors. At home, I use two 30-inch Dell LCD panels. At work, I have two 24-inch panels and my MacBook Pro display. Some guys have been getting cheap ($400!) 4K screens, and they're quite impressive. (The Seiki SE39UY04 is a current favorite.)

Some devs like laptops for the potability reasons described. The nature of the work I do doesn't quite fit on a laptop; I end up running two or three VMs for the servers I need on the laptop, and then run my client software. By that point, I've maxed out the machine and I've got no memory left -- I end up thrashing.

Depending on the work they're doing, and the availability of (and need for) servers to support that work, a laptop might not cut it. Or, it might be preferred.

A fast network connection is a must.

Of the developers I know, the vast majority enjoy an "open" work environment. It's just too noisy to concentrate: getting some complex debugging scenario set up only to have someone start a conversation, or some jerk have a loud phone call, or get called towards an impromptu-meeting ... it's just a pain in the ass. Other people don't mind so much.

If you buy some stuff and give it to the team and expect them to use it, you're going to meet with complaints. If you have a budget and some options, and offer choice and flexibility, then you're going to have a happy and productive team.
The new Dell 27" 4K is around 600€, which is IPS (better for the eyes in my experience).
I also think a laptop doesn't cut it and is too expensive if you want great performance (my XPS 15 would be great, but is 2500€, a desktop with that price will give even greater performance anyways).
Network connection is about 150MB/s.
We have always used an "open" work enviroment and it works well. Especially if they are all on the same job. I also think they are more motivated if they are together with others copared to being in their own office.
We need everything to be standardised, it has to be fair to everyone and there should be no difference between them to make others jealous.
We have never ever had complaints on any hardware from the last 10 years. Even the normal office pc's use first gen i7 CPU's, have M500 mouses and decent Dell keyboards.
I was going to look for mechanical keyboards for the programmers, but my brown switches are fairly noisy compared to membrane keyboards, which might be annoying in the open-workspace enviroment.
What sort of programming are they doing?

But Generally...
i5's minimum, i7's are better, some may even need more than that.

I'd go for 2x 27" 1440p displays, screen size over resolution, but I wouldn't go any lower than that resolution these days. The Ultrawide monitor lack vertical pixels.

Laptops are good if people are travelling or moving about (plus most can drive two external monitors), 15.6" is better than 14" unless you're on a plane. Full HD minimum.

Glad others chimed in about the importance of a decent (gaming) mouse. The extra buttons are really helpful for jumping around the IDE.
First months they will be rewriting a stock/sales/production/material/locations/shipping/… program that is at least 10 years ahead of anything available today. We want to sell this as a service after our experience with improving this over the last 6 years. Later they will write certain add-ons for specific customers and will maintain and improve on it based on customers suggestions.

A laptop helps a ton. Being able to take your computer to meetings and being able to work from home is huge.

In this situation there won't be any meetings that will be off-site to my knowledge. And if it were to happen, they could run their computers remotely to our main location. We will also have use a Surface Hub like device to communicate with other locations (abroad).
The building they will work in is less than 1 mile/ 2km away from where we all work, so we could go there with a bike/car within minutes.
The Ultrawide has exactly the same pixels vertically as a 1440p display btw.
 
As an Amazon Associate, HardForum may earn from qualifying purchases.
We need everything to be standardised, it has to be fair to everyone and there should be no difference between them to make others jealous.
If everyone is choosing from the same menu, it's fair. Sounds like you're managing a bunch of junior developers.
 
Whatever you do get, make sure it has 8+ GB RAM (maybe 12-16). 4 does not cut it. At work they gave me a laptop with 4GB RAM, an i5, and 768 screen. This thing makes me want to quit working here and go find another job sometimes. As a work station, I can tolerate and use it. But many times it gives me a very strong urge to just slack off. When I'm seeing the "Windows is low on memory, please close something" warning come up constantly, it makes it a little bit hard to get work done. I have to constantly manage what I have open. It gets me in a mood to just get the very minimum I need to stay afloat done. Since you're only giving me mediocre hardware, why should I throw in anything more than mediocre effort in response? I'll do what it takes to get what's needed done and for me to keep my job. But I'm not going any further.

I would personally advise going for nice, thin laptops. The ability to move around and/or take your work with you is just too valuable. If your developers have good laptops, developers will seek each other out and pair on larger/cross domain problems to work more effectively, and they might even put in some extra hours outside of work if they have all of their work right in front of them on a laptop. If you give them cubicles and desktops, expect a far less collaborative team.

That's just false. It's only true if your company doesn't have good remote collaboration tools in place. At my company we have something that allows screen sharing, messaging, and voice chat all at the same time. This much is perfectly sufficient for remote collaboration with code. You don't need much else. No, the in-person presence doesn't really do much when programming. The only place I take my laptop is home, for when I telecommute. And this is a legacy collaboration tool. I am sure that by now there are much better things in existence.

Still, laptops are totally fine, you don't need a desktop. Having the ability to transport your workstation is better than not having it, basically, I'd use something like this as a baseline:
http://dellrefurbished.com/product/...l-precision-m4600-8gb-ram-320gb-hdd/si6721929
I bought this on a Memorial Day sale for about 400 bucks. If this was my workstation, I would be very happy with it (but it isn't because I'm required to use that work laptop). 1080p screen, 8 gigs of ram, plenty of slots for more monitors. The only thing to throw in would be an SSD. SSD's make for faster database testing and opening up some necessary files and programs. The GPU isn't really needed, but whatever.
 
If everyone is choosing from the same menu, it's fair. Sounds like you're managing a bunch of junior developers.
We just spoke to a really smart and tallented guy that has been doing conveyer belt work for the last 8 years and just graduated as a programmer. I'm sure he will be one of the best programmers of the bunch. He's 31.
The other main programmer which develloped our program is 45 I think and 25 years of programming experience. So not really a junior team.
Giving them all different hardware will just seperate the team imo.
Whatever you do get, make sure it has 8+ GB RAM (maybe 12-16). 4 does not cut it. At work they gave me a laptop with 4GB RAM, an i5, and 768 screen. This thing makes me want to quit working here and go find another job sometimes. As a work station, I can tolerate and use it. But many times it gives me a very strong urge to just slack off. When I'm seeing the "Windows is low on memory, please close something" warning come up constantly, it makes it a little bit hard to get work done. I have to constantly manage what I have open. It gets me in a mood to just get the very minimum I need to stay afloat done. Since you're only giving me mediocre hardware, why should I throw in anything more than mediocre effort in response? I'll do what it takes to get what's needed done and for me to keep my job. But I'm not going any further.



That's just false. It's only true if your company doesn't have good remote collaboration tools in place. At my company we have something that allows screen sharing, messaging, and voice chat all at the same time. This much is perfectly sufficient for remote collaboration with code. You don't need much else. No, the in-person presence doesn't really do much when programming. The only place I take my laptop is home, for when I telecommute. And this is a legacy collaboration tool. I am sure that by now there are much better things in existence.
We have never bought sub 1000€/$ systems for anyone ever, so they will have at least an i5/i7 with 16GB of ram and an SSD. And they will have plenty of server horsepower to do whatever they need to.
Why don't you just show them you cannot work like this?
The only place I take my laptop is home
That's my biggest problem with laptops, they won't need to telecommute and they would only use it for personal stuff if they have the high-end laptops they need. It's also A LOT more expensive to have the same power in a laptop as in a desktop and most of the time even impossible.
 
when I was doing lots of coding this was my all time favourite setup 20+30+20 monitors

DSC01030Custom.jpg


Funny enough, now that I am doing a bit of web development, I have revived this setup and loving it.

Since it is a small team, I would just give them a budget and let them pick. Little things like that, make employees really happy.
 
We just spoke to a really smart and tallented guy that has been doing conveyer belt work for the last 8 years and just graduated as a programmer. I'm sure he will be one of the best programmers of the bunch. He's 31.
The other main programmer which develloped our program is 45 I think and 25 years of programming experience. So not really a junior team.
Giving them all different hardware will just seperate the team imo.
Why do you think that will happen? Why do you think experienced adults would get jealous about the choices made by others when they have their own choices? Why do you believe that giving people the same thing -- even if they don't want it, and think it hurts their productivity -- would make them happier than letting them choose for themselves?

Is it your intention to upgrade everyone all at once? When a new employee starts, you'll buy them a less than current machine to avoid this problem?
 
Last edited:
Why do you think that will happen? Why do you think experienced adults would get jealous about the choices made by others when they have their own choices? Why do you believe that giving people the same thing -- even if they don't want it, and think it hurts their productivity -- would make them happier than letting them choose for themselves?

That is what happened a few times times already:
Last one was with a programmer, he had lot's of experience. One of his demands (next to the 8-core Xeon beast he already got) was a laptop (Dell XPS 15, highest config). He got what he asked for and NEVER used the laptop for work, NEVER. When he left; 4 months later, because he couldn't live with our very free workethic and couldn't stand any form of critique; he gave back his laptop which didn't even have visual studio installed (he got acces to all the licenses and was even send links to download files).
Because of that, now I use an XPS 15 as my daily driver. (before that an XPS 12 and before that a full config MBPr 15)
He didn't use what he chose for the right reasons.
If I had to choose at a job between a high-end laptop and a high-end desktop, I would choose the laptop, because then it will be "mine". I cannot take the desktop home. The ones that wouldn't choose the laptop already have a good laptop/desktop at home. Homo economicus ;).

Also, some guys had been working more than 8 years with us and doing at least 2 hours unpaid overtime a day because they LOVE their jobs and they don't have these extra benefits like a laptop. Whilst this guy gets everything he wants and never did a minute of overtime. I would be jealous, wouldn't you be?
I just specced out 3 systems:
A Dell Precision laptop (M4800, with i7-4910MX 3.9Ghz and K2100M GPU, 16GB ram, with msata SSD) => 2800€
A Dell Precision T7810 (E5-2630 V3 8-core, 32GB of ram, K620 GPU and PCIE SSD)
=> 2750€
If I would want 90% of the performance and a bit less reliability:
Dell XPS 8700 (i7-4790, 16GB ram, 745M GPU and Hybrid drive)
=> 870€
In Multi core CPU tests the difference between the 3 processors is less than 20%:
Passmark
i7: 9751
Xeon: 12895
i7 4790: 10073

Looking at this for a system that stays on-site all the time, which one would you choose? The less expensive, the more budget goes to other stuff, like chairs, larger desks, bigger displays,...
 
Last edited:
Is it your intention to upgrade everyone all at once? When a new employee starts, you'll buy them a less than current machine to avoid this problem?

We always update everyone all at once, after 5 years, our old(er) hardware goes to our other employees abroad (that's why we always buy i7's and such as they are cheaper in the long run). If there is no system available for a new employee, I find them one or I spec one out with them if they are going to do specific jobs.
 
He didn't use what he chose for the right reasons.
What were his reasons?

Whilst this guy gets everything he wants and never did a minute of overtime. I would be jealous, wouldn't you be?
Sure: I'd wonder why management treated him differently. That is, of course, not the plan I'm suggesting here. I'd still like to learn why you think letting developers choose their own hardware is the wrong thing to do, and why forcing them to use a stock configuration is a better plan.
 
What were his reasons?

Sure: I'd wonder why management treated him differently. That is, of course, not the plan I'm suggesting here. I'd still like to learn why you think letting developers choose their own hardware is the wrong thing to do, and why forcing them to use a stock configuration is a better plan.

He just wanted the laptop because it's 2500€ of his own money he wouldn't have to spend.

Everyone is treated the same, they ask what they want for their work (pay/bike/phone/laptop/...). And we come to an agreement for what is reasonable for that specific person with his experience, knowledge level and value to the company.

If the stock configuration is the better than any other company would give them, I don't see the problem. Most companies give 500€ laptops and 500€ desktops with 1080p or lower TN panels. I think most people rather have 1500€+ laptop/desktop (they cannot choose) then to have a 500€ budget and letting them choose themselves.
Having 1 kind of system for everyone makes it a lot simpler for maintenance, drivers, firmware, updates, upgrades,...
 
If the stock configuration is "better" than anyone else would give them, that still doesn't mean it's appropriate for their work style or flow.

It's not just about power/the biggest spec.

The cost of a system, and the minimal IT overhead it takes to manage a few exceptions, is such a tiny fraction of what it costs to employ anyone with any real talent, let alone the cost of the overall project, that it's just not worth not letting the engineers choose their configurations to fit how and where they best work.
 
He just wanted the laptop because it's 2500€ of his own money he wouldn't have to spend.
Sounds like it. Why did management allow that?

Everyone is treated the same, they ask what they want for their work (pay/bike/phone/laptop/...). And we come to an agreement for what is reasonable for that specific person with his experience, knowledge level and value to the company.
If someone has more experience, do they get more memory because they're doing more work? Or do they get less memory, because they know how to work more efficiently? Why wouldn't the system type be driven by job function? Does a senior secretary get more disk space than a junior database developer?
 
Sounds like it. Why did management allow that?

If someone has more experience, do they get more memory because they're doing more work? Or do they get less memory, because they know how to work more efficiently? Why wouldn't the system type be driven by job function? Does a senior secretary get more disk space than a junior database developer?

On his previous job he had a company car and got payed for his commute. He wanted a bit more money then what he got there, but because he lived 5 minutes away, it would be ridiculous to ask for a car, so he asked for a phone and laptop which he would both also use on the job (which he never did).
First you say we have to ask what they want and give that to them and then you say why did we allow them to choose...
Just look at your own coworkers, how many would use a (expensive) laptop they got from work strictly for work?

They will get memory appropriate to the job they are doing. If they say they would like a bit more because they run out of memory, they get more no questions asked.
We never have people complain about the hardware. Most also know that the difference between "good" and "the best" is not worth the price or even time in setting it up.

But I think we are getting a bit off-topic here.
 
First you say we have to ask what they want and give that to them and then you say why did we allow them to choose...
I suggested you let the devs pick from a menu, or buy whatever they want from a budget. I never suggested you buy something special for an employee that other employees couldn't request in order to make up for a compensation problem.

The prior approach works out well, in my experience. The latter approach is symptomatic of bad management and poor HR practice and, indeed, has nothing to do with buying equipment for programmers. Yet you offered this avoidable mistake as a counter example to the fair, flexible suggestion I made to accommodate the different preferences and working habits of developers.

If you have a good manager, they know what's going on. They hand out memory and laptops and screens and other equipment to employees who'd benefit from it. They don't give out jewelry as negotiating chips.
 
At my company, laptops are preferable to desktops, because they are easy to transport to meetings, training, etc. It also makes it easier to relocate teams to new offices.

Our previous owners issued a base laptop model to almost everyone, but I did see some Developers with large ones that had a bigger keyboard. The new owners are going with laptops again, but give a choice of two "free" models. You have a choice of 6 laptop models or 1 tablet for daily work, when it is time to upgrade. One of the choices is more like a Desktop replacement, and is considered a "free" model for Developers. You can pay out of pocket to upgrade to one of the remaining non free choices, which is a higher end model(thinner, lighter, flashier).

Most people in the office plug monitors, keyboard, mouse, and other things into the laptop anyway. Large companies cut deals to get bulk runs of models, because giving everyone whatever they want ends up costing more to the bottom line. The more limited your choices, the easier it is from a Support perspective.
 
Interesting thread. I've managed a team of developers at startups and am one myself. I've also survived trading floors both on and off Wall Street, and there are lessons to take away from both:
  • Chairs are important. These people will be sitting for inhuman stretches of time, and you don't want to cripple them. You don't need to splurge on Aerons like VC-rich startups and banks do, but get something with good lumbar support, not the $80 sale special from Staples.
  • Screens on screens on screens. You need monitors- as many as you can fit. Studies (I'll find them if anyone cares) have shown that there are cognitive benefits to having multiple average-sized screens rather than one large screen. It helps compartmentalize windows and thoughts, and your programmers will have a lot of both. It reduces the friction of cognitive task-switching and enables easy snapping to boundaries with hotkeys. Traders are the biggest multi-monitor whores out there (the standard configuration for quant equity traders is 10-12 monitors, and not all for watching charts), and developers are the second biggest.
  • My practical advice on display hardware is this:
    --21-23" 1080p monitors with a matte finish and a VESA mount. They don't take up much space, which is important. I like the Dell P-series. They have thin bezels, good input options, and are very sharp.
    --Get 4 of them for each worker.
    --Cheap, durable 1x2 monitor stands from Monoprice- http://www.monoprice.com/Product?c_id=109&cp_id=10828&cs_id=1082808&p_id=5561&seq=1&format=2 . Use 2 of these for a 2x2 display setup, 4 for a 2x4, etc. Vertical stacks any higher than 2 monitors gets uncomfortable.
    --Get some good 2D multi-monitor video cards. I've had great luck with the NVS 510, but there's probably no reason the older, much cheaper NVS 450 won't do the trick. NVS 450s are readily available for $80-90, and will drive 4x 1080p monitors very comfortably (unlike some of the AMD FirePro cards I've owned). They won't be playing games at work, and it doesn't sound like they'll need CUDA firepower.
  • See #8 here- http://www.joelonsoftware.com/articles/fog0000000043.html If you can't give them offices, give them good noise-canceling headphones. Task switching is brutal when programming. Also, having them rock out to their Pandora stations or whatever is probably good for productivity and motivation.
  • Feed and caffeinate your programmers. Trick them into thinking that work doesn't feel like work. This is critical.

Now, onto the actual machines. For getting anything serious done, forget laptops. They don't belong in meetings (they're a distraction 90% of the time), and there are better options for working remotely (hello, TeamViewer).

I don't even know how people are saying 16GB of RAM is sufficient. When I was dealing with huge datasets in quant finance, I would max out my rig with 128GB, but now that I do more general web development, 32GB is about enough. Half of programming is research (think: dozens of browser tabs open), virtual machines are often needed, and modern tools are pretty bloated. Add in the chaos of working at a startup, and I'll probably have Photoshop, Illustrator, a few big Excel sheets, and various Word docs and PDF open concurrently. If you want your people to work like "10x engineers," get as many CPU cores as you reasonably can, 32GB+ of RAM, and a good SSD.

If you're willing to build systems yourself, you can save a lot of money by getting engineering sample Xeons from eBay. Just search "Xeon E5 ES" and go from there. Do a little research on Q-codes, maybe ask some of the gurus on the #hardfolding IRC channel, and you'll be golden. I stretched my hardware budget by about $30k when I did this on a few workstations and a 4P server.

Keyboards are pretty personal, but IMHO, if you get everyone expensive, loud, clicky keyboards, they'll all kill themselves (and/or each other) immediately. I say get competent $30 Microsoft or Logitech models, and if they don't like it, they can bring their own.
 
I don't even know how people are saying 16GB of RAM is sufficient.
Because for many scenarios it is more than sufficient.

If our firmware developer asked for 32GB of RAM, we'd probably get it because it's so cheap, but it would be largely unnecessary given that the target architecture has 64KB program memory and 8KB data memory.

If your working set size is in the terabyte+ range, then there is probably a good case for getting more - but as far as blanket suggestions for development systems, I don't think this is a good assumption. Hopefully the OP has some knowledge about what the requirements are.
 
If our firmware developer asked for 32GB of RAM, we'd probably get it because it's so cheap, but it would be largely unnecessary given that the target architecture has 64KB program memory and 8KB data memory.
I'm not sure how you can meaningfully correlate target environment size with workstation size. Can you explain the logic behind the assertion you're making?

Studies (I'll find them if anyone cares) have shown that there are cognitive benefits to having multiple average-sized screens rather than one large screen.
I'd love to see them!
 
I'm not sure how you can meaningfully correlate target environment size with workstation size. Can you explain the logic behind the assertion you're making?

My point was that the target application in general matters. I happened to toss out some memory requirements because I thought it succinctly illustrated the broad range of possible applications. There are a whole host of other factors I did not state that will also impact the desired workstation size - some of these may be correlated with target size.

Nonetheless, I do believe that target size and workstation size are probably correlated, so I will try to make an argument:

A trivial example is that if you are running the software(s) on the development workstation then it must have access to memory exceeding the state space of the target. We would therefore see a correlation generally, except if the scenarios where you aren't running the software on the development workstation are correlated with (proportionately) exactly the opposite coefficient.
 
My point was that the target application in general matters. I happened to toss out some memory requirements because I thought it succinctly illustrated the broad range of possible applications. There are a whole host of other factors I did not state that will also impact the desired workstation size - some of these may be correlated with target size.

Nonetheless, I do believe that target size and workstation size are probably correlated, so I will try to make an argument:

A trivial example is that if you are running the software(s) on the development workstation then it must have access to memory exceeding the state space of the target. We would therefore see a correlation generally, except if the scenarios where you aren't running the software on the development workstation are correlated with (proportionately) exactly the opposite coefficient.

I totally agree with your point, I'm making an (educated?) assumption based on what we know about OP's use case.

I'd love to see them!
Most of the articles I've seen on the topic (citing this one because Bloomberg keyboard = my people: http://www.nytimes.com/2012/02/08/t...-monitors-improve-office-efficiency.html?_r=0 ) cite a University of Utah study (republished here by Ergotron, but not sponsored by them: http://www.ergotron.com/Portals/0/literature/whitePapers/english/Multi-Mon-Report.pdf ).

Meanwhile, I maintain that trading floors are a hugely important example. Investment banks and hedge funds do not screw around when it comes to optimizing productivity. You won't find many huge displays on the floor, but you will find plenty of space-efficient, quality monitors (at least at the two bulge-bracket banks I've worked at).
 
Dell also has some nice visualizations on topic - http://www.dell.com/downloads/globa...al_monitors_boost_productivity_whitepaper.pdf

I've got a passing familiarity (from before I sold out, when I thought I'd get a Ph.D in neuroscience) with eye tracking studies, and smaller screens (though not so small as to be unreadable) allow for faster target acquisition. This is elucidated in Dell's white paper and the studies they reference.
 
Thanks everyone, 3 guys already joined and we gave them some older Dell Workstations with temporarely 2 monitors.

Highly appreciated the studies posted! I read the Dell one and am now reading the 116 pages from Ergotron.

I'll make a summary of this whole topic next month, maybe we can sticky it and make a sheet for other companies!
 
Oops! Sorry -- I thougt I posted before. Thanks for posting those links, Chris!
 
What do you guys think about a 4K TN monitor next to a vertical 24"?
What about 2x 27" (1440p).
Or 3x 23" (1080p)?

I'm currently configuring 4 X99 i7-5820K pc's. The Dell equivalent is 3K, so options are still open.
 
Multiple monitors is usually the most practical option from a price perspective.

In my work environment I have 2x 1680x1050 and at home I have a single 3440x1440 monitor. They are physically about the same size and pixel wise they are similar. But the single big monitor has the advantage of uniform colors and brightness across the whole screen. And I can make windows any size I want.

In particular Virtualbox will not span across physical monitors no matter how big the desktop. So my VM windows is limited to the size of the one monitor. Where as on the big monitor I can make it whatever size I want.

Aside from that, CPU and RAM really depend on what kind of programming you are doing. We do mostly scripting languages in my line of work, so those really do not need a ton of muscle power most of the time.
 
Oops! Sorry -- I thougt I posted before. Thanks for posting those links, Chris!

No problem.

What do you guys think about a 4K TN monitor next to a vertical 24"?
What about 2x 27" (1440p).
Or 3x 23" (1080p)?

I'm currently configuring 4 X99 i7-5820K pc's. The Dell equivalent is 3K, so options are still open.
3x 27" side by side is a lot of head-turning. I even find 3x 24" to be a bit much. After trying out a bunch of setups, when it was time for me to build my 8-display workstation about a year and a half ago (2 rows of 4 displays), I went with 22" Dell P2214H's. Matte screen (which is completely necessary, IMHO), great picture quality and input options, and cheap (I paid $118 each at the time).

As for resolution, I'm sure that this will be controversial but I'd say it shouldn''t matter for a lot of developers. I have one window full of code snapped left, and another snapped right on each display. What do I care whether that display is 1080P or 1440P? This will also help you economize on video cards, where even an NVS 450 (which you can pick up for $60-80 at this point) will drive 4 1080P displays very comfortably.
 
You can fit a lot more code on a higher resolution display.

We won't be able to give everyone 8 displays...
I could even salvage some older GPU's.

Purchase is planned for September 1'st. And I'm leaning towards 3 23" displays or 2 27" displays.
 
6-12 is more of a trading setup. 2-4 is good for dev work. Multi-monitor setups with big (27") screens get awkward and seem to cause more eye fatigue (according to the former employees that I forced those setups on for a while). Part of why I'm saying 3 smaller screens > 2 bigger screens is that the "amount" of code isn't the questions, it's the amount of windows. If I had a 1080p display and a 4K display that were the same size, zoom is ultimately what would ultimately limit me. I can't just show more code on the 4K display and have it be useful.

Meanwhile, without knowing about the software they use, if they're on Windows it's easiest to snap left and snap right with the Windows keys if you have multiple windows. So, 2 windows per display. If you have multiple tab groups per window (say, you're using Visual Studio), packing more than 3 tab groups/screen gets weird.

I have a few PCs that I use for development at this point (mainly on a large web/mobile app, with Visual Studio 2013 and 2015). Typically, I'm set up as follows:

2 display setup:
Left: Visual Studio with 2 vertical tab groups and browser/Android emulator in the background, or one Visual Studio window with 1 tab group snapped right and the browser or emulator snapped left
Right: main Visual Studio window with 2 vertical tab groups

4 display setup:
Top left: browser
Top right: emulator or another browser. Maybe a Visual Studio window.
Bottom left: 2 Visual Studio tab groups in 1 window
Bottom right: main Visual Studio window with 2 vertical tab groups

Proper separation of concerns in an application leads to a crap-ton of files, which makes tab management a bit of a nightmare. I routinely have 50+ (often far, far more) files (JavaScript, C#, CSS, HTML, and miscellaneous XML) open in Visual Studio at once. One of the things that's stopped me from shooting myself is a free Visual Studio extension called Productivity Power Tools, which lets me do things like set up regexes to color code my tabs. Red for JavaScript, green for C#, and so on. I've yet to resort to one of the voice control extensions, but that's probably next.
 
What do you guys think about a 4K TN monitor next to a vertical 24"?
What about 2x 27" (1440p).
Or 3x 23" (1080p)?

I'm currently configuring 4 X99 i7-5820K pc's. The Dell equivalent is 3K, so options are still open.

The 4K monitors at 27" are just too small for me. Unless the monitor is right up in my face I can't read the text. So then I have to increase the display size. And then I'm right back where I was....no net real estate increase. At 27" I am happy with 1920 or 2560. For 4K (reading at 4K), I think you need to be more into the 32-36" size. And then you're only using 1 monitor.

DPI/PPI is still a big concern to me.
 
Back
Top