I believe that every developer is using some kind of source control software. Be it distributed source control like Git, Mercurial etc. or centralized ones like SVN, TFVC and Perforce. If you are not using source control (why?) or if you don’t know what I am talking about, please read this – Why should I use version control?.
Proper use of source control software is essential to software development and yet few software shops practice it correctly. This is because writing code is seen as the primary task and correctly managing the process of writing code is a secondary concern. This prioritization is correct to some extent and does make business sense. You need to ship on time and ship with new features. There’s no luxury to ask the customer to wait just because you want to sharpen your metaphorical developer axe. Usually, a developer will finish working on a feature, check in all the files that have been changed and then forget about it.
Granted, in most enterprise development environments, where time is limited and developer focus is on feature delivery and bug fixes, you don’t normally have the luxury to worry about readability, loose coupling, maintainability and performance of your code when the business user is breathing down your neck to release the next feature. But let me show you why it is worthwhile to focus on what you check in and how it will save you time in the long run. Continue reading The Professional Developer Series #1 – Source Control Discipline