Monday, March 24, 2014

Source code control is like turn signals

Everyone has access to the tools, but most people use them wrong! A brief example - when people are on the on ramp and need to 'merge', they put on their turn signal. They aren't changing lanes, so what's the point?  And that is probably the last time they use their signals, including when they exit the highway. This is the most critical time to use them, to indicate to drivers behind you that you are likely to slow down in the travel lane to reach the exit ramp speed.

Anyway, source code control is misused just as frequently. We all have seen the application with design elements named 'Copy of...' or worse 'Another Copy of...'  We also have seen design elements with a date after them. This is NOT source code control. Go to you primary business application and click on the Create menu item. What do you see? Artifacts that some developer forgot to click the do not show in create menu box. How about the Actions menu item? How many actions show up that you wouldn't want a user to try? How about View, then Go To...? All of those 'extra' views get indexed, taking up resources - both CPU and disk space. Multiply that by the number of replica copies and you get the idea.

Now, knowing that I was a Technical Director at Teamstudio, you might think I would be advocating for a source code control system like Teamstudio CIAO, but you'd be wrong. That is an excellent tool but it is misused as much as turn signals! One of the things CIAO provides is design element locking. These days, that is less of an issue because of the decline in the number of teams of developers. And how does this get misused? Check out a design element and never check it in! You get no history of the changes you make along the way, so no real benefits.

Maybe you prefer an open source product like Git. That's great too, but you have to configure it and use it.

All I'm suggesting is something as simple as making a design only copy of the database before you start making changes. Now you can just make your enhancements because you now have snapshot of the design elements before you started making changes! Even better, this can be reduced to a single button that also stores the copy in a database, getting it out of the file system in the process.

If you want to know more, contact me. My email these days is at

No comments:

Post a Comment