What do you do when practical problems get in the way of practical goals?
- by P.Brian.Mackey
UPDATE
Source control is good to use. Sometimes, real world issues make it impractical to use. For example:
If the team is not used to using source control, training
problems can arise
If a team member directly modifies code on the
server, various issues can arise. Merge problems, lack of history, etc
Let's say there's a project that is way out of sync. The physical files on the server differ in unknown ways over ~100 files. Merging would take not only a great knowledge of the project, but is also well beyond the ability to complete in the given time.
Other projects are falling out of sync. Developers continue to have a distrust of source control and therefore compound the issue by not using source control.
Developers argue that using source control is wasteful because merging is error prone and difficult. This is a difficult point to argue, because when source control is being so badly mis-used and source control continually bypassed, it is error prone indeed. Therefore, the evidence "speaks for itself" in their view.
Developers argue that directly modifying source control saves time. This is also difficult to argue. Because the merge required to synchronize the code to start with is time consuming, across ~10 projects. Permanent files are often stored in the same directory as the web project. So publishing (full publish) erases these files that are not in source control. This also drives distrust for source control. Because "publishing breaks the project". Fixing this (moving stored files out of the solution subfolders) takes a great deal of time and debugging as these locations are not set in web.config and often exist across multiple code points.
So, the culture persists itself. Bad practice begets more bad practice. Bad solutions drive new hacks to "fix" much deeper, much more time consuming problems. Servers, hard drive space are extremly difficult to come by. Yet, user expectations are rising.
What can be done in this situation?