Journal Articles

CVu Journal Vol 32, #2 - May 2020 + Journal Editorial
Browse in : All > Journals > CVu > 322 (9)
All > Journal Columns > Editorial (221)
Any of these categories - All of these categories

Note: when you create a new publication type, the articles module will automatically use the templates user-display-[publicationtype].xt and user-summary-[publicationtype].xt. If those templates do not exist when you try to preview or display a new article, you'll get this warning :-) Please place your own templates in themes/yourtheme/modules/articles . The templates will get the extension .xt there.

Title: The Story of Code

Author: Bob Schmidt

Date: 04 May 2020 18:30:37 +01:00 or Mon, 04 May 2020 18:30:37 +01:00

Summary: 

Body: 

Over the last several years the tools for revision – or version – control have grown enormously in sophistication and features. It’s been a core tool in most software development teams I’ve encountered in … however many years it has been. I still occasionally encounter places that don’t use version control for their software – and even people who seem not to know what it is! – but it seems to me that the free and straightforward availability of facilities like BitBucket and GitHub is causing popularity to grow. Why is version control important? What’s it for?

Most developers I speak to have much the same response: that it’s a safety net. If you make a mistake, like accidentally deleting all your code just before accidentally pulling the power cable out of your machine, you can revert your changes from the version control system. It’s a kind of ‘global undo’. An extension of this is that if you discover a problem introduced by a change in the past, you can revert to a previous revision.

Another common response is that it provides a well-known ‘golden source’ of a particular stable state of the code. Coupled with a suite of unit tests, if commits to the version control repo are made only when the tests pass, then each version is a snapshot of a known good state. If you make changes that cause the tests to fail, then your search area is reduced to only those changes since the last revision. Along the same lines is that a software release is pegged to a specific version, so that you can always re-create exactly what went into a release.

Both of these are focused on the technical benefits: for the code, or for the released product. My view is that version control is most important for the people that use it. This is particularly true on a shared codebase: if I pull the latest version of the code, I can see the changes made, who made them and why, if the comments are any good. A version control system is a channel of communication. It’s so much more than a global undo. It tells the story of the code.

Notes: 

More fields may be available via dynamicdata ..