views:

254

answers:

6

We develop an enterprise application for which we need to document the minimum hardware requirements for the following target deployments:

  1. Thick-client
  2. Database/application server (where we run several server side processes that need access to the database and a file server, which is often the same machine)
  3. Web server

Some of the ideas we have tossed around include basing the requirements on our test environments, basing the requirements on the highest specs of each target's components, and basing specs on currently available hardware.

How do you come up with your hardware specs?

+3  A: 

I've some machines in my test environment on which the minimum hardware & software requirements depend. I think this is the only "safe" way to define such metrics.

On those machines I run all kind of test at least three times a week do be sure, that the application has enough resources after all the changes. So if you change your test machines, you also change the minimum requirements.

On some projects we define the minimum with our client and buy / build some test machines with this minimum to test again...

Gregor
+2  A: 

We use the bottom baseline specs for user machines in our environment that will run the software effectively and within reasonable customer expectations.

theG
"user machines in our environment that will run the software effectively": Yes, but how do you determine this?
John Dibling
@John: Probably by testing it on all of the different classes of machines they have in their environment and drawing the baseline after they find one that is too poor performing to effectively run the application.
TheTXI
Yes, and by survey and usability testing / benchmarking. Benchmark statistics mixed with survey results offer a great amount of insight into the effectiveness of an application in a specific environment.
theG
A: 

Most of our work is through direct contract work with clients, so a lot of the hardware specifications come directly from the client and what they are currently running in their environment (i.e. must be able to work sufficiently well on the worst computer they have that they plan on using the app on).

Sometimes we can also convince them to do technology upgrades as part of a package along with the development work, but that is not often.

TheTXI
+1  A: 

Also find out what the minimum requirements are for your software framework/platform of choice.

Mladen Mihajlovic
+5  A: 

In general, we take the minimum recommendations for our environment (ie the minimum recommendation for .NET on client or for IIS/SQL Server on the datbase) as a vague baseline.

In general we know the application size / expected database size for our application based on the client size.

After this we add some 'fudge' numbers based on observations made with Windows PerfMon. We watch the client memory / cpu usage of the system when running under normal conditions. For the server tier we will also take into account the memory / processor load when running under loaded conditions.

Based on all of this we come up with our best guesses.

Jack Bolding