I always have problems with configurations. I guess that mean I can’t work in an IT department or as an IT consultant. I don’t have the patience to seat down and try to figure out what does every parameter of a program, or an installation mean.
Anyway, this entry is not about what I don’t like. Rather, I want to write down how we keep track of releases code and installations here in Optimi. I’m not sure if this is a trade secret or not, so I’ll just brief on the process, and not diving into any details.
There’re lots of stuffs to be taken care of when we want to keep a software product growing. There are always multiple customers deploying different versions of your product at the same time.
So to keep track of the code, we use source control software. Here at Wizard team, we happen to use SourceSafe (Microsoft)–which is totally lame I know. I complained about this before, but nobody seems to care enough to make any changes. Anyway, we have a branch for each release as well as large feature (or fixes w/ many changes across the solution). This allow multiple activities to happen at the same time without corrupting the code base. All changes for older release (not Root) must be merge into Root later on at some time.
A lot of times, between major releases, we have to provide customers point releases (which normally don’t have its own branch). All the code changes that we The installation, however, have to keep track of the detail versioning. For example, we have in SourceSafe folder “6.5 Release,” “6.8.1 Release,” and “7.1 Release” etc… But in InstallShield, we have our version number like 7.1.4.0005 (5 is number of installs for that specific point release–which must be increased every install).
Side by side with source control, we have a bug tracking system that keep track of what’s going on with each fix/bug that goes into the code. I know there’re many system out there that integrate these two thing beautifully. But ours is a legacy, and it’s working so I don’t think we gonna change it any time soon. Here’s how it work: Everything is an incident (features, bugs, suspected bugs, enhancements, etc,…) and has a unique number. Every time someone check in code, they have to write descriptions that have this accompanied incident number. Also every “completed” incident must have a list of changed files made into code base.
Nothing spectacular I know, but just want to jolt down something to remind myself. See you–whoever you are–next time.