I've been working on the Statement of Work (SOW) for the new project I am involved with. The client is looking for a lot of detail. Initially, I shared my concern about putting too much detail in this document so early in the project. We discussed the fact that we will learn a lot as the project progresses and the SOW could become severely out of date.
It felt like I would be wasting a lot of time on the details. I've decided, however, that there are some advantages to this work. First, there have been some new discoveries. This project has a fixed budget and fixed time line. So, identifying more about the project up front is helping us to determine what we can put in the scope and what will have to wait. Certainly, this will change as we go, but it is nice to have a better understanding of the scope. Second, as part of Iteration 0, we can use this information to get a rough idea what the overall architecture will be. Now we know what type of servers we are going to need and a rough idea what services we may need to build. Who knows, maybe I will discover other advantages later.
Ultimately, I still think we put a bit too much in the SOW, but it may have been worth for the advantages we gained. The question I am asking myself now is, "Where do you draw the line when composing a SOW while keeping inline with Agile principles." This is something that will require more thought, research and experience.