People told me that they liked the article about milestones, but they would like some more examples for what milestones can be used. So I have tried to summarize some example applications for milestones including the ones suggested in Melanie's and Christian's comments.
Let me first say that I am sorry that I didn't post for such a long time, but my company is "spinning" at the moment and I also had to manage some issues at home. I promise to try to better myself :-).
This said I hope that everyone now agrees that milestones are an important and very central concept in project leadership. The question is: For what applications do we use milestones in practice? I have tried to outline some of the most common applications:
- Monitoring overall project progress. For me personally, the monitoring of the overall project progress is still the most important application of milestones. A very common way to do this it to add a milestone at the end of every top level work package or phase. I do not completely agree with Melanie on this, since for me it is not the same whether the work package is complete or the milestone "delimiting" the work package. The major reason for this is that a milestone has the nice property of being either complete, or not; there is nothing in between. This makes it (at least in my opinion) a much better candidate for monitoring project progress, e.g., by using a milestone trend analyses (I will explain this in a future post).
- Summarizing important project dates. Christian suggested in his comment the practice to summarize all important dates in the beginning of the project plan in the form of milestones. I think this is a good idea, especially for large project plans which are primarily planned using schedules (GANTT charts). I never tried this out myself, but it sounds to me as if this approach could be used to reduce the scheduling complexity in projects with a long duration and multiple involved parties.
- Synchronizing concurrent projects. Another common application for milestones is the synchronization between multiple projects. This is a typical problem in the development process of a larger software product: You are facing multiple, concurrent projects, potentially even with interdependencies. An example of a milestone would be here, e.g., "Database prototype finished" which would be important for the user interface project which might need the database prototype in order to do some early stage usability testing. Without synchronization milestones it would be very hard to keep the development on a more complex product in sync.
- Customer or partner delivery dates. Sometimes you rely on an "external" date, e.g., a partner promised to deliver some component that you need at a certain date for final assembly of your product. Another example would be that a customer has committed him or herself to deliver some specification document until a certain date. Here it makes perfect sense to add a milestone for these dates and you should also show the plan with this milestone to the customer or partner. This will help you with argumenting if this date was not met and one of your delivery dates, e.g., to the customer slipped because of this earlier slippage. Please note that you can only do this if you had this external milestone in your planning, otherwise you might "know", but you will not have proof.
You might also have already concluded that a good way to find out whether you should use a milestone or an activity is by asking yourself a simple question: Do I need a concrete date in my project plan, or do I need a phase in time?
I hope that this answers some of your questions regarding the practical applicability of milestones. Maybe you can also think of other important applications for milestones? Your comments are much appreciated ;-).