System Requirements: when the plural of anecdote really is data

29 April 2009

I had an interesting email assigned to me today, one that posed a question I hadn't come across before.

This requires some explanation, not the bit where I hadn't heard the question before, but the reference to assignment of emails. We not only have our own email addresses at DevExpress (mine is, in case you'd forgotten), but we have generic email addresses too:

What is not known is that messages to the first two are diverted into a big email database, mainly because people sometimes send sales emails to info, and presales emails to clientservices. We don't want to act all snotty, "Hey, send your purchase email to clientservices, we at info are all about presales questions," because quite honestly we'd be beaten about the head by everyone. So Azret has written an awesome WinForms ClickOnce email application (affectionately known as DXMail) — using our controls, of course — and someone goes through the pool of unanswered emails and assigns them to individual people, generally the person best able to answer the question. This email application is in the process of being merged with our support center application too, so that support questions that come to one of these two email addresses will get routed properly. (I'd show you an image of the app, but it would be full of fuzzed-out private information.)

Anyway, I got assigned this particular email, a presales question, and the author wanted to know the minimum system requirements for a WinForms application written with our controls, or, failing that, at least the recommended requirements, especially with regard to RAM. Yep, a perfectly valid question and the old CTO was stumped: we don't have any data on this. Obviously for the OS and hardware requirements I can just point to whatever .NET requires, but what about RAM size?

So I went to MSDN to find out the system requirements for .NET. For version 3.5, the minimum RAM requirements are, wait for it, 96MB. Good grief. The recommended amount is 256MB. Yeah, right. I have absolutely no idea how that number was arrived at. Did they write an exemplar application with .NET and then run it on these RAM-limited machines? Don't know, but at least I have the official recommended amount of RAM to run a .NET application.

But what about our stuff? How much would that add to the equation? OK, now I need a reference application that uses our controls. Bingo, DXMail. Now I need a limited machine. The one I came up with was my Dell Mini 9 netbook, with its cavernous 1GB of RAM (an eighth of its drive space, I'll have you know — you don't exactly want to hibernate this baby). Handily, DXMail is ClickOnce so I could easily install it (like all small netbooks, there's no DVD drive to install from). So I logged onto our servers through VPN and started the download to install it. After that, I ran the app, and it came up and emails were shown and I could reply to them, etc, etc. Gobsmacked, I was.

But what had I really shown? (Apart from the ability to do another chunk of my work on a very small screen in Starbucks, that is.) Sure, DXMail runs on a 1GB machine, but is that a recommendation? Can I derive any data from this single anecdote? For it comes to me that all I've proven is that this one .NET application whose data is at the end of a broadband pipe works on my netbook. What if the data were all on the machine itself? What if the grid is being used and server mode is off so all data is downloaded to the grid for display? DXMail "ships" with skins, but would their exclusion make any difference? And so on.

In the end, the only conclusion I could come up with was the requirements for our controls can only be understood in reference to the application written to use those controls. Even further, the RAM requirements would depend on what the end-user would be prepared to suffer performance-wise. Yeah, I'm sure DXMail would work in 256MB of RAM by swapping the heck out of stuff, but would I be prepared to use it under those circumstances? (Another anecdote: Task Manager reports that DXMail is using 40MB of memory, so maybe 256MB would indeed be fine.)

I also considered whether we could derive any data ourselves rather than rely on the anecdotal information from yours truly, say by writing a reference application and running it as part of our testing. But again I'm led to the conclusion that any data we'd get would be trivial at best or too vague at worst: "We recommend at least 512MB of RAM to run a well-written WinForms application using the majority of our controls." Notice all the wishy-washy caveats and those hedging terms. I really don't think we'd get anything better than that without getting bogged down in definitions of "run" and "well-written" and "majority". So in this case, I think anecdotes are about as good a set of data as we can manage.

Oh, and we recommend at least 512MB of RAM to run a well-written WinForms application using the majority of our controls. Smile

Free DevExpress Products – Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We’ll be happy to follow-up.
No Comments

Please login or register to post comments.