In IT product development versioning calls to a certain paradigm that is often underestimated by programmers on even team leaders (seen it) - the power of predictability.
Remember, there is always someone waiting for your code. Associating versions with time (like in SCRUM sprints) gives the programmer and the client a common way to express the readiness of a particular piece of logic and not that a simple date wouldn't be enough, but there is a bit more to it.
There are some basic versioning perks that you might want to take advantage of. For instance combining a time period with a version eg.: each 0.1 is a 3 week sprint gives us has:
PROS:
- gives a common time factor variable associated with development (from the clients pov) - so everyone knows when something is/should be/should have been ready
- when there are more smaller tasks in a given sprint, you are free to prioritize them as you find fit for the best result - no one tells you if something should be
- you always know how much time there is left for doing something - given that you know how long it is going to take
- you can easily plan ahead, knowing how much time you need for a particular task, just look at your project road map
- less deployment cycles give less space for error while updating production files/data
- less deployment cycles also creates a natural catching net for bugs - most probable that detected bugs are from the last sprint
CONS:
- the main problems are with getting clients to acknowledge some simple truths like "NOT EVERYTHING HAS TO BE DONE ON YESTERDAY"
- there is a real risk of thinking that we are lazy or just thinking of some "stupid academic stuff or suitable for real business" - just have to be as eloquent as possible, explaining that its the best (cheapest) solution possible and will save money (that's the keyword here)
- big risk of hot fixing - everything is starting to be a high priority hot fix for the client
- in some development cycles, where the clients are responsible for quality, you will need to take them into account in the versioning strategy
With the right set of people and a little time, versioning is a great tool for making development and maintenance of software much easier and more reliable.
more on this : wiki page
Hope it's been another inspiring piece of text for all humanity ;)
See you next time.
No comments:
Post a Comment