Isn’t it funny how we need to be reminded of the basic principles of software engineering on a fairly regular basis? Here is a simple test that I think 100% of you will get right, but we tend to fail it in the real world 9 times out of 10. Which is better:
-- or –
Clearly, B is better. It saves all that time and resources and quite possibly it makes you able to ship sooner with better all around quality. Some folks would like an option “C” where we don’t cut the feature at all… Well, that is just not an option. If your experience with software projects has been anything like mine you know that you have to cut to ship. I have worked on zero software projects that we didn’t have to cut something to make the date – oh, that is not right… I guess there were those projects that never shipped ;-).
Now there is some pretty standard pushback to this line of thinking, let me deal with a couple of them:
Cut early, cut often... Don't wait for it to be too late to mater!
What are your thoughts? Have you worked on software project where you didn’t cut soon enough? What would you do differently?