>For programmers like myself who serve the SMB market and rarely have more than one developer working on a single project, VCS is a needless complexity.
>Backups do the job.
Hi Bill:
I strongly disagree on that. I use VCS for all my personal projects on which I work alone, and making good use of VCS is one of the most powerful tools a developer have.
I give you some examples on my use case:
- If I want to add some new feature, I create a new branch and work in there, and do not merge it on main branch until it is finished or with some minimal testing
- Sometimes I want to work on different tasks (features) or even on features and bugs, then a make a new branch for working on the bug. When finished, I merge into main and then apply the fix to other branches
- I normally checkin code every time a get a minimal functionallity done, and if I make something wrong or I'm not sure what I've modified to get things not working, I just use the VCS to see the differences and in no time I can fix and continue
- I can take out a merged feature if I find that it is not really useful or if it make more trouble than good
- Because checking-in the code continuously while working, I have backups in time, every time
- I can tell you what code I've changed 2 years ago when added some specific feature
- I can go back to any point in time with a mouse click and analyze some changes in the code for doing better next time or for encapsulating code in a better way
- When someone send me code by email for fixing something or for a new feature, I create a new branch and upload the new code to analyze the changes visually
- I can keep going with many more things I do with VCS because it's one of the best things that happened to me as developer from the times that VFP 6 and SourceSafe.
- An anecdote: I've contributed with some code changes to some VFPx projects, and from one of them the project leader asked me if I did changed a specific line in code, because it was causing an error. Because I did used VCS for working in this project, I could check all my modifications with a simple code comparison and found that this buggy line was there from the beginning, so was not mine.
In summary, I'm in control of any aspect of the code I made, plus this way of working enables me to work with a team without changing habits.
All of this allow a great level of confidence with the work done, and this is invaluable.
How do you get all this adventages working alone without using VCS?
Fernando D. Bozzo
Madrid / Spain