In a previous post, I emphasized the importance of testing customizations.
The Made2Manage implementation consultants that I’ve known have all recommended having a practice company. The directions for creating one are posted on M2M Expert, and of course this is a necessity. However, I take it a step further and keep a separate test server.
Why do I need a test server?
You need a test server for several reasons. First, as of Version 5.6, you still cannot change the background icon on the M2M screen. This makes it entirely too easy to mistake your test and live companies. This is especially tricky because people normally use a copy of their live data for practice. I myself have either accidentally made changes to my live data or made the opposite mistake several times over the years. I read somewhere that 6.0 is the target release which will enable you to designate different backgrounds for different companies, but until that happens I will advocate a test server. Our test server has a very distinctive background to remind me which version I am working on.
“Hold on to your butts.” – Samuel L. Jackson, Jurassic Park
The second and third reasons have to do with the scene above in Jurassic Park. Everything has broken down and the dinosaurs are creating havoc. Samuel Jackson’s character is being compelled by his boss to cut the power to everything in the hopes that it will boot back up and function. He is of course reluctant because he’s unsure of what will happen. This is exactly the feeling I’d get when if I created a complex SQL statement and ran it against my data.
Second, when working with SQL it is possible for novices to write queries which could cause performance issues. You do not want to be responsible for your entire company “timing out” of Made2Manage while you practice or learn.
Third, if you are working with SQL, and doing anything other than SELECT statements, you can accidentally make a mistake with your live data which could be disasterous. Consider the following code:
Delete from somast where fsono < '12345'
Assuming your live company is M2MData01 and your working with your test company which could have the name M2MData06, this is no big deal. You just deleted all sales orders with a sales order number less than 12345. However, if you weren't paying attention and M2MData01 was selected at the top of the screen, you just orphaned all the records in the soitem and sorels tables which correspond to all the somast records you deleted.
I wish the SQL Management Studio had this error.
Needless to say, if you're working on your test server anyway, who cares? You can fix it with a simple restore which takes minutes. In my opinion, SQL development simply requires a separate server.
Fourth, even with the latest versions of Windows, the software environment on our regular desktop machines are constantly being degraded over time. You surf the web for information, constantly use software unrelated to M2M development on them, and install and uninstall software on a regular basis. I advocate using a separate test machine so the software environment remains relatively constant and much less prone to errors.
Finally, everyone needs to create a test server whenever they migrate to a new version of Made2Manage. I'll discuss my migration and testing procedures in a later blog post. Since we all have one at one time anyway, why not just keep it and do your testing on it?
How much does it cost?
I can imagine the accounting folks cringing, but this is not as expensive as it seems. My "server" is nothing more than a desktop PC with the following:
- Windows XP - Included
- Visual Foxpro 9.0 - Around $600 (Necessary to create/edit M2M Reports
- SQL Server 2005 Developer Edition - Less than $100
According to Microsoft the requirements for SQL 2005 Developer Edition are:
Processor - 600-megahertz (MHz) Pentium III-compatible or faster processor; 1-gigahertz (GHz) or faster processor recommended
Memory - 512 megabytes (MB) of RAM or more; 1 gigabyte (GB) or more recommended
Who doesn't have an extra computer in storage which exceeds those requirements?
So by my estimation, it costs you one throw-away PC, and around $700 for the software. This buys you convenience, stability, and insurance against data incidents.
Isn't your job worth $700?
You refer to having different backgrounds in M2M. How do you change the default background?
The background file for M2M is M2MDesk.bmp. I edit the image with Microsoft Paint and use that for my test server. This changes the look of your M2M test server and reassures me that I can freely experiment.
If there’s interest, I’ll post a sample bmp file for Admins to download.
[…] any of the code from this site, make sure you test it thoroughly on a test company (or better yet a test server) before you ever use it on your live […]
[…] any of the code from this site, make sure you test it thoroughly on a test company (or better yet a test server) before you ever use it on your live […]
[…] any of the code from this site, make sure you test it thoroughly on a test company (or better yet a test server) before you ever use it on your live data. Acme Product […]
[…] first before implementing any code from this site, please read my disclaimer. What I’ve chosen to do is to create a User Defined Function (UDF). CREATE FUNCTION […]
[…] had recently refreshed my data on my test server with back ups from my live server. You are using a test server, right? I restored my Data01, Data02, and M2MSystem databases. I didn’t run createdbc because […]
[…] export and import your customizations. For example, you can and should do your development on your test server and then export your customizations for import to your live company. However, if you customize the […]
[…] not tolerate down time whatsoever. So, my typical method is to perform the customizations on my test server then have my users test and certify that they work properly. Due to FastForms stability issues and […]
[…] any of the code from this site, make sure you test it thoroughly on a test company (or better yet a test server) before you ever use it on your live […]
[…] speaking with the user, and reconstructing things, I figured out what happened. Unless you have a test server to work on, you’ll just have to trust me that this actually works as you do not want to do this […]
[…] the code taken from this site, make sure you test it thoroughly on a test company, or better yet a test server, before you ever use it on your live […]