Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Not Counting the OS And the requirements to run the Development software. The storage space required.

Strictly speaking from work perspective(company setup and not freelancers).A individual developer ( not considering a build system) unless into areas of video,audio processing( huge raw files) 3d/graphics development. How much storage space would be required.

  • Even if we account for the software trials to download or reading material.is it Right or Safe to assume 20GB would most suffice and any thing more would be a waste and or would be improperly utilized?.
  • What is the typical hard disk space allotted per developer in an office setup.This may differ per role or specific requirement and on what type of work the company is into. but on an average for a developer/programmer how much space is normally allotted.

Edit:

To Clarify Intent

These are questions i had faced by business/management people.I only wish to understand more in this regard to give an answer(or better answer)the next time i come across them. I am neither making assumptions or intend to give offense to any one in this regard.It would be helpful if some links to data online were provided in this regard.

Edit 2:

  • The issue as i understand was restricting the storage space to only the saving of work files to discourage extraneous usage...
  • Not about scrimping/cost saving on hardware.
share|improve this question
2  
No one will ever need more than 64k... –  Cameron MacFarland Mar 28 '11 at 7:35
    
great already 2 close votes(quick to jump to conclusions ). imagine my situation when i had to come up with a convincing answer. –  Aditya P Mar 28 '11 at 7:37
3  
A typical modern Windows installation (fully patched) is about 30 to 40GB nowadays. Add some extra dev software to it, storage space and other stuff, you probably need 100GB disks at least. –  Jan_V Mar 28 '11 at 11:07
1  
Seems to me like extraneous usage is going to come into play in the network/internet access area - not the hard drive. –  xdumaine Mar 28 '11 at 13:13
1  
@Jan_V: I think your disk usage tool is double-counting the DLL files with multiple links. I've got Windows 7 plus many applications installed on a 30 GB drive with space left over. –  Zan Lynx Mar 28 '11 at 15:23

11 Answers 11

up vote 6 down vote accepted

When talking about just the development space (i.e. excluding apps and OS requirements), it really depends on the type of project(s) you are dealing with. For example, compiled languages create a lot of temporary files that are in turn repackaged into larger files. In my current environment, we are currently running about 20GB for the source code + the compiled object files. That's only including the DEBUG compiled version, it would be more for RELEASE compiled as well.

Please don't forget the 20% overhead that NTFS or other journaling file system (assuming Windows here) needs to have room for journaling and keeping the hard drive healthy. You'll have to size the hard drive needs yourself.

When projecting the hard disk needs of your project, you'll have to consider the following aspects:

  • What assets are final products? Items in this class include art assets, images, sound files, etc. that aren't combined into another file. In a web application this includes your CSS and JavaScript files as well. Don't forget your build scripts and other items that are not compiled.
  • What assets generate intermediate results? Items in this class include source code for compiled languages, link files, etc. At the beginning of the project, you'll have to project how big you expect these to get, and revise those estimates at least twice more as the project goes on.
  • How big are the final products? Your DLLs or shared libraries also take up space. Same as if you packaged your web application into an easily deployable unit (similar to a Java WAR file or EAR file).

For a rough estimate of how big your final estimate is, use the following formula:

(2 * _static_) + (2 * _intermediate_) + (2 * _final_) * 1.2

If you are thinking to yourself, how can that be? Consider the following:

  • The compilation process copies static files to the build directory, as well as the compiled classes.
  • The linking and packaging stage will create final binaries that will be smaller than the combined intermediate files and static files in the build directory, but doesn't erase those files as they are combined.
  • The final product is only marginally smaller as binaries can't compress very well--but you can remove redundancy.
  • You need to account for temp space to allow the compiler to work. This is what the extra space allocated in the final product is for.
  • Lastly, you need to make sure the dev environment has some breathing room so the OS can keep the drive happy. That's what the 20% increase at the end is for.

If you are at the start of a project, have your developers provide a SWAG (Seriously Wild A** Guess) as to how many classes would be needed to implement the feature. Multiply that by 16KB. Some classes will generate much smaller object files, and others will generate larger ones. But this should be sufficient for your SWAG estimate of disk space. Also assume your final products will be the same size as the classes you estimated.

I assume your employer is wanting to set up quotas for each user profile. I sincerely hope they are not entertaining roaming profiles with the dev environment. The problem with roaming profiles is the shear volume of files that need to be transferred. Windows OS (and the Samba protocol) are notoriously inefficient at transferring large numbers of files. It will take an order of magnitude longer to transfer 100 1k files than 1 100k file.

Hopefully this gives you enough information to negotiate with your employer.

share|improve this answer
    
A very good answer.This is helpful .Also it was not my employer . –  Aditya P Mar 28 '11 at 12:39
    
Note: non-compiled languages will typically need 1:1 for all the types of files, not 2:1 as I have listed here. For example, a Ruby on Rails app is executed in place, with no extra copying files around as would be needed in a comparable Java or C# app. –  Berin Loritsch Mar 28 '11 at 12:41
1  
This omits cases where you might want more than one source tree available, cases where the version control system uses local storage space (like all the modern ones I'm familiar with), cases where you need to work on something else temporarily, cases where you might need another configuration, and cases where you guess badly. This is a recipe for disaster. –  David Thornley Mar 28 '11 at 14:18
    
This is a starting point, and nothing more. You are guaranteed to have to revisit the numbers as the project progresses. That's the result of attempting to tighten the disk usage of your developers. When dealing with IT managers who rule by fiat, you will need to express your requirements reasonably. This answer provides a mechanism to do that. I also agree that restricting space to such a large degree is a recipe for disaster. NOTE: if you use Subversion, double your disk space requirements. It stores a second copy of the file in its folders. –  Berin Loritsch Mar 28 '11 at 14:21
    
This is a good starting point, but I'd say that if everyone has their own computer, then hard drives scrimping won't save much money. All bets are off for roaming profiles. –  Michael K Mar 28 '11 at 15:18

Development needs a LOT of space.

We use VM images as units of configuration management for developer setups.

Once you've copied the VM onto your machine you start it, update the source code from the VCS and you're running. No futzing with developer setups.

Each VM image is about 20Gb. 4-5 of those. i.e. we generally need 100 to 120Gb Gb

Mind you, they are not "per user" on the machine things, only need one.

share|improve this answer
1  
+1 for VM images. If your office setup uses that. –  Aditya P Mar 28 '11 at 7:31
    
keep in mind a second hard drive for backups or raid. a hard drive failure can be catastrophic if there is no redundancy anywhere –  WalterJ89 Mar 28 '11 at 12:15
1  
Better still, a ton of disk space on a network location, in case of fire/flood/theft/facepalm-worthy-incident –  JBRWilkinson Mar 28 '11 at 13:13
    
My nightly backup "mirrors" the VM images to the network RAID disk –  Tim Williscroft Mar 28 '11 at 22:14

Actual space needed? It depends. Despite your edit I'm still not really sure I get the point. You couldn't even buy a 20gb hard drive right now if you tried. You would almost always use whatever size hard drive has best GB/$ ratio. (Or a small fast drive (SSD) and a large slower storage drive) Thats about a 1TB right now (last time I looked anyway...). If you wanted to drop to 500gb, you'd be paying 80% of the cost for 50% of the space.

I would argue that somebody asking you to put a number on how much space you "need", doesn't even really understand what they are asking.

share|improve this answer
10  
You couldn't even buy a 20gb hard drive right now if you tried.. this. I just checked the parts list of the local company my employer buys PCs from - the smallest desktop SATA hard drive they have for sale is 250 GB. It costs nearly 90% of the price of a similar 500 GB drive. There's no money to be saved in scrimping on hard disk space. –  Carson63000 Mar 28 '11 at 9:56
2  
@Carson63000: I can see companies using this information to determine whether to buy SSDs or HDDs. If you can get by with 128G, then SSDs are affordable (~US$200). If you really need 250G or more, then you'll be hard-pressed to make a case for spending 10x more for an SSD for the same amount of space. –  TMN Mar 28 '11 at 13:15
    
@TMN: There's also the option of an SSD and hard disk both, which is what I've got now. The SSD cuts my link times a whole lot, and the hard disk is great for storing lots of stuff. –  David Thornley Mar 28 '11 at 14:19
    
The space allocated would be per user profile and not the actual hard disk!!. –  Aditya P Mar 28 '11 at 15:16

Hard disk space is incredibly cheap. Why would you not give each developer a terabyte harddisk? Saves them from having to waste time cleaning up their disks every week.

That being said, I'm using about 150 gb of that terabyte, our code base alone is around 9 gb.

share|improve this answer
    
I am not trying to argue about its cost.And having raised the cost factor was troublesome at best in this regard. –  Aditya P Mar 28 '11 at 7:34
    
Hard disk space is only as cheap as the systems and media required to keep it backed up and the time required to plow through all of it when the developer has left and someone needs to make sense of his work. –  Blrfl Mar 28 '11 at 10:30
    
@ Blrfl: I don't see that as an issue. All code/analyses are in a source control solution. Even if my PC burns in hell I won't loose much data. –  Carra Mar 28 '11 at 13:10
    
@Blrfl: The storage on my machine isn't backed up. I know that. I have network drive space (which is) where I can store things that would be inconvenient to lose. That network space is where the expense lies. –  David Thornley Mar 28 '11 at 14:24

Here's an opinion on the point:

The issue as i understand was restricting the storage space to only the saving of work files to discourage extraneous usage...

You want developers to engage in extraneous usage. You want them to download demos, open source code and all kinds of other things. Of course you need to take steps to protect the rest of the network from a potential catastrophe. Maybe their research should be done on a VM image, but you want them doing it. You want them trying new things, engaging in new ideas. When you take this away from developers they begin to stagnate and become resentful. Granted, you don't want them playing sudoku or downloading Duke Nukem demos, but by limiting their capabilities simply because you don't want "extraneous usage" is only going to make them go work somewhere else.

To put it into the form of a Star Wars quote:

The more you tighten your grip, Tarkin, the more [developers] will slip through your fingers.

share|improve this answer
    
I cannot agree with you more on this.But my place was to provide information on factors involved ,average space,and comment(agree!) on their provided estimate. –  Aditya P Mar 28 '11 at 13:24
3  
"You want them to download demos, open source code and all kinds of other things. " Tell that to the "security manager", the "network administrators", the "systems administrators" and all the others who want to make developers use only the applications allowed for the secretaries and receptionist and not allow them to install or run anything else (like a compiler, editor, etc.). –  jwenting Mar 28 '11 at 13:44
1  
Tell them to find a job somewhere else. If IT staff can't deal with potatoes, don't go work for a restaurant, and if they can't deal with developers, don't go work in a company that does software development. Software developers exist to create new software. New software by definition can't have been approved. Therefore. any admin insisting on pre-approving software is by definition unsuited to work in such environments. –  MSalters Mar 28 '11 at 14:22
    
@jwenting, @MSalters: Complain about the security all you like but remember what happened to the Half-Life 2 source code. Security is important too. –  Zan Lynx Mar 28 '11 at 15:26
    
@jwenting: I did. I made a successful argument to be allowed to have my development machine be a Windows Server 2008 and placed into our server group. This allows them to monitor it more adroitly and for me to have a little more control over my environment (since I am also local administrator). –  Joel Etherton Mar 28 '11 at 15:37

The only reasonable answer to this is "enough".

It doesn't take many developer hours to pay for a new harddrive...

share|improve this answer

My main work machine has a 160GB internal drive, a 160GB external drive, and a 250GB external drive. All but the 250GB drive are almost full (which is why I added (at my own expense, btw...) the 250GB drive).

We're using VMWare images a lot, and those tend to get rather large. 3 projects, each with a 20GB image plus a backup image, is 120GB. That doesn't include the space needed to install Oracle, WebLogic, 5 JBoss instances, IDEs, office software, operating system, etc. etc. which together take up another 100GB or so.

Then there's documents, eBooks, and whatever else you need. For productivity that'll likely include a few GB of music for iTunes (most anyone I know works better to music, and everyone prefers different music). And yes, I therefore do consider iTunes (or another music library/player) a productivity tool.

share|improve this answer

These are questions i had faced by business/management people

You do realize that modern internal harddisks cost something like ¢3-5/GB? So you're suggesting that ¢60 should be enough for developer. That's ridiculous, a sounds very dilbertian to make management issue out of it.

share|improve this answer
    
As i had said to @Carra the cost was not the issue behind those questions/assertions. –  Aditya P Mar 28 '11 at 9:01
    
Correct question would be "is 320GB enough for developer?". That's currently the smallest new HDD you can get. Unless you want to go SSD, but with organization so ridiculous as to propose 20GB HDDs, that's probably totally out of the question. After all who cares about developers productivity, if you can save like $150 on their computers! –  vartec Mar 28 '11 at 9:34
    
no doubt IBM can still sell you a smaller one if you spec them a workstation including one and order a few hundred... –  jwenting Mar 28 '11 at 13:45
    
@jwenting: yeah, they "make" smaller ones by hiding most of the HDD in BIOS or firmware. –  vartec Mar 28 '11 at 14:01
    
smart, aren't they :) Though it wouldn't surprise me if Lenovo and others have warehouses full of outdated hardware they'd love to get rid of to corporate customers willing to pay premium for it just to have a "standard set" similar to what they've been using for years. –  jwenting Mar 28 '11 at 14:08

I usually go for very fast drive for the important files (programs and code) and a large drive for everything else.

That usually means a small SSD (128GB) in this configurarion:

80GB C: for the OS, Office, Visual Studio, SQL server etc.
30GB D: (the rest of the SSD) where i put all my code and some VM's
1.5TB E: here i put all the rest, isos, my music, videos, etc.

share|improve this answer
1  
"Strictly speaking from work perspective" You need 1.5 TB for music and videos? (I use TBs at home to save films that Windows Media Center has recorded from my TV card -- I got hundreds of them, but this is my personal computer.) –  Andreas Rejbrand Mar 28 '11 at 12:47
    
well said, Andreas. Some music in iTunes shouldn't take up more than 10-20GB (which of course is already the total OP thinks is enough for a dev PC :) ). –  jwenting Mar 28 '11 at 13:47
    
What kind of videos are you thinkning about? my music collection is about 80GB (mostly flacs) but when I was talking about videos I was referring to training videos, I have videos from PDC, MIX, Teched and other conferences, most videos are almost 1GB in size, You have management mentality, i don't know if that is good or bad –  Juan Zamudio Mar 28 '11 at 20:43
    
most videos I see on peoples' screens are manga, not training videos... –  jwenting Mar 29 '11 at 7:05
    
I'm not into manga but I cant have that kind of videos at work, hell, sometimes i had to explain to some managers that I'm learning EF 4 or plinq and get weird looks –  Juan Zamudio Mar 29 '11 at 19:09

1TB harddrive is below 100$, so what are you discussing about? Event discussing this is more expencive, than just get some hard drives...

Still: If you work with multimedia files 20gb is a joke. Uncompressed samples of 1gb and more are quite common in that envoirement. You will need a lot of copies, etc. If you work with virtual machines, you need even more.

Anything below 500gb is not reasonable.

share|improve this answer

Sufficient that your developers don't have to worry about running out of space whilst working. In my case that's room for big checkouts, (sanitised) copies of databases, VMs and "other stuff" - although some of the other stuff ought to be on shared space (of which I'd need a lot) to avoid duplication in a team environment.

Use (abuse) of space on a work PC for extraneous purposes should be a matter of policy and one not of enforced physical limitions on their principal dev boxes - not least because developers are the kind of people who will be able to find creative ways round restrictions quite possibly to the detriment of your network as a whole.

Note also that this is one of those areas where developers and other users do actually need to receive different treatment.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.