5 Ways Designing An Algorithm And Developing A Business Are Identical


This summer has turned out to be far more productive than I expected. I have had the chances to meet and talk with many professionals in my fields of study and learn about what it takes to get my foot into the door. Studying Computer Science and Communication in college, I discovered that there is a position in the tech world that marries both of my qualifications: Product Manager. A product manager is responsible for making sure that a team ships a great product and gets to sit at the intersection of technology, business, and design. It is also a highly collaborative role as the product manager serves as the main liaison between the engineers and other roles (quality assurance, user research, customer support, biz dev etc.). For me, the combination of technical abilities (product-focused) and management/communication skills (business/customer-focused) sounds very appealing.

Now you may think these two areas of development are distinct from each other. However, the more I delve into them, the more I see the correlation and similarities. I came up with this derived conclusion:

“The corollary between developing a business and designing an algorithm is strikingly close.”

How so? I am currently reading Gayle Laakmann McDowell’s “Cracking the Coding Interview” to practice solving programming questions. In the book, Gayle mentions the 5 approaches to solve a tricky algorithm problem. They include:

Approach 1 — Examplify: Write out specific examples of the problem and see if a general rule can be derived from there.

Approach 2 — Pattern Matching: Consider what problems the algorithm is similar to and try to modify the solution to the related problem to develop an algorithm for this problem.

Approach 3 — Simplify and Generalize: Implement a multi-step approach:

  • Change a constraint such as the data type or amount of data to simplify the problem.
  • Solve this new simplified version of the problem.
  • Once we have the algorithm for the simplified problem, we generalize the problem and try to adapt the earlier solution for the more complex version.

Approach 4 — Base Case and Build: We solve the problem first for a base case (n = 1) and record the correct result. Then, we try to solve the problem for n = 2, assuming that you have the answer for n = 1. Next, we try to solve it for n = 3, assuming that you have answers for n = 1 and n = 2. Eventually, we can build a solution that can always compute the result for N if we know the correct result for N — 1. This approach usually leads to natural recursive algorithms.

Approach 5 — Data Structure Brainstorm: Simply run through a list of data structures and try to apply each one (linked list, array, binary tree, heap etc.) This approach is useful because solving a problem may be trivial once it occurs to use something obvious.

Now what? How does developing a business have any common things with this complex, algorithmic, technical descriptions I just outlined above? Let’s go through them:

1 — Examplify: This approach is very similar to doing Customer Discovery. While running a business, you have a customer segment. Customer discovery is the process of talking to your customers, identifying their problems, categorizing their experiences, and looking for insights. While doing the Zillow challenge for Koru last June, I had to go through the exact process of cold-calling real estate agents (Zillow’s direct customers), seeking their pain points, and building personas for different types of agents.

2 — Pattern Matching: Finding patterns? That’s all about Competitive Intelligence. Strategic planning for your business requires finding competitors in the same / similar industries and evaluate their growth, market fit, products, funding etc. Last week, I did a small market research assignment for Poachable, a Seattle-based startup for passive job seekers. The assignment requires looking at Poachable’s competitors and compare them based on capital raised, media mentions, and PR metrics. Definitely a good learning experience.

3 — Simplify and Generalize: So this approach asks you to change a small constraint to simplify the problem. Similarly, you can solve a business problem simply by twisting a feature, adjusting a few metrics, or modifying some content. Why? Because intersection happens at the intersection of many disciplines. The book “Business Model Generation” shows an example of how Nintendo’s Wii twist its business model to compete with Sony’s PSP / Microsoft’s Xbox and disrupt the hardware game industry. While Sony and Microsoft only make high performance consoles targeting at the hardcore gamers, which result to a loss at hardware sales; Nintendo widens their customer base by targeting the more casual gamers and building family-friendly consoles, thus making profits from hardware sales.4 — Base Case and Build: This is a form of recursion, a fundamental concept in computer science. In business, that very much resembles Rapid Prototyping — the process of quickly mocking up the future state of a system and validating it with a broader team of users, stakeholders, developers and designers. Tableau and Slack are the principal examples of that. In a world of big data and mass communication, their products are valuable to any business and team setting. Therefore, one of their main focus is to constantly expand the audience target. Doing this rapidly and iteratively generates feedback early and often in the process, improving the final design and reducing the need for changes during development.

5 — Data Structure Brainstorm:This one is rather obvious. In order to build a successful product, you must have the acumen to look at all possible options for growth and evaluate them based on desirability, viability, and feasibility. In his book “The Hard Thing About Hard Things”, Ben Horowitz tells his story about running Opsware. In looking at different exit strategies for Opsware, he considered these three options: 1> Going public (IPO), 2> Calling it quit (Liquidation), 3> Getting acquired (Acquisition). Evaluating all the decisions, Ben was able to successfully unload Opsware on Hewlett-Packard for $1.65 Billion in cash.

That’s it! Long post, but I hope that these 5 comparison analyses are enough to convince you that running a business is just like solving an algorithmic problem.

Now, I’d love to hear from you. What other analogies you can think of when it comes to developing a business? Share your comments below.

James is a junior at Denison University studying Computer Science and Communication. He completed Koru’s career bootcamp in Seattle over the summer of 2015, and currently dedicates his time practice programming and studying business models. He aspires to get a product management internship for summer 2016 in the San Francisco Bay Area.

This article was originally published on his Medium page.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s