How many ServiceNow instances do we need?
As a customer you can decide whether to have from two to five ServiceNow instances. But how do you make that determination?
I think lot depends on your organisation's size, your budget the state of its current Software Development Lifecycle (SDLC). I would generally as a rule, say to nearly always avoid just having two instances. Whilst this was arguably ok for the now extinct ServiceNow Express, it is never really a viable proposal for Enterprise. Perhaps with one very generous exception; you have one developer/sys_admin who has a borderline obsession with detail and a manic control disorder. Otherwise avoid it.
Two instances simply doesn't cut it. The reason it doesn't work is that as a Software Developer you should assume that any code in Development will reach its way to production. This is certainly the case with ServiceNow where update sets can capture code which isn't ready (for example where another developer changes something on a form that is in your update set). The development instance becomes a proving ground for new functionality and feature-finding in a two instance setup. Which in turn introduces code which may or may not actually be something you ever want in production. Using your own ServiceNow developer instance not a workable solution as it is not a replica of your organisations instance so using it for development is not going to provide much value.
Most companies happily survive with three instances (Development, Test and Production) with no adverse effects. Companies however grow, mature and enrich their software development capabilities and in doing so look to automate much of their work. They also soon realise that some development time is often nothing more than controlled experimentation. ServiceNow practitioners will know that there are many ways to achieve the same results, and often the dilemma for the developer is to choose the right path. However this is not any random path, this is a path to be carved through their organisation with all its policies, processes and complexity. Therefore having an instance dedicated to developmental experimentation can be a rewarding investment. At the same time the test instance can be rigorously controlled through automation (see my other post on the Automated Test Framework).
- “Testing has to be an integral part of developing software and not a separate phase. When this approach is taken, product quality is owned by everyone on the team." — James Sivak
Perhaps once more efficient automated SDLC practices become "business as usual" contemplating a 5th instance might be the best way to proceed. The "Pre-Production" instance is created. Code is tested in test and when passed is moved to the pre-production instance to ensure that no issues arrive during transfer or application. The pre-production instance is routinely and automatically cloned to ensure an exact replica of production.
So to answer the question how many instances should you have, start with some others: Are we in control of our instances? can we improve our SDLC? How long can we keep doing what we're doing? How can we best support the business by balancing velocity and stability?