Architecture at different levels of abstraction
During this session, on of the things we talked about extensively was coupling. We looked at dependency maps for different architectural styles including the big ball of mud. We saw something like the following and almost everyone agreed, "That is a bad architecture."
- Are afferent coupling (inbound dependencies) and efferent coupling (outreaching dependencies) only important at a certain scale?
- Is it a matter of getting things done? We feel more productive when we are doing something, and reports suggest that individual teams are regularly delivering software at Netflix. (Are they delivering value?)
- Is it more obvious that teams are struggling to deliver value in a smaller scope? At a larger scope, we can see a lot of activity so the investment required to get progress seems more acceptable?
- Maybe we're impressed by the tooling that Netflix has created to manage this death star?
- In the end is this a case of bike shedding?