Background
If you’re an experienced software developer, then you know that when it comes to making software changes that may impact the business, a separate environment is an essential and valuable practice. A “sandbox” is an environment that is designed to be a copy of a production system (data and logic) and it frees you from worry about causing harm. In this environment you can experiment, code, perform tests, and make changes – without affecting the current program in use. NetSuite offers a sandbox environment (for a fee) – but more on this in a bit.
Software Development Practice and the Cloud
Without a sandbox environment, the typical way to condut software development is to organize the effort into three areas:
- Development
- Testing
- Production
The basic premise is that in the development environment, the programmer makes enhancements, performs testing, and then packages the changes to send to a test environment so that others can exercise the code. Usually bugs and other refinements are needed requiring the programmer to go back to the development environment to resolve. The process cycles until the team has sufficient confidence that the changes can be safely deployed to the real production system.
This practice is a general pattern used in the software industry. Traditionally, separate hardware equipment is used to isolate the environments. Yet, the business world is moving toward cloud computing which effectively eliminates the concern for hardware. Consequently, this shifts the way you look at the practice. As such, the term “sandbox” is used when working with cloud environments to mean a separate area from the real production environment.
Business cloud services are not created equal. The better offerings support full-fledge sandbox environments to allow the familiar development, testing and production pattern. The ability to have a sandbox is a sign of the software provider’s marketplace maturity.
Software Development in a NetSuite World
When considering the NetSuite platform, you have options. You don’t necessarily need a sandbox. But you incur risk without one. NetSuite offers a way to perform logic changes that only you see, not the business users. When you are ready, you can change a flag to say the new software is “released” so all users can enjoy it. It’s tempting to do this because it’s conveninent and quick.
NetSuite also offers development environments. Access to these environments depend which NetSuite sponsored program you are in. As a NetSuite Systems Integrator, we use these environments to develop new enhancements. And we use NetSuite’s SuiteBundler technology to move enhancements between environments and accounts.
However, the NetSuite development environments inherently have a key weakness. They don’t contain real data. And they will not have the same configuration information as the real production system. This means that you won’t be able to make a good assessment of the software code reliability until it is deployed to the production environment. This is risky — and I generally recommend working with sandboxes to avoid issues.
Summary
If you are going to perform complex enhancements to NetSuite, I highly recommend the sandbox model. It lowers risk while minimizes trial-and-error development processes against live information.
If you need help enhancing your NetSuite system, contact us.
Hi Marty,
Thanks for the post.
Is there a way we can remove or mask critical information from sandbox like Employee Details, Customer Information or Financial Information, Credit card details etc?
Hello Gaurav,
My understanding is that Sandbox has the same security restrictions as Production. Thus, when you cut a sandbox, it will be in the same shape in terms of visibility. You could write a program that can obscure the data…
Marty