Design for Complexity


Businesses are often more complex than they appear. There are distributed systems built on top of legacy systems built on top of databases that sit on top of mainframes. Often we are faced with interacting with multiple business owners, who have half the knowledge necessary to to understand what the business needs. Politics often make it so that the business owner communicates not what the business needs, but what the loudest voices want. This all breeds politics, and politics rarely leads to good design. So the process we follow must not ignore, but rather include the fact that business, much like people, are flawed. Design your process to address the flaws. When designing for complex businesses, we need to navigate, communicate and transcend this quagmire. Here is 2 cents.

1. Create relationships. Be bold, introduce yourself and make connections. Get one person to connect you to another person. Anything you accomplish will be easier if you have a good network.

2. Learn. It’s imperative that you understand what is going on, and quick. Ask questions, get documentation, and read read read. Remember school? What worked then should work now.

3. Get data. Your decisions are made best with data. Go back to your connections or make new ones, but you are going to need data to make your decisions and then to justify them.

4: Partner. Build a team or find one… you can’t do it all yourself. Make sure they have passion; and make sure you have passion.

5. Define. Now you have to make a different kind of connection: between what your learned about the business and what you learned from your data. Define the problem you are going to solve. And if you can tie it to financials, all the better.

6. Plan. Make one.

7: Compare. That’s right, see what others are doing, this is probably not the first time this problem has been solved.

8. Architect. Break it down to its smallest pieces and build up. All good systems start out simple.

9. Design. When you think you are done, you’ve probably just started.

10: Rinse and repeat. Seriously. Go back to step one. Make some new friends. Then learn something new. Get the latest data. Double check the problem. You get the idea.

11: Validate. Make sure you got it right. Test it. Then test it again.

12: Build. And improve. It shouldn’t look like your design, it should look better than your design. Things should get better during the process of construction, not worse.

12. Maintain.

Leave A Comment