Releasing too often !
One of the principles behind Agile manifesto says “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software”.
I have underlined the word “Continuous Delivery” and “valuable software”. If the software being delivered is of not much value then there is no point in releasing it. Delivering a software is a strenuous task.
It includes activities starting from verifying the functionality getting released, regressing the functionality which is already implemented, preparing release notes and doing installer testing. These things form a part of the Test plan. Apart from Test plan, we also need to prepare a Rollout plan which will take care of how the build will be rolled out to potential users. This may include disabling it for some users and enabling it to only a smaller segment of users for a quicker feedback coming in a controlled manner. Also the rollout plan take care of way of distributing software. Another planning item which is commonly ignored is Backout plan. What if we find something critical not working, what if the installer testing fails. For each and every release we plan , we should prepare a back out plan in case if something fails unexpectedly.
So what I wanted to highlight is that the continuous delivery comes at the cost of above mentioned activities which consumes quite a significant amount of time. So if we as a part of Software development team is not adding considerable value to the software then there is no point in Continuous delivery.
I understand your point of view here, but I think you might also want to point out some must-haves for continuous/frequent delivery like functional tests/automation and planning etc. without which you fall into your current predicament.
Isn't the point of continuous delivery that you aim to make releasing software no longer a strenuous task?ReplyDelete
It's also worth mentioning that usually when people talk about continuous delivery they're not necessarily saying you release every day/week/etc. but that you are able to release if required.
@Runjan: Absolutely right! There are some must haves for continuous delivery or for even implementing any software development methodology. The point I wanted to make is we should not mistake "Continuous delivery" with "releasing too often". You rightly pointed out that we land into such situations when we leave some basic must-have like good smoke coverage, regression suite which reduces the amount of QA effort to test the build going out.ReplyDelete