|
|
|
|
|
by edejong
2824 days ago
|
|
> Software that is used, changes, Yes, but... A good model can support larger changes than a bad model. For example, a well designed relational model can support iterative change better than a slapped together system using CSV. So does a system that supports a consistent mental model for the end-user. This is the fundamental skill: abstraction. To find the right abstractions, sustaining simplicity while opening up ability to change is an extremely difficult and hard-fought skill. Unfortunately, due to a constant influx of new developers, its value is underappreciated. Requirements for this skill are (non-exhaustive): excellent communicative abilities, combined with a predilection for logic reasoning, good technical understanding, some psychological understanding and perseverance for when a model proves unsuccesful. From my experience, the best systems we have designed and implemented started with long sessions at the white-board, often followed by some tech 'spikes' [1]. [1] https://en.wikipedia.org/wiki/Spike_(software_development) |
|