Our goal has been to create a small commercial software product, and we are rapidly getting to the end of our journey. Creating commercial software does require us to do some additional work over something we build for personal use or even internal to our company. We are going to ask people to pay money for our application, and they will have a set of expectations we need to meet.
A Fresh Install
One of the easy to forget tasks we need to perform is a fresh install of our software. We have probably been coding and testing our application for a while, but that can leave a bit of a mess. We may have some old files or development libraries on our machines that a fresh install will not. This situation can create a problem where everything installs and runs fine on our (and even a test) machine but not for any customers.
It is worth the extra effort to avoid a situation where the application install fails miserably. Also, this is maybe even more of a problem with a web application. It is easy to copy files out to a deployment folder without deleting all of the files in that folder beforehand. Not only can this break an install, but it can also be a security risk as well.
Follow Best Practices
When you do that fresh install, you should start with a clean build from version control. There should also be a tag, branch, or similar marker to make it easy to reproduce this effort at will. When you go through this process, there should be some form of documentation or scripts that allow you to return to it years from now and still know exactly what to do.
Of course, when you script out this process that makes the whole thing easier to produce the same way, every time. These scripts and any helper tools should be accessible from version control as well. You do not want to go digging on multiple machines to find those great build tools you created for your product.
Clean Up and Smoke Test
Once you have your clean install, make sure it works. Run through a smoke test of the commonly used functions. While you are doing these tests, make sure that you have removed any hard-coded values from your code. This search should include configuration and setup files. When you take this extra review step, it can help you avoid deploying a security id or password to the world.
The Challenge
The homework for this episode is to run through your application and make it production-ready. Follow the recommendations here and in the episode to add those finishing touches to your work. We are almost done with your commercial software and ready to “ship” our product so do not cut corners this close to the end. Good luck!