is that you never know if the programming and design decisions you're making now are accidentally going to define and constrain decisions you make multiple years down the road.
(And anyone that says "oh you should just start from a fresh code base between prototyping and production" should try prototyping 3D networked multiplayer games for months and then tell me they're going to rewrite all the work they just did from scratch so I can laugh at them.)