You have a problem. You: Ah! I know! I use a distributed system. Now you still have a problem, but you no longer know where.
I hear two main objections/concerns about refactoring: safety and cost.
I feel like this is already well-covered ground. We already know never to rewrite from scratch. The demise of Netscape has been discussed thoroughly. So I’m only going to be able to add a little.
A tale as old as XP…
When Safeguarding we want to reduce the size of a genus of bugs by 15% each time. So what makes a genus of bugs?
At Tableau we use the term “Safeguarding” to describe a particular way of reducing future defects by learning from past defects. Arlo described it in a parable. Here’s my current concrete understanding:
My current understanding of Disciplined Refactoring is that it combines:
(Reposted to improve formatting).
This week we ran a #mobprogramming session with 35 people. Here are some notes about how that went:
I use Ports-and-Adapters to abstract away my application’s interactions with external systems. I bend the dependency’s interface to the shape that I want for my domain. This makes it easier to think about my code and to unit test it.
This uses Jekyll Now to give me a no-administration, code-friendly blog. I love the combination of Markdown + Git.