Generally, in software development you need 3 environments.
1) Development and test area (a computer).
2) An acceptance area (a computer or computers) which some of your users test what you have built or any changes you are rolling in.
3) A production area (this is the real thing ready to work as the system is intended).
PUTTING IN CHANGES OR UPGRADES
1) Never do this during peak hours of usage. Put in your changes after thorough testing and with permission from the users that the new changes will work fine.
2) Most big systems might require the weekend. You shut it down on Friday after everyone goes home. You roll in on Saturday and test. You get more testers on Sunday. Then on Monday you are ready to go but do not enjoy sleep yet in case your testing missed something so you have to be around the first day the crowds log into your system.
3) Web designers need to always have a server they have control over for their clients to test out the work they are doing before they migrate their work to the end hosting server.
Do some of you remember when the Land Registry in Uganda was shut down for 6mths+ apparently to automate the registration. Who does this? All the work should have been done prior to the shut down. The shut down should have happened only on a weekend. And in this case, they did not know what they were doing to the real estate agents, developers, lawyers and banks which lend money. In this case, they should have ran parallel systems. The old one remains working while they bring people gently and slowly into their new one.
Martha Leah Nangalama
The writer is an IT analyst for an oil company and has experience in software upgrades and implementations.
All my opinions are mine and mine alone. They do not reflect on my employer or any organisation I am affiliated with.