upbeat.it

by Cesare Rocchi

No SCM

by Cesare Rocchi

I am not using a Source Code Management (SCM) system for my products, neither for AppVersion nor for Podrover. People look at me in a weird way when I say it. Here’s why.

  • It’s just me. I am the only developer. There’s no need of sharing the code base with somebody.
  • I save some time. Maybe not a lot. Maybe ten minutes a week. That’s a work day a year.
  • My Toolbox is leaner. Why carrying a tool that you don’t need?
  • I don’t have to fear merge issues. I always commit to master :)

I am not a cowboy programmer living in the far west though. I have pretty strict rules:

  • archive the code base once a day
  • multiple backups
  • if I start a new feature I finish it, then ship it. There’ no branch-and-roll-back because-I-don’t-have-time
  • same for bug fixes. Get it done and then push it out
  • keep previously deployed version handy, in case something goes south during deployment
  • always shoot for idempotent deploys
  • I have a crystal clear idea of what I am working on. There’s no switching between feature and bug fix branches. I work on something until I am done.
  • I always work on something small. I have at most 2-3 files open at once. If I have more it’s usually a red flag. It might mean that I am working on two tasks at a time or the task I am working on is too big because it requires me to change too many files.
  • I am conservative. If I am bringing on a new lib I explore it and make it work in a playground project before including it in my code base.

Of course if you are part of a team it is mandatory to use a SCM system. There’s probably now way around it.

I feel kinda lucky to be in this situation. Especially because I skip right away potential issues related to merging.