26

I am the only developer working on a web application which is nearing to its end. Now we are looking into making it Live in maybe a couple of months time.

This is a web application for a non IT company. Though they have their own internal IT team, they have asked me on what will be the hardware requirements for the live servers eg. RAM, 32 bit or 64 bit.

Shouldn't the internal IT team be doing this or since I am the only person working on the project is it my resposiblity to let them know of the any specific hardware requirements which may impact the performance of the project?

The reason I am asking this question is that, I have not done this before. All the times I used to be given a server and asked to deploy apps on it. I never used to worry about the server configuration, etc.

Teun Zengerink
  • 127
  • 1
  • 1
  • 4
ajm
  • 1,255
  • 1
  • 10
  • 23
  • 6
    Having been on both sides of that coin (multiple years experience in both IT and SD), I can confidently say that if I had a nickel for every time a dev team gave me a hardware spec that accurately fit the application, I'd have $0.00. Probably 90% were way under-spec and the others apparently required supercomputers. ***Don't be afraid to work with IT to figure out the hardware spec!*** Combining your knowledge of the application with their knowledge of systems and scalability will gain you much more than trying to ballpark a CPU and RAM spec based on dev/test. – Justin ᚅᚔᚈᚄᚒᚔ Oct 10 '12 at 16:17

6 Answers6

52

Though they have their own internal IT team, they have asked me on what will be the hardware requirements for the live servers eg. RAM, 32 bit or 64 bit.

Perhaps they figure that as the developer, you have more insight into the app's requirements than they do. You've presumably been running the application and know how much memory it requires under different loads.

From the IT department's point of view, they're happy to supply whatever your application needs. They could probably figure out what the application requires through trial and error, or they could ask the one guy in the company who's likely to have some insight into the application's behavior for his opinion.

It's not uncommon for developers to be asked to do things that aren't strictly in their job description. You might have to write some documentation, even though there's a technical writer on staff. You might need to participate in the testing process even though there's a QA department. Or you might be asked to help write a proposal even though there's a business analyst on the project. This is normal -- you're part of a team, and your main concern should be helping the team succeed. It's also good for you since it expands your experience and helps you understand what the other team members do, and it's good for the company since it spreads knowledge around.

Caleb
  • 38,959
  • 8
  • 94
  • 152
  • 7
    Heavy is the head of a small code-shop developer, for it is he who must wear many hats. – Philip Oct 10 '12 at 20:26
  • 1
    I recently finished a Wordpress site migration. That's not exactly what I had in mind when I decided to become a software engineer, but on a small team, especially at a small company, you do what needs to be done for the good of the team, not because it fits your idea of what your ideal job might be. – hemp Oct 16 '12 at 19:28
15

is it my responsibly to let them know of the any specific hardware requirements which may impact the performance of the project?

It is responsibility of a product provider (your company, in this case) to define minimum requirements for the successful product operation. As a responsible person within your company; it might be tech-lead of the project (sounds like you) or your company CTO - which does not matter to your client.

However, there should be provided a minimal specification list to allow good operation of this product on a client machine and server.

Yusubov
  • 21,328
  • 6
  • 45
  • 71
  • 4
    This. The IT team has no idea how demanding your app may be. Without that knowledge, providing a server is a stab in the dark. If they don't know and have to provide a server, you're usually going to get something monstrously oversized as they don't want to undersize. Unless, of course, there's no budget, then you'll get stuck on the tiny server and blamed for every performance problem they ever have. – Brian Knoblauch Oct 10 '12 at 13:02
6

Would depend on a few details. But in general, they can expect at least that you give them some minimum requirements since you should have a better knowledge about the technology you used for the project. You would know what database is used, if you used some additional indexer for full text search, which would maybe require more memory or would make use of additional cores.

On the other side they maybe have some additional knowledge too, like what kind of load to expect, how many customers may access the site and so on.

I would simply try to get in direct contact with the IT team and bring in the knowledge from both sides.

thorsten müller
  • 12,058
  • 4
  • 49
  • 54
1

At this point in the process, they should absolutely be asking you for this information. The developer/development team is not just responsible for writing code. It is your job to understand the application you are building and all of its inner workings. This knowledge should have come from your internal design meetings. Who better to evaluate the execution profile of the system with all of its nuances than the team/developer who built it.

This late in the game, I would be more concerned if they were dictating the server configuration instead of asking me.

cdkMoose
  • 1,775
  • 9
  • 12
0

Though they have their own internal IT team, they have asked me on what will be the hardware requirements for the live servers eg. RAM, 32 bit or 64 bit.

Hardware requirements don't mean anything.

While you, as a developer, may be thinking in these terms, be wary that nobody on the business end will actually care what answers you give to these questions. What will matter is how the web application performs. Based on this question, I suspect you do not have performance requirements (such as requests per second and average load time for a page). You should provide technical guidance in developing the answers to these questions before you worry about hardware requirements.

Ideally you should not have to do this alone: You, a business analyst, someone from IT who knows the cost of a server and the project manager should define the performance requirements and their impact on the scope/schedule/budget. Once that's agreed you and IT can work together to figure out exactly what that means, but there's a good chance you'll want to do some optimization on your end in addition to throwing hardware at it.

Even if you do have to do it by yourself, I recommend documenting your performance requirements in measurable terms that aren't arbitrary descriptions of hardware – this will also give you leeway to go back to IT later and ask for more if the application isn't performing up to snuff.

kojiro
  • 2,105
  • 1
  • 15
  • 29
0

You can't expect them to know the HW requirements of software they've never seen. The architects and senior devs should have an approximate idea of how much storage and processing power is required for x-amount of clients. As for how many clients the software needs to support that is up to the the client and really should be in the signed off spec.

Inverted Llama
  • 413
  • 2
  • 9