When building a software system, engineers recognize three fundamental truths:
All software has an architecture, whether it is designed and imple...
For further actions, you may consider blocking this person and/or reporting abuse
System architecture is the result of bad experience. With every project your experience grows, so it is no wonder architecture is evolving.
For a young developer with very little experience, the shifts will probably be larger than for an experienced one. But some day you may find, that times have changed and your "do it again, Sam"-experience is not useful anymore. Then it is time to go shifting...
Good point. The experience of the engineering team building the system is a factor (among the others) that affects the degree to which they will experience drift.
But I also think that it's very difficult to account for every future requirement, technology shift, etc. and so system evolution is inevitable regardless of experience. 😊
Completely agree - sometimes this can even be architectural infeasibility, when skillsets or culture are not up to the planned solution design, and something needs to give.
One technique that can help is to use architecture decision records. You can even start using them to record previous decisions - @tekiegirl wrote about that recently. User stories and other written up collaborative techniques can help too, but tend to focus on the user-visible aspects, as opposed to why and and what for from the system's perspective. They can improve the decision due to consultation and discussion but are a poor place to store your architectural designs!
That's a great comment - I'm a huge fan of ADRs! Recording why you took a specific system decision and what trade offs you considered (and accepted) is critical when looking to evolve the system.
However, I think ADRs are affected by similar issues that Docs suffer from: they are not always systematically created during the development process, they are mostly manually, potentially fragmented across multiple sources and require lots of maintenance. That's all to say, that alone they don't solve the underlying problem 😊
Good article, thank you.
Thank you for checking it out!