A strategy is like designing and throwing a bunch of punching combos: where is the enemy? Where to punch? Where NOT to punch? How to punch? How does your first punch help the second and third ones?
The key idea of this book is the kernel of good strategy.
Kernel of strategy = diagnosis + guiding policy + coherent actions.
A good strategy is surprising but reasonable. For example, when Steve Jobs returned to Apple, he cut the product lines to a few profitable ones. When asked how to compete against the Wintel standard, he just smiled and said, “I am going to wait for the next big thing.”
Another example is Desert Storm. While the media exposure was focusing on the main troops moving slowly in the frontline, another group of military force was moving across the empty desert of southern Iraq as a “left hook.”
Doing everything and thinking everything is important means everything is equally unimportant. Good leaders are supposed to know what to do and what NOT to do.
When we ask what a strategy 101 is, a fundamental answer is SO strategy (Strength + Opportunity).
Shakespeare says in Helmet: there is nothing either good or bad, but thinking makes it so. From a dynamic perspective, strength and weakness are relative. The story of David and Goliath is a good example. People may think that David, the small and the inexperienced, can never fight against Goliath, the giant and the experienced. However, the truth is that David leverages the shepherd’s sling to beat the slow and clumsy Goliath.
Walmart vs. Kmart is another example of finding strength out of where people hardly see. The traditional wisdom of retailing believes that a full-category grocery store has to be placed in an area with the population of at least 100K. However, Walmart can launch its store where there is less population than 100k. How could this happen? It is because that Walmart has a way more efficient supply management system, which makes those stores into an organic network; on the contrary, Kmart does not have close relationships between stores, and they cannot get united, cannot lower inventory costs, and cannot negotiate against suppliers as a whole.
In Cold War, Andrew Marshall designs the strategy to compete against the Soviet Union with comparative advantages - back by the economic and technological advantages of the US, developing things with huge costs but cannot establish actual offensive threats, like increasing the accuracy of missiles or quiet submarines.
Bad strategy is formalism. People mistakenly think the form of the strategy is the most important and cannot embrace the reality. There are four hallmarks to detect bad strategy.
fluff: strategy should not be just a collection of fancy buzzwords.
failure to face the challenge:
mistaking goals for strategy.
bad strategic objectives
What are habits? Do things just like doing no brainers. Businesses cultivating customer habits gain a significant competitive advantage. This book proposes The Hook Model describing how to form a user habit with four steps:
Benefits of Habits
Successful companies build the mind monopoly.
How to identify the product’s habit-forming potential?
What cues people to take action? Triggers.
How to initiate any behavior?
B = MAT (behavior = motivation + ability + trigger)
New products fail at the stunning rate of between 40% and 90%. Why? The 9x Effect: You have to be 9x better than the existing alternatives to win their market.
Back in 2008, companies turning out to have higher total shareholder return(TSR) did these things:
However, slashing costs may hurt the brand and the company moral.
Finally, getting ahead of peers create a huge advantage.
Architecture is the shape of the software system. Thinking it as a big picture of physical buildings.
Together they serve a specific purpose like a hospital is for curing patents and a school is for educating students.
Every software system provides two different values to the stakeholders: behavior and structure. Software developers are responsible for ensuring that both those values remain high.
Software architects are, by virtue of their job description, more focused on the structure of the system than on its features and functions.
Architecture serves the full lifecycle of the software system to make it easy to understand, develop, test, deploy, and operate. The goal is to minimize the human resources costs per business use-case.
The O’Reilly book Software Architecture Patterns by Mark Richards is a simple but effective introduction to these five fundamental architectures.
The layered architecture is the most common in adoption, well-known among developers, and hence the de facto standard for applications. If you do not know what architecture to use, use it.
Pros and Cons
A state change will emit an event to the system. All the components communicate with each other through events.
A simple project can combine the mediator, event queue, and channel. Then we get a simplified architecture:
The software’s responsibilities are divided into one “core” and multiple “plugins”. The core contains the bare minimum functionality. Plugins are independent of each other and implement shared interfaces to achieve different goals.
A massive system is decoupled to multiple micro-services, each of which is a separately deployed unit, and they communicate with each other via RPCs.
This pattern gets its name from “tuple space”, which means “distributed shared memory". There is no database or synchronous database access, and thus no database bottleneck. All the processing units share the replicated application data in memory. These processing units can be started up and shut down elastically.
Examples: See Wikipedia