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
Facebook is a very profitable company. Its operating margins = 42%
operating margin = operating income / net sales operating income = gross income − (operating expenses + depreciation and amortization)
When it is transiting into a privacy-centric super app, there are three challenges.
Millions of users love the brands and leaders of those unicorns. Those tech stars have everything - except a path to high profits.
In the past 25 years, Three things changed.
Because the unicorns’ markets are contested, margins have not consistently improved, despite fast-rising sales.
The blitzscale philosophy of buying customers at any price is peaking. After the unicorns, a new and more convincing species of startup will have to be engineered.
Alas! Andrew Grove says - Success breeds complacency. Complacency breeds failure. Only the paranoid (who embrace change) survive.