Every software engineer who transitions into ML leadership makes the same mistake. They look at a model and think "it takes input, produces output — it's a function." And they're right. It IS a function. But it's a function that:
- Gets worse over time without anyone changing the code
- Produces different quality results for different subgroups of users
- Can't be fully tested with unit tests
- Has dependencies on data distributions, not just APIs
- Costs 10-100x more to run than equivalent business logic
That changes everything about how you design the system around it.