One of the biggest challenges of big bang OSS project implementations is that all of the business value (ie the OSS and its data, workflows, integrations, etc) gets delivered at once, normally at the end of a lengthy exercise.
Ok, ok, so the delivery of value is not a challenge, it’s the implications of a big delivery of value that’s the challenge – implications that include:
- If the project runs out of funds before the project finishes, no value is delivered
- If there’s no modularity of delivery then the project team must stay the course of the original project plan. There’s no room for prioritising or dropping or including delivery modules. Project plans are rarely perfect at first after all
- Any changes in project plan tend to have knock-on effects into the rest of the delivery due to the sequential nature of typical project plans
- Any delivery of value represents a milestone, which in turn demonstrates momentum for the project… a key change management and team morale strategy
- Large deliverables represent the proverbial “pig in the python” – only one segment of the python (ie segment of the project delivery team) is engaged (hyper-engaged) whilst the other segments remain under-utilised. This isn’t great for project flow or utilisation
When tasked with designing a project schedule, I’ve noticed that many vendors tend to follow the typical waterfall delivery and corresponding payment milestones (eg. design, then build, then test, then deploy, then hand over). The downside of this approach is that the business value (for the customer) is delivered at the end of the handover (ie big bang). There’s no business value in delivering design artefacts for example – the customer can’t use them to perform operational tasks.
The model I prefer sees incremental business value being delivered such as:
- Proof of Concept (PoC) build
- Sandpit build
- Out of the box (OOTB) production build (ie. no customisations)
- End-to-end use case #1 delivery (ie. design, build*, test, deploy, handover)
- E2E use case #2 delivery
- E2E use case #n delivery
where build* includes incremental configuration, customisation, integration, data migration, etc.