The Need for Source Control
The Need for Source Control
Last week I’ve been at a customer.
The problem – non responsive UI since all the application run on the UI thread.
So I took a look at the code and…
I don’t like to tell about the horrible code I saw but to share a very painful problem I have seen.
Even though source control systems are very common, there are customers that can make you “shout” at them when you come to a consulting session. In this customer controlling your sources in a repository tool like TFS, SVN or VSS was a very unnatural thing to do.
They prefer to use the file system for versioning…
They have directories for every version they make…
The solution for the UI problem was very easy (just run the long processing in a background thread) but the remedy to the organization wasn’t so simple. Try to convince managers that the way they work is very unacceptable.
A lot was discussed about source control system and their crucial part in the life cycle of a project. When you start to develop, the code you are writing will refactor and change during the project life time. The ability to be able to change it without concerning about versions can make you more calm and happy. If you succeeded to wrack something you can always go back and take the previous version to continue from it. This safety net is very crucial when you start to search for some version which includes some code that was deleted by mistake or changed by another developer.
Also, you are not working alone. There is a team of developers that work on the same project with you. If every one of those developers will keep his/her source not in a shared repository but in his/her file system the project is doomed. Try to make a merge of source code between two developers that keep their source code of the same project and think about the headache it can cause. Now multiply the developers numbers…
you get get the point.
Once and for a while customers I’m consulting for can make me wonder how the hell did they make it with their development process or even succeed with their products. At the end, I succeeded to make the customer understand the problem of not using source control and hopefully they will integrate a source control in their project development process.