all bits considered data to information to knowledge


CSM Feature to Price Comparison

If there is a single criterion distinguishing professional software developer from a hobbyist  this would be Version Control system use. And one does not have to break a bank to do it, there are systems to fit every budget...

The following chart put together by Reliable Software plots VC/CSM systems' features against licensing costs in a very persuasive way (take a look at an exhaustive breakdown of features by product)

Another in-depth resource:

Also you may want to take a look at the Wikipedia article for broader spectrum of available products.


Prescription for Healthy Code

The following is a PDF version of the presentation I gave in October 2009 at an event organized by  Software Association of Oregon.  It outlines general principles of creating software quality culture for the development team, as well as lists specific examples of tools and processes available:

Prescription for Healthy Code

Here are an absolute minumum without which any software development effort  becomes amateurish:

  1. Thou shall not develop without version control
  2. Thou shall not develop without issue tracking system
  3. Thou shall perform code and design reviews
  4. Thou shall use patterns and frameworks

These apply to professional software development regardless of methodology, technology and acquired tastes. As highly recommended come these (in no particular order):

  • Unit testing
  • Coding standards
  • Continuous integration
  • Automated testing (functional, integration etc)
  • Developer documentation compiler
  • Coverage analysis
  • Refactoring tools/frameworks


Introduction into Test-Driven Development
TDD in C# with NUnit
Best practices for test-driven development [examples in Java]