Try designing an enterprise production/distribution system where:
- set-ups must be minimized
- backlog must be minimized
- inventory must be minimized
- trucks must be full
- warehouse space is limited
- deliveries must be on time, but not too early
- sales people must have stock on hand
- plant absorption must be maximized
- bills must be paid on time
- down time must be zero
- working capital must be put to the best use
- stockholders must be satisfied
Say what you want about enterprise programmers, but they get stuff built that handles all of these while academicians screw around with linear algebra and OO castles for years.