3 ms·
I strive for the same thing, but every time surprising new requirements arrive, there's a good chance that the elegant architecture my team created is in confli
by hathawsh 2y ago
I strive for the same thing, but every time surprising new requirements arrive, there's a good chance that the elegant architecture my team created is in conflict with the design we now want. At that point, there is a three step process:
1. Design the new architecture.
2. Gain a full understanding of the existing architecture and all of its trade-offs.
3. Design a way to convert the old architecture into the new architecture.
This happens surprisingly often and it's quite unavoidable. In the past, I tried to avoid redesigning by building things that could be expanded in every conceivable way, but I discovered that over-engineering actually makes it harder to redesign. YAGNI wins!
I've been thinking for a while that a canvas-type editor might help a lot in the process of redesigning. It should help by taking better advantage of spatial memory.