Client Flexibility Share Written By Russ McClelland Tags Cloud ArchitectureFlexibilityFuture-Proof 2022-11-08 "Everyone has a plan until they get punched in the mouth" - Mike Tyson Building software involves coding algorithms and processes in systems which, hopefully, capture, simplify, and automate your customer's business processes. New SaaS platforms often start with inspiration from a founder that understands the industry. As the new platform is built, business processes are automated based on that understanding, and are often inflexible. And then your platform meets its first customer. That customer works in a slightly different way. Or they have some thresholds that don't make sense to the hardcoded thresholds in the platform. Maybe they are part of a larger company that owns several locations which they want to manage together; or worse: separately. The business world often resembles a game of Monopoly. Companies acquire locations or divest locations. SaaS platforms need mechanisms to quickly add or remove these locations from the holding company without disrupting the remaining portfolio. To solve these issues, logic becomes riddled with conditional logic and the platform takes on scores of new configuration settings. Each of these help the platform meet the needs of another set of customers. However, they add additional complexity and hundreds of test cases which need to be managed. These challenges face B2B platforms every day. Implementing the right design patterns in the right places to solve these problems will help "future-proof" and extend the life your platform.