I think that each of these actions could easily fill more than a book, but I'll try to share some of my thoughts, in no particular order.
- Choose the right people. As I already quoted elsewhere, blockheads will never produce good code. I know it might sound nasty, but that's how it works.
- Build a team with the people you chose. That means you must end up with something which is better than the sum of the parts.
- Respect your team, don't enslave them. Trust them to be able to deliver if they commit to. Happy and motivated people always perform better.
- Go agile. Waterfall is one of the worst causes of software project failures.
- Protect your team from external influences. Once the goal for the iteration is fixed, stick to it (hey, have not you gone agile yet? didn't you read the previous item?).
- Deal collaboratively with the customer, do not drive the hard bargain when you negotiate but look for a win-win situation. Involve him, involve him deeply, involve him early.
- Often show your team's progress to the customer, and involve him in acceptance testing.
- Avoid WBSs, plan by features. Let the team manage the WBS internally and only discuss the features with the customer.
- Always communicate clearly the status of the project. Bad and early informations can become opportunities, bad and late informations only reveal a death march. And it will be too late to avoid it.
- Plans are nothing, but planning is essential. Adapting to new informations is much better than sticking to a plan which, in the end, will satisfy nobody.
No comments:
Post a Comment