blog

Developer Hardware - How Much Is Enough?

November 8, 2010 00:43 by Troy

When the time came recently to upgrade the computer hardware for my developer workstation, it got me wondering what the average specifications are of dev workstations "in the field".  Through the use of twitter and linkedin, I reached out to several colleagues to conduct a very informal survey, to see what kind of horsepower they were running these days.  For all the respondents, they are full time employees and are not owners or consultants, so they typically don't make or influence the hardware purchase decision, they merely use daily what they are given.

In general, the results indicated that most were using a machine with specs similar to this:

Core i7 CPU @ ~2.67GHz, 2 Cores, 4 Logical cores, 8GB RAM, 7200 RPM Hard Drive

Upon doing some more research on the topic, I found this blog post on MSDN that discusses the hardware requirements for VS2010.  I also found myself referencing this blog from Jeff Atwood, that discusses a programmers "Bill of Rights" which includes some commentary on workstation hardware.

The basic theme I found in all that I read was, it does not really make sense to buy the bleeding edge, latest technology.  However, it is a very good idea to outfit your devs with the best hardware you can afford.

An argument in favour of this is a review of cost and productivity.

 

Some considerations on developer hardware:

$25/hr x 1 min/hr saved by faster hardware = $0.42 per hour

37 hrs/week * 52 weeks = 1,924 hours / year / developer

1,924 hrs * $0.42 per hour = $808.08 / year / developer

$808.08 * 20 devs = $16,161.60 total cost of lost productivity

So, if a more powerful dev workstation saved each dev only 1 minute of unproductive time per hour, that would result in a return of over $800/yr in increased productivity.

I highly suspect that the 1 min/hour is a conservative estimate.  I also suspect that for most locales, $25/hr for a professional software developer is also conservative.

If you used $40/hr instead, you would save $0.67/hr or $1,289.08 / year / developer.  That would be $25,781.60/yr for a team of 20 devs.

The ROI for fast dev machines seems apparent.

Benchmarks:

Now for the discussion about how much time a developer would actually save by having a faster machine.  I got some inspiration for doing some benchmarks from this blog by Scott Hanselman.  I used his idea of using the NHibernate.Everything.sln and source for benchmarking the machines that I had easy access to and the results of this are shown in Scenario 1.  I then added to the mix some other scenarios that developers in our organization might be likely to do in their day to day work, with our source code.  When using MSBuild.exe I used the /t:rebuild switch as well as the /m switch for parallel builds in B scenarios.

 

    #1 #2 #3 #4  
    Laptop Laptop Desktop Desktop Speed Comparison
Hardware Spec CPU Intel(R) Core(TM) i7 CPU       M 620  @ 2.67GHz, 2667 Mhz Intel(R) Core(TM)2 Duo CPU     P8400  @ 2.26GHz, 2267 Mhz Intel(R) Core(TM)2 Duo CPU     E6750  @ 2.66GHz, 2666 Mhz Intel(R) Core(TM) i7 CPU         920  @ 2.67GHz, 2668 Mhz Machine #1 Faster than Machine #2 by X%
CPU Cores 2 Core(s), 4 Logical Processor(s)  2 Core(s), 2 Logical Processor(s)  2 Core(s), 2 Logical Processor(s) 4 Core(s), 8 Logical Processor(s)  
RAM 4GB RAM 4GB RAM 4GB RAM 6GB RAM  
DRIVE 7200RPM  5400RPM  7200RPM 10,000RPM & 7200RPM  
Scenario 1A Run 1 18.48 25.16 26.76 17.67 36%
Run 2 18.21 25.63 21.71 17.53 41%
Run 3 18.66 25.94 21.7 17.36 39%
Scenario 1B Run 1 17.31 25.89 20.68 15.79 50%
Run 2 17.02 24.04 20.83 15.74 41%
Run 3 17.05 23.3 21.27 15.4 37%
Scenario 2A Run 1 02:09.50 03:04.48 02:45.51 02:19.46 42%
Run 2 02:07.96 03:03.71 02:40.45 02:19.36 44%
Run 3 02:09.40 03:03.94 02:44.04 02:19.18 42%
Scenario 2B Run 1 02:05.90 03:05.99 02:36.93 02:17.30 48%
Run 2 02:08.44 03:05.76 02:42.41 02:17.60 45%
Run 3 02:08.03 03:05.68 02:37.24 02:17.36 45%
Scenario 3 Run 1 04:32.42 06:41.30 04:04.74 02:55.43 47%
Run 2 04:16.23 07:12.21 03:55.35 02:58.62 69%
Run 3 04:22.14 07:04.65 03:45.49 02:56.92 62%
Scenario 4A Run 1 04:07.97 06:03.83 05:22.14 04:32.37 47%
Run 2 04:06.90 06:04.78 05:27.27 04:30.18 48%
Run 3 04:06.63 06:03.47 05:22.65 04:29.41 47%
Scenario 4B Run 1 02:30.94 04:19.15 03:39.78 02:23.07 72%
Run 2 02:30.15 04:14.75 03:31.28 02:23.98 70%
Run 3 02:32.83 04:14.65 03:32.82 02:23.95 67%

Results Comments

Scenario 1

Builds the source code for the open source project Nhibernate.  Parallel builds seems to have a small effect here, as shown in differences between 1A and 1B results.  Machine #1 is on average 41% faster than Machine #2.  For every hour of compile time, an extra 25 minutes would be saved by using the faster machine.

Scenario 2

Builds the database project for a single database.  Parallel builds seems to have a negligible effect here, as shown in a lack of differences between 2A and 2B results.  This makes sense since there is only 1 project to build.  Machine #1 is on average 44% faster than Machine #2.  For every hour of compile time, an extra 26 minutes would be saved by using the faster machine. 

Scenario 3

Deploys the database project from Scenario 2 to SQL Server, actually creating the database.  I do not believe that parallel processing is possible for database project deployments.  Machine #1 is on average 59% faster than Machine #2.  For every hour of time spent deploying databases, an extra 35 minutes would be saved by using the faster machine.   

Scenario 4

Builds the database projects for 5 databases and one shared server database project.  Parallel processing has a significant effect here, as a lack of dependencies between database projects allows a multi-core machine to build the projects concurrently instead of one after the other.  Machine #1 is on average 58% faster than Machine #2 for Scenario 4.  For every hour of time spent building the full database solution, an extra 35 minutes would be saved by using the faster machine.  Considering Scenario 4B only, when leveraging multiple cores and parallelism, Machine #1 is on average 69% faster than Machine #2 for Scenario 4B.  For every hour of time spent building the full database solution, an extra 41 minutes would be saved by using the faster machine.       

Final Thoughts

It seems that providing good quality workstations to your developers can result in increased productivity, that should more than cover the extra cost of acquiring faster hardware.

 



Adventures In Innovation

November 1, 2010 04:34 by Troy

I recently had the opportunity to be an exhibitor at the Adventures In Innovation event held at Trent University in Peterborough on October 29, 2010.

The event was organized by the Workforce Development Board and the objectives of the event were to:

  • educate local Grade 10 students about employment opportunities, educational requirements and "day to day" responsibilities of a variety of careers
  • assist students in making informed career choices

Seeing as how we work in the field of Information Technology and more specifically, Software Development, we provided information about the types of employment positions that are typically found in that sector.

It was interesting to speak with some students who shared the same curious desire to take things apart and figure out how they worked, just as I did when I was their age.  Several students expressed a genuine interest in building software.  While some others, did a good job of faking it, in order to get one of our "spring" pens.  The unique pens proved to be a good draw of traffic.

After a couple of hours, we had succeeded in speaking with several students, and I'd say the event was a success.

Here is a co-worker and I at our exhibitor booth.  Unfortunately, our table had a bit of a sag in the middle which made things look a bit funny, but we persevered.

 



Software Conferences for Microsoft Tech

July 14, 2010 12:41 by Troy

I started thinking about putting a plan together for attending conferences.  I started doing some research about the different conferences that were geared towards the Microsoft Technology stack, or that were of interest to me.

As the information I gathered started to grow, I decided it might warrant a blog post.  Some of the events noted have already passed, as the collection of the information has been a bit of work in progress during spots of free time.

 

Conference Name

Cost Audience Description Duration When Cost per Day Web Location
TechDays $349CDN early-bird, $700CDN Developers Various sessions grouped by 5 tracks, including a local flavours track that highlights local speakers from each major city. 2 days Sept - Dec 2010
(Oct 27-28 Toronto)
$175 EB, $350 www.techdays.ca 8 Canadian cities
WPC Worldwide Partner Conference $1,795USD Business Types Focuses on delivering the MS roadmap for the upcoming year to MS Partners. 5 days July 11-15, 2010 $359 http://digitalwpc.com/ Washington, D.C.
PDC $1,000USD Developers / Architects Renouned for its size, with past events held in Los Angeles, this year scales things back with a shorter duration and a smaller, more intimate venue. Seats are reported to be limited. 2 Days Oct 28 - 29, 2010 $500 www.microsoftpdc.com Redmond, WA
MIX n/a Web Developers / Designers Sessions focus on web development and design, together with the MS technologies that support the development of same. 3 Days Apr 12-14, 2011 n/a http://live.visitmix.com/ Las Vegas, NV
TechEd $1,895US early-bird, $2,195 IT Pros and Developers Technical education on MS technology, tools, platforms and services 4 Days May 16-19, 2011 $474 EB, $549 http://northamerica.msteched.com/default.aspx Atlanta, GA
ALM Summit
(Application Lifecycle Management)
$1095US early-bird, $1495US ALM practitioners, managers Focus is on the application lifecycle and the management of same.  Sessions explore best practices of the application lifecycle for building software. 3 Days Nov 16-18, 2010 $365 EB, $498 http://alm-summit.com/home.aspx Redmond, WA
UX Week $2,295 early-bird, $2,495US Designers Premier conference for User eXperience types. 4 Days Aug 24-27, 2010 $574 EB, $624 http://www.uxweek.com/ San Fransisco, CA
Udi Dahan - Advanced Distributed Systems $1,800CDN Architects Advanced distributed systems architecture techniques.  Excellent course.
5 Days Aug 9-13, 2010 $360 http://www.eventbee.com/view/udidahan-toronto Toronto, ON
Agile $1,999US Developers / Architects Tracks include Technical, Business and Leadership & Organization focused areas, dealing with how to make software better, through agile methodologies.  5 days Aug 9-13, 2010 $400 http://agile2010.agilealliance.org/index.html Orlando, FL

 



New Computer - Time for a major upgrade

December 16, 2008 02:44 by Troy

This story actually starts over a year ago when I decided that I might like to upgrade my computer.  I used to be an avid gamer... that dried up a little, but partly because my hardware was a little deficient for the latest titles.  I don't play XBox or any of the other consoles... I just never got into them.  When I do play video games, they are on the computer.  These days, it is probably more like 85% power user and 15% gamer.  I don't need the latest and greatest hardware, but it is a nice indulgence once in a while.

As I said, I started doing my research for new hardware over a year ago.  I got about half way through picking components, and got sidetracked by something else.  By the time I got back to it a couple weeks ago, I had to start all over again.

For this upgrade I would be replacing almost the entire box and its contents.  First a look at what I am replacing:

  • AMD Athlon 64 3400+ CPU @ 2.2GHz (socket 754)
  • ABIT KV8 Pro v1.1 motherboard
  • 1GB RAM Kingston Value RAM PC3200
  • 200 GB Western Digital Caviar SATA WD2000JD Hard Drive (Configured with a 12GB System partition and a 188GB Data partition)
  • DVD-RW - NEC ND-3500A
  • ATI All-In-Wonder X800XT Video Card
  • Cambridge Soundworks 4 Point Surround speakers
  • Windows XP SP2

It is a bit funny to look back now.  I first got the CPU in November 2004.  Back then, 64-bit computing was going to be all the rage, and I thought my purchase would help to future-proof my machine.  Well, here we are 4 years later, and the machine never did see a 64 bit operating system.  Only now are 64 bits becoming more adopted and stable/supported enough to make the switch.

During this round of research, I was surprised to discover that SLI (Scalable Link Interface for the semi-techs - "hooking up multiple graphics cards together so they work as one" for the non-techs) had made a comeback.  However, I was disappointed to find out that NVidia had held exclusive licensing rights which meant the only chipset that supported SLI was the NVidia nForce chipsets.  Based on what I read, these chipsets are generally of lesser quality than their Intel based competition.  So it seems that choosing a motherboard/chipset now required you to choose which video card manufacturer would get your business (ATI or NVidia), because if you wanted to support SLI (or CrossFireX) then support from the motherboard was required.

This powerplay by NVidia has finally come to an end with the X58 chipset from Intel.  This is the latest chipset that supports the latest socket 1366 Core i7 CPU's recently released from Intel.  These processors are quad core and represent the first round in some fundamental changes to CPU architecture, compared with their predacessors.

Now normally, I am an analytical, common sense kinda guy.  I don't buy brand new cars... I buy 1 year old with 30,000 KM on them.  The same goes for computer hardware, don't buy the latest, greatest model of anything otherwise you pay through the nose now, and in 6 months, the same item can be had for 1/2 the price.  I would much rather buy the 2nd generation product and save money.

<beginJustification>
This time, I couldn't get over the NVidia chipset thing.  I wanted to try NVidia video card(s) this time, because I had seen first hand some of the low quality drivers/software created by ATI over the years.  To be fair, my research indicated that ATI has gotten better in the last year or two... but I still wanted to try walking on the green grass on the other side of the fence this time.  Choosing NVidia meant wanting to support SLI (just in case I ever move to 2 cards).  Supporting SLI meant being forcefed the nForce chipset, or bite the expensive bullet and jump to the top of price mountain and go for the X58 chipset that supports both SLI and CrossFireX.  Guess what I did.
</beginJustification>

Edit: Well, about 2 or 3 weeks after buying my nVidia GTX280 based video card, they mothballed that model in favour of the GTX285.  I guess I won't be going SLI anytime soon.  I do still like the versatility of supporting both ATI and nVidia though.

Now, for a look at what I upgraded to:

  • Intel Core i7 920
  • ASUS P6T Deluxe motherboard
  • 6GB RAM G.Skill PC10666 triple channel
  • 150GB Western Digital VelociRaptor WD1500HLFS (10,000 RPM for System Drive)
  • 1TB Western Digital Caviar Black (Data Drive)
  • DVD-RW - NEC ND-3500A
  • XFX GTX280 1024MB Video Card
  • Coolermaster Stacker 830 Evolution case
  • Logitech X-540 5.1 Speakers
  • Windows Vista Business x64

So far, things are running great, and I am happy with the upgrade.



Windows Server 2003 Distorted Audio

March 15, 2008 21:15 by Troy

After setting up a new workstation at work with Windows Server 2003 x64 I discovered an annoying problem that was hard to live with and wound up being harder to solve than I expected.

For work, I often view alot of MSDN video and webcasts.  The problem I was having was distorted audio during playback of these webcasts.  Other MP3 or YouTube sources were problem free.  The distorted audio was distracting and very annoying, but you could still hear the audio, which for these webcasts was typically just voice audio for the webcast presentation.  Because the other audio sources were problem free, I initially thought that the audio for these webcasts was just poor quality, and I lived with it for a while, until I tested one at home, and found that the audio was perfectly fine at home.  This caused me to investigate further, and for some reason finding a solution was much more difficult than I think it should have been. 

Maybe the patch had just been released at that point and not indexed by google yet, I'm not sure.  I was very glad to find a fix though.

Anyway, the fix is available from Microsoft and cures a problem with audio that has been encoded using the Windows Media Audio Voice 9 codec, which was the case with many of the MSDN webcasts.

The fix can be found here:

http://support.microsoft.com/kb/940666



Free Antivirus Product Musings

February 20, 2008 14:05 by Troy

Recently my Symantec Antivirus 2005 edition support contract ran out and I began to get the nagging, "fear of god" messages from the program telling me that my computer wasn't protected and that I could no longer get the latest virus definition updates.  It was very scary.  Ok, scary may not be the right word.  Annoying may be a better word.

Avast! Home Edition - http://www.avast.com/eng/avast_4_home.html
I started by installing and trying this free antivirus software product.  Early on, I ran into conflicts.  Avast! reported  that it could not properly initialize all of its scanning services while Symantec was installed.  My contract had run out, and I was using the older 2005 edition of Symantec anyway, so I uninstalled it so I could get a clean taste of what Avast! could do for me.

The biggest problem with the free version of Avast! is that you cannot schedule the virus scans to occur on a regular basis automatically.  You must manually run the scan yourself.  Overall, the software seemed pretty decent, easy to use, etc. however, for me, I want my computer to do things for me, not the other way around, so having to manually run scans was a bit of a deal breaker.  Of course, I could always upgrade to the paid version of Avast!, but my intention was to see what you could get for free.

AVG Antivirus Free Edition - http://free.grisoft.com/
I am currently trying this product, after having uninstalled Avast!.  From my point of view, there isn't much difference between AVG and Avast!.  They both appear to be competent in the function they perform.  AVG is generally user friendly, as was Avast!.  The big limitation with Avast! is not present with AVG and I am able to schedule a scan, however, only one scheduled task is permitted, and that task is limited in its defintion.  It only provides for a daily scheduled scan and you can only define the time at which it runs.

The most annoying thing I've found about AVG is that updates to virus definitions seem to always require a reboot of the computer.  The scheduled task for updates is similar to that of scans... only one is permitted and it is daily, or a manual process.  Neither of these options is perfect because you have to choose between manually updating the virus software yourself, or be faced with possibly having to reboot the computer on a daily basis in order to finish installing the update.  This annoyance is heighted by the fact that after an update is downloaded and installed, the AVG virus scanner is deactivated until you do reboot, which means delaying the reboot leaves you unprotected.

I am going to leave it another day or so, to see if the updates and reboots are truly a daily event, or if I've been unlucky with a steady stream of updates these last couple days.

So I left it a few more days, here are some of the results... the following list is "number of days between reboots" where 1 is the next day.  This assumes the software updates itself on a nightly basis, so this table provides a glimpse of just how often a reboot is required.

2 > reboot > 2 > reboot > 2 > reboot > 4 > reboot > 2 > reboot > 2 > reboot > 0 > reboot > 4 > reboot > 2

As you can see, AVG has me rebooting my machine almost every other day.  It is unfortunate that their update process involves a reboot so frequently.  It might be time to try out another offering...

I'll let you know what I find.

Update:
Ok, another oddity I've discovered with AVG.  It detected a virus on my machine, in an old archive file, so I'm not too concerned about it.  But here is the thing, it didn't notify me that it found a virus.  I had to go into the Test History (double checking to make sure they were still running) and that is when I saw that it found a virus.  In fact, it has been finding this virus with each scan every day for over a week.  If I hadn't gone into the Test History on my own, I still wouldn't have known about it.  Wierd. 

Update (2008-04-09):
I recently came across this site which provides the results of some comparison tests of many different antivirus products.  Worth a look if you are shopping around.
http://www.av-comparatives.org/

Update (2008-09-30):
Ok, well, time has passed.  I am still using AVG.  The latest version (8.0) seems to have fixed the frequent reboot issues that their update process used to cause, which is nice.  I don't notice it running now, which is a good thing... you want it doing the job, but you don't want it annoying you while it does it.



This is my first blog post.

January 12, 2008 18:41 by Troy

I'm not sure that I have that much to say yet.

I am still getting my feet wet when it comes to the whole blogging thing.  For instance, WTF is a slug?  I see that it is optional, so that is good.  I also see that I can extract a slug from a file.  Hmm, can't wait to google that in the context of blogging and find out what it is.

Well, that is probably enough for my first post.  I don't want to burn myself out too quickly.



About the author

Troy Farrell
Troy Farrell
I am a software architect and computer programmer living in Peterborough, Ontario, Canada.

Keep In Touch

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way. In fact, if I was agitated at the time, they may not reflect my own personal opinions.

© Copyright 2012

Sign in
© Copyright Troy Farrell 2012