The Bus Ticket Theory of Genius
paulgraham.com
2 Followers | 11 Following
FollowThe bus ticket theory also explains why people are less likely to do great work after they have children. Here interest has to compete not just with external obstacles, but with another interest, and one that for most people is extremely powerful. It's harder to find time for work after you have kids, but that's the easy part. The real change is that you don't want to.
A great musician is someone, yeah, who’s got some ability there, but they love practicing music. You’ve really got to enjoy the practice of the thing you’re doing.
Rather than focusing on the negative aspects of an existing culture that need to be changed, it is more useful to identify which cultural behaviors you would like to see, what values you want to embody, and take proactive steps towards those ends.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Level 5 leadership is not just about humility and modesty. It is equally about ferocious resolve, an almost stoic determination to do whatever needs to be done to make the company great.
Entrepreneurs are the only people who will work 80 hours a week to avoid working 40 hours a week,
Of course, I’m papering over the nitty-gritty of security compliance, data integrity and so forth, but I genuinely believe that live traffic testing with good Observability into the impact of the tests being conducted is the way forward for testing microservices.
Traffic Shaping with Service Meshes
One of the reasons I’m so excited about the emerging service mesh paradigm is because a proxy enables traffic shaping in a way that’s extremely conducive to testing. With a small amount of logic in the proxy to route staging traffic to the staging instance (which can be achieved with something as simple as setting a specific HTTP header in all non-production requests or based on the IP address of the incoming request), one can end up exercising the actual production stack for all but the service in question. This enables performing real integration testing with production services without the overhead of maintaining an ornate test environment.
I coined the term “step-up testing”, the general idea being to test at one layer above what’s generally advocated for. Under this model, unit tests would look more like integration tests (by treating I/O as a part of the unit under test within a bounded context), integration testing would look more like testing against real production, and testing in production looks more like, well, monitoring and exploration
Yet another drawback of integration tests for complex systems is that it then demands maintaining separate environments for development, test, and/or staging. Many organizations try to keep these environments as identical and “in sync” as possible with production, which usually involves replaying all live traffic (or at least writes) to a test cluster, so that the persistent stores in the test environment match production. Either way you slice it, this involves a significant investment in automation (and personnel) to monitor and maintain.
It turns out that past a certain point, however, increasing reliability is worse for a service (and its users) rather than better! Extreme reliability comes at a cost: maximizing stability limits how fast new features can be developed and how quickly products can be delivered to users, and dramatically increases their cost, which in turn reduces the number of features a team can afford to offer.
The sooner we come to terms with the fact that it’s a fool’s errand to try to predict every possible way in which a service might be exercised and write a regression test case for it, the sooner we’re likely to embrace a less dysfunctional approach to testing.
People leave managers, not companies
Studying microeconomics, game theory, psychology, persuasion, ethics, math and computers won’t directly make you money – but they will make you the kind of person who makes money
The low-hanging fruit of productivity is often found by unblocking people from expensive agreement and coordination
Leadership inspires, it doesn’t dictate. A leader paints the picture of destination, setting a direction rather than giving directions. Instills a shared sense of purpose and meaning. Provides enough context via the mission, strategy and objectives to enable individuals to make the good decisions.
The efficiency of the team is approximately the inverse of the square of the number of members in the team
Leaders who insist on controlling and micro-managing the small details of people’s day-to-day work can debilitate an organization by short-circuiting learning and development.
At the petabyte scale, information is not a matter of simple three- and four-dimensional taxonomy and order but of dimensionally agnostic statistics. It calls for an entirely different approach, one that requires us to lose the tether of data as something that can be visualized in its totality.
Top-down, command-and-control organizations with billions of dollars and thousands of employees are getting their butts kicked by small, agile teams with only a handful of employees, informal org structures and very little resources
entrepreneurs and investors compound this problem by assuming that all startups grow and scale by executing the Revenue Plan.
“If you don’t delight a customer you don’t create a viral effect because delight is the greatest form of virality.” Andy Rachleff.
"The highest type of ruler is one of whose existence the people are barely aware…. The Sage is self-effacing and scanty of words. When his task is accomplished and things have been completed, all the people say, 'We ourselves have achieved it!'"
aggregator-dominated value chain: aggregators completely disintermediate suppliers and reduce them to commodities
“The difference between a good business and a bad business is that good businesses throw up one easy decision after another. The bad businesses throw up painful decisions time after time.”
anything that has more upside than downside from random events (or certain shocks) is antifragile; the reverse is fragile.
Excessive meetings are the blight of big companies and almost always get worse over time.
CEO and Michael Lopp’s point is that the busier you are, the less room you have for the stuff as a leader only you are responsible for : Recruiting folks, guiding the culture, charting out the long-term team vision. And if you’re too busy with the work, you won’t do those things.
One of the rules of the road should be never to evaluate R&D programs individually. You should always decide on them within the context of an R&D portfolio. There needs to be an “is this better than that?” conversation—no one should get to personally champion his program in a vacuum. Any single idea can look great in isolation.
One of the most important types of decision making is deciding what you are not going to do, what you need to eliminate in order to make room for strategic investments.
Decisions have shelf lives, so you really need to put tight timeframes on your process. I would so much rather live with the outcome of making a few bad decisions than miss a boatload of good ones.