Five Ways AI Projects Differ from Software Projects
1. Accuracy is not binary
Traditional software features either work or do not. AI features work to a degree. A document extraction system that is 87% accurate is not "broken" — it may be acceptable for some use cases and unacceptable for others. This means success criteria must be defined as thresholds, not binary pass/fail, and the team needs a plan for improving accuracy incrementally rather than fixing a bug.
2. Data quality is a dependency that is often discovered, not specified
Traditional software can be built against a data specification. AI systems often discover data quality problems during development that were not visible during scoping. The data that exists in the organisation is frequently inconsistent, incomplete, or poorly formatted in ways that only become apparent when the AI tries to process it. These discoveries are not scope creep — they are inherent to the project and need buffer in the plan.
3. Models change under you
LLM providers update base models, change pricing, and deprecate API versions. A system that works well on GPT-4o today may behave differently after a model update. This adds ongoing maintenance requirements that traditional software does not have: regression testing after model updates, prompts that may need adjustment, and evaluation infrastructure to detect behavioural changes.
4. The output space is not fully enumerable
Traditional software can be tested against all specified inputs. AI systems have an effectively infinite output space — you can never test all possible inputs or outputs. This means quality assurance requires statistical sampling, evaluation sets, and ongoing monitoring rather than comprehensive test coverage.
5. Iteration is the process, not a sign of poor planning
AI systems are developed through iterative refinement — build a version, evaluate it, identify failure modes, improve. The first version is not a deliverable; it is a hypothesis. Planning that does not account for multiple evaluation cycles and improvement iterations will always run late.