I consider myself still a novice programmer but I'm starting to develop and maintain applications with end users for the company I'm working for. We don't have a policy on version numbers and I'm looking for advice on when best to update them. I understand the major.minor portion is largely a judgment call. Am I right that "build" is increased every time a working build is made during development and "hotfix' is used when ever a hotfix or patch is rolled out?

Where I'm at, they seem to only really update the hotfix portion regardless of when the software is updated, we're talking v1.0.0.258 or v 1.0.1.98
I don't like this methodology especially since we have scheduled service pack dates of once a month, and have made somewhat drastic changes to the functionality and interfaces of some software yet, everything is still at version 1.0.x.x.

Anyone care to share any thoughts on how they update their version numbers or what is an advisable method?

Comments
Good question indeed.

Few days ago I came across some threads entitled "Best practices/guidance for maintaining assembly version numbers." and "Best practices for assembly naming and versioning?" from stackoverflow where I found MSDN article - When to Change File/Assembly Versions. I hope this article and comments will help you.

1. http://stackoverflow.com/questions/3768261/best-practices-guidance-for-maintaining-assembly-version-numbers
2. http://stackoverflow.com/questions/310226/should-net-assembly-names-include-a-version-number
3. http://stackoverflow.com/questions/199823/best-practices-for-assembly-naming-and-versioning
4. http://blogs.msdn.com/b/suzcook/archive/2003/05/29/57148.aspx

This question has already been answered. Start a new discussion instead.