Strive for focus & simplicity
I believe that one of the reasons why companies fail is a lack of focus and fear of simplicity. They focus on too many things at once. Have too many customer-specific features and processes. Want to squeeze a dollar from every opportunity possible, not realizing the incurred debt.
Doing everything yet doing nothing properly.
I believe this is a road to disaster.
I have seen this multiple times.
Processes get complicated. IT development slows down. Products get harder to understand. More people are needed to handle the newly created complexity.
Example 1: Building a generic solution instead of pushing for simplicity #
Once, my team was given a task to build a generic pricing rule engine. The engine was supposed to support all the current and legacy business deals. Since the company had been lacking focus, the pricing had gotten out of hand. It got so complex that there was only one person in the whole company who understood the pricing intricacies completely. He tried to explain it to us many times, but the complexity was overwhelming. There were exceptions everywhere.
We should have paused and not ignore the quenching. We should have pushed back to remove as much exceptions as possible. To simplify our pricing model.
This way, all parties would win:
- Pricing would be easy to explain and simple to understand.
- Bus-factor would increase.
- Development would be quicker.
- Processes would streamline.
Instead, we have built the engine. It sure brought advantages. However, I believe that removing the root cause would bring benefits of another level.
Example 2: Expanding B2B product with B2C capabilities #
Another time, another team. We were given a task to expand our B2B platform with B2C capabilities. The overlap between B2B and B2C features were minimal. The B2B platform was hardly stable.
We followed the thirst. Again. And things got very complex very quickly.
We were very slow. Discussions. Hacks.
It felt like fitting a circle in a square.
Instead, we should have focused on two things: polishing the B2B platform and start a green-field B2C product.
- The development would be faster
- Our end-users would understand the products easier.
- We would end up in two loosely-coupled yet highly-cohesive products.
- Oh, and we would enjoy the hell out of it!
Strive for focus and simplicity #
Choose one thing and be the best at it. Stop marginal legacy business lines. Refuse niche requests from small customers. Simplify as much as possible.
Only when the product is saturated, expand. Do it with sharp focus. Create another product which will be the best at what it offers.
Simplify and keep focused!
This blog is written by Marcel Krcah, an independent consultant for product-oriented software engineering. If you like what you read, sign up for my newsletter