@cakper Ooh, this is an amazing topic for discussion.
@cakper Basically, my position on this is: 1. Put time for up-front collaborative analysis to get to you a good starting point 2. Decompose to responsibilities considering 👆and coupling 3. Be aware of feedback loops and shorten them as much as possible
1/X
@cakper 4. Funilly enough, ime, the best way to respond to change is _not_ to prepare for it through abstractions \ structural decomposition etc, but to encapsulate behind stable behavioural contracts and do the simplest implementation behind those contracts
2/X
@cakper 5. If it's in the beginning of a company, change the way the company does finance. Replace financial profits with validated assumptions, and aggresively refactor towards those validated lessons. You have more lessons in the beginning than later.
3/X
@cakper 6. While there is a lot written about coupling, there is very very little written with a focus on behavioural coupling. It's not too difficult to change a contract of a service, and have the consumers change in response. Re-allocating responsibilities though...
4\X
@cakper ... is an entire different subject, and quite complicated. I don't have a solution to this, but one thing that helps is minimising the consistency boundaries, and putting some thought behind any process managers to orchestrate work across responsibilities that can more
5\X
@cakper 7. The only thing I do up-front is prefer async messaging if possible. It alleviates the need to know topology (who to call), and also async helps if some actions take longer.
6\6
• • •
Missing some Tweet in this thread? You can try to
force a refresh