Wednesday, November 24, 2010

Will the TSA bodyscan programmers? All about atomic subversion

I have previously observed that acronyms can lead to confusing misinterpretations. But sometimes you don't need acronyms - words themselves can be confusing.

Take the title of this blog post - Atomic Coding with Subversion.

Is this some nuclear plot by al-Qaeda? Will the people promoting this be subject to full body scans (or overly enthusiastic pat-downs) from the U.S. Transportation and Security Administration?

It turns out that the "Subversion" in the title should be interpreted as two words - "sub" and "version." Subversion is a method to control versions of software code. Here's what the blogger, TAW, said about it -

Back when everybody used CVS, I viewed revision control as necessary evil - CVS was getting in the way more often than helping. It all changed with Subversion. It's not perfect for every possible development model, but for personal repositories and small teams it's simply awesome.

And no, CVS is not the pharmacy - it's a versioning system that predated Subversion.

But what in the heck is atomic coding? Back to TAW:

I want to say something about Atomic Coding. The idea is basically committing (to the branch you're working on - usually the main branch) as soon as you have a complete change, no matter how small.

You've written a single unit test ? Commit. Made one unit test pass that didn't ? Commit. Changed README file ? Commit. Fixed a typo in some comments ? Commit.

Breaking your work into small pieces is one of the most fundamental ideas in productivity ever. Programming han Unit Testing, project management has Getting Things Done's Next Actions and so on - they're all about breaking big and complex things into small and simple ones.

It's pretty straightforward to apply the same principle to repository management, but it's much easier to talk about something when it has a name, so let's refer to it as "Atomic Coding".

I don't code, but I write, and I do save drafts of my blog posts as I write them. But I don't save them after every word.
blog comments powered by Disqus