Comment Re:Well ... (Score 1) 151
It sounds like this is the case with this guy. He may not be the one running the company, but he's discovered (like so many) that what started out as a simple "I need to write a script to X" has turned into an actual department, with him in charge.
I won't bang on the same drum as everyone else. No, actually, I will. It bears banging on. For the past year and a half I've been developing Ghost SEED, a location-based MMO for Android. It's a fair-to-large sized project with basically only me as the active developer, so it's really very similar in situation to yours. I do all of these things (in fact, my day job is worse at this than I am, and it really shows in terms of increased fire drills and general chaos requiring late nights). In order of importance:
1. Set up a test environment. If you don't have the machines for it (and you can replicate your environment on it), sign up for an AWS account. Write good tests that actually exercise all the various code paths in your scripts. *Run your tests*.
2. Pick a version control system. Any version control system is better than none. Lots of folks (myself included) like Git. It's easy to use, reliable, and there are cheap hosting solutions for it that don't require you to have to think about backups or setting up a machine for it. The better hosts also have integrated ticket tracking (so you can keep track of problems and changes) which integrates into the repository (so you can just type something like '[Completed: 451] added support for gzipping responses' in your checkin comments, and it will automatically update the ticket with a link to the commit). Lots of folks like Github. I personally use CloudbaseHQ.
3. This is a distant third. If you can develop your tests to a point where you can run them with an automated system and have it give you an at-a-glance status, you'll be in really good shape. I have a Jenkins environment (an automated build system) set up to deploy my game server from my Git repository to my test server every night and then run all the unit tests on it. I can look at the Jenkins dashboard and see at a glance if it's okay or not. There's a big green light if everything ran fine, and a big red light if they didn't.
Setting all this up took me a couple of days, which were mainly just me learning how to use the various tools (Git, Jenkins, AWS, etc). In the intervening year it's saved me immense amounts of time. I have had only three minor and one major server issues during that year, and they all could be traced back to me being in a hurry and shortcutting the system I'd set up.