Kurt,
My recommendations are:
- Get an enormous whiteboard.
- Draw the system as it exists today.
- Pool the shared pieces, which we will now refer to as the core. You can put this in a circle in the center. The stuff that goes in the core is anything that is used by more than one of the separate pieces.
- Model the core as a list of inputs and outputs
- Separate the separate pieces (these should be their own app / system / whatever) (Bear in mind that there may be more or less than six of them)
- Model each separate piece as a list of inputs and outputs.
So, that should give you a pretty clear vision of the structure. However, time planning is another matter altogether, and something that I am not very good with myself. You may want to try something like this, however:
- Figure out how long it will take approximately to write the core. Now double that time. That's how long you should have budgeted to work on the core.
- Do the same thing-- including the doubling for each of the other peices.
- If possible, write it so that non-core pieces function independently of each other. This way you can do those sequentially.
Thanks for the feedback. My main issues are around time planning, as stated I don't have any issue with specs. My enitre office is a white board lol (I got whiteboard paint and painted the walls) , I like your idea of pooling them and think I am going to give that a try - atleast then it should give me a clear indication of when each feature needs to be written, I can then use the estimated time per feature to generate a timeline.
You got it!
That's the way to go, IMHO. Once you've got that central core built, adding the features onto it shouldn't be too tough. And don't forget to multiply by two!