The core components must remain easy to use, when overlaying any additional components either to enhance marketing ability or functionality must not impact on the core functionality.
I am not being negative, take Apache, self-contained, now run it on every OS you can think off. Tweak to make it OS compliant, this assumes there are no other programs installed on the machines that may or will conflict.
Add MySQL and perform the same tests and probably a few more tweaks only this time to both components.
So we are fully operational and add that new games program, well your servers worked fine yesterday! But now crash, you have only moved a few squares on that chessboard, suppose the grains of rice are keeping your feet warm.
What I am trying to say, every component you add needs to be fully tested, not only on the machine you use with its combination of software, but with a vast array of other machines and their mysterious components. Move up a few squares, now you are shoulders deep in rice.
The utopian ideal is to have a matrix of available server versions with corresponding programmes, allowing you to pick and mix to create your server installation. Not only a logistics nightmare but also a small problem of moving fifty squares on that chessboard, do the calculations, I am sure China would be happy to have that amount of rice. It’s that testability that is required, could take the ms route, put it in the public domain and make a fortune.
I think to put it into perspective; I saw one line of code that floored me, missed because it was not tested.
All the bets
Ric.
