Refactoring architecture seems expensive and dangerous, but why do you encourage it?
We encourage emergent architecture because emergent architecture must work in the real world every single day. Everything works in a solution architecture document and so many times what organizations will do, under this heading of being risk adverse, is they will spend weeks or months building out these huge architectural documents that go through reviews and approvals. The only problem with that is–it’s all guess. Nobody knows whether it’s going to work in reality until we actually engineer the system against that architecture and we validate it. What we always tell people is I’d rather have you engineering on reality than having you design on guesses. Many times organizations are spending way more time and money in analysis than they’re ever spending in refactoring itself. We go into organizations every day that are more than happy to spend three months on analysis, and they’ll fight us tooth and nail on doing three weeks worth of refactoring, I have to educate them on that all the time. Think about that–think about it quantifiably–what is that costing you?