- Nail down my assumptions and their requirements
- Come up with a design to meet those requirements
- Translate the design into an implementation plan
- Put the implementation plan into a spreadsheet
- Make my best guess as to level of effort
- Have our project manager review my egotistical/optimistic assumptions
- Plug the estimated numbers into the spreadsheet
- Shrug and use the resulting dates and cost estimates
I have been on both sides of kitchen renovation and there are some similarities:
- the customer is always impatient
- the cost is hard to contain
- accurately imagining the outcome of decisions is an uncommon skill
- the concept of kitchen is well-known and well-understood by most people
- the elements of a kitchen are similarly familiar: sinks, cabinets, etc
- examples of kitchens one likes can be found
- in general the main user is also the main contact with the contractor
Thus we are linking industry standard system A (ISSA) to industry standard system B (ISSB): a piece of cake! Except....
- ISSA has over 1,500 configurable parameters (literally).
- ISSA was deployed almost five years ago and no one from that team is around.
- ISSA's configuration was in flux those first few years.
On the target side, ISSB is still being configured, so I am trying to hit a moving target. Which of the local idioms serve a higher purpose (so they will stay) and which of them were to compensate for issues with ISSA? No one knows. What new idioms will evolve to compensate for issues with ISSB? No one can even guess.
So this is like remodelling a kitchen if the counters used to be suspended from the ceiling but now might be cantilevered from the walls and the water might be replaced by steam.
How long will it take to keep rewriting the interface so that the new system's evolving configuration and the customer's evolving needs are all met? I don't know; I wish I did. In the meantime, my good faith best guess will have to do.