As technology has continued to mature in the last two decades there have been many challenges overcome, obstacles faced, and solutions crafted. A recurring theme, in the area of obstacles (more specifically, self-imposed obstacles), has been the propensity for software companies to more often than not 1) turn to developing applications from the ground up for a particular problem or 2) take existing pieces of software that are perfectly fine for their specific use case and then tailor them to a different (but sometimes slightly similar) use case.
Software Algebra is essentially a best practice in software development to make sure that we are using 1) the tools best suited to a particular problem 2) while also dodging the trap of re-inventing the wheel by starting from scratch or trying to fit a tool into solving a problem it was never intended to address.
There are multiple cases in which this best practice is entirely ignored, most commonly so by inexperienced software architects who have the “my hammer can solve all problems” mindset. Often times, one of the best ways to avoid falling into this trap is to relentlessly focus on getting a Minimal Viable Product (MVP) out of the door in a time-boxed span of time and iterating multiple times on that MVP to steadily bring it up to support all use cases.
We recently spoke about this topic at the WebTech Conference in Washington, DC and will be doing so again on Tuesday, April 11th at 6PM at the University of Maryland Baltimore County, you can find additional details as well as register for the event here.