Code reuse and integration
Hello there! I’ve had several different blogs in the past but have decided to start writing under my own company’s blog now too.
Today’s thoughts are about code reuse and integration. Anyone involved in app vertical development for the past several decades has thought about code reuse. It’s obvious to state that no one wants to reinvent the wheel but yet it has happened anyways.
Integration, whether it’s using DCOM, CORBA, RMI, SOAP, or REST is no different than classic app vertical development. It’s just code reuse on a larger scale with remoting technologies in between the relevant pieces of code. What has worked best for me over the years is to be open to code reuse rather than rigorously pursue it up front. When we try and “guess” up front, we’re often wrong about what will ultimately come in handy. The harder you try and grip something, the more it slips through your fingers. Instead, we should craft a system where we can develop systems and keep tabs on whether overlap is emerging. Then, we can reign in the overlap and extract out (aka refactor) reusable integrations.
How to accomplish this?
Most importantly, build communication channels in your organization so that people have a vague idea of what’s going on.
Use strong TDD (test driven development) and agile principles that ensure things stay working once you decide to refactor.
Use the tools available (RAML, Swagger, etc.) to document what you have and make it discoverable. Without #1 above though, this is only part of the solution.