3 ms·
Depending on what you're doing, the right decisions might only be visible in hindsight. To this point, you might scaffold out a system to get something running
by biocomputation 10y ago
Depending on what you're doing, the right decisions might only be visible in hindsight.
To this point, you might scaffold out a system to get something running and then incrementally / organically improve the system. I regard this as 'getting the system to the point where it can be dogfooded and/or criticized in a helpful way'.
At this point, despite what you might have running, it may be exceedingly clear that you should have used a different strategy. Maybe you like the overall results, but you need things to be implemented in a different way.
For example, I'm a C++ programmer. It's not always obvious at first that you need a specific set of virtual functions to make something work really nicely.
It's impossible to always know these sorts of things in advance.
- ben_jones 10y agoWhat if microservices are poorly architected such that they are actually coupled? It's worth thinking about such an outcome especially if microservices are being seen as a way of making dysfunctional teams functional.
- biocomputation 10y agoYou're right, I'm just saying that it's not always possible to see these problems in advance, and that it can be very difficult to try and get something done if you apply too many rules to a nascent system ( too many rules == design by committee ).
- Ericson2314 10y agoI assume you are saying this is why refactoring is so important? If so I absolutely agree. Designing good design/abstractions like anything else takes practice. Armchair critiques won't cut it. If one's unwilling to fix bad design once it's identified, they're not practicing good design, they're practicing cobbling together something on a rickety foundation. How's that going to help next time one rights something from scratch?
- biocomputation 10y agoYes, to me, 'software development' is 'refactoring', just like some authors say that 'writing' is actually 'rewriting'.