Hacker News new | ask | show | jobs
by 1propionyl 636 days ago
> Through experience I believe you need to strike a balance, if the project is in fluid motion you do need to care more about easiness of change until it settles but separating the actions (representation of a full fledged entity vs representation of a request/action to create the entity, etc.) is not a huge overhead given the benefits down the line (1-3 years) when the project matures. Balancing this is tricky though, and the main reason why any greenfield project requires experienced people to decide when flexibility should trump better representations or not.

I am in complete agreement, and this is why experienced architects and project managers are so key. Effective software architecture has a time dimension.

Someone needs to have the long term picture of how the architecture of the system with develop, enforce a plan so that the project doesn't get locked into or cut by early-stage decisions long term, but also doesn't suffer the costs of late-stage decisions early on, and manage the how/when of the transition process.

I think we could have better tools for this. Some of them in libraries, but others to be effective may need to be in the language itself.