A recurring problem in software application development (and in most other industries, I’m sure) is that customers expect SBEs to commit to a hard cost and delivery schedule without complete agreement on what’s to be delivered.
In the past, we agreed to unrealistic demands and expected the staff to deliver—without involving them in the commitment process. Projects were routinely behind schedule and engineers worked extra hours to meet the deadlines. Both employee and customer satisfaction suffered.
So we decided to end the practice of imposing arbitrary and unrealistic deadlines: We make sure our engineers have the skill to make a plan and the conviction to defend it with customers and management, and our management supports their decisions while still ensuring an aggressive plan. Now all commitments are made with the participation of team members, and plans are based on historical data for a more accurate schedule.
Now, our company culture is based on mutual trust between managers and the development team, not on unrealistic expectations. And we’ve achieved outstanding results, consistently delivering substantially defect-free software at predictable costs and on schedule. Our average schedule deviation during the past 15 years is significantly better than the industry average, and our Employee satisfaction is better than ever with zero voluntary staff turnover on our recent multi-year projects.