Rescuing your legacy database abstraction layer
As your project and codebase grows and matures, you often find that code you had written before just isn't supporting what you hope to accomplish now. At first it may be restricted to a few if...else blocks, but soon this grows to be entirely unmanageable and makes it difficult to adapt to support more complex database backends. With a full re-write difficult and costly to do in many cases, the next best approach is a step by step refactor.
In this talk, I'll talk about the experience's we've had here at SugarCRM as we are in process in a major database abstraction layer update. Will discuss why this is a good strategy in many cases, and how best to tackle such a project in discrete iterations.