Haven't posted in a while because we are in ship mode. Fortunately, it's not the 25 hours a day / 8 days a week no-sleeping no-eating ship mode, but it's hectic nonetheless. At the end, it always seems to come down to meeting a date versus delivering the quality that you want.
What's the best way to avoid problems?
- Work at a small company (or in a small group) so you can set your own dates. Large organizations tend to be top down and impose schedules without any idea of what is actually happening.
- When you start out, set the date based on what you hope to accomplish. Or, set the date first, then pick a feature set you can implement in the time available. Or, iterate back and forth. But, whatever you do, don't set them independently of each other. I know this isn't news to anybody reading this blog, but it still seems to get ignored a lot.
- Be willing to cut anything -- anything -- if you have to make your date. Even features that are almost done. You can always ship them later. If you have an immovable force and an irresistible object, the dev team explodes.
- Be willing to change the date if you can't get the quality you want (my wife and I slipped our wedding date because we weren't going to have the quality we wanted on the original date we picked).
- Stay calm. No matter what, you will be dealing with the issue at the end.