More on this book
Community
Kindle Notes & Highlights
by
Gene Kim
Read between
June 3 - June 17, 2020
Everyone around here thinks features are important, because they can see them in their app, on the web page, or in the API. But no one seems to realize how important the build process is. Developers cannot be productive without a great build, integration, and test process.
She reflects upon the difference between a great day and a bad day. A great day is when she’s solving an important business problem. Time flies by because she’s so focused and loving the work. She’s in a state of flow, to the point where it doesn’t feel like work at all. A bad day is spent banging her head against a monitor, scouring the internet for things she doesn’t even want to learn but needs to in order to solve the problem at hand.
tries not to think about how much of her life is spent searching the internet for how to make error messages go away.
“When I’m doing something for the first time, I run my program every time I change anything, just to make sure it still compiles and runs. That way, I don’t make the same mistake for hours without knowing. Better to catch the mistake the first time you make it, right?”
Maxine knows that agility is never free. Over time, without this type of investment, software often becomes more and more difficult to change. There are exceptions, like floating-point math libraries that haven’t changed in forty years—they don’t need to change, because math doesn’t change.
A healthy software system is one that you can change at the speed you need, where people can contribute easily, without jumping through hoops. This is how you make a project that’s fun and worthwhile contributing to, and where you often find the most vibrant communities.
There is nothing so rewarding as providing something to someone who really needs your help.
having a great build process is key to having a good code deployment and release process.
‘Without automated testing, the more code we write, the more money it takes for us to test.’
“Code deployment lead time, code deployment frequency, and time to resolve problems are predictive of software delivery, operational performance, and organizational performance, and they correlate with burnout, employee engagement, and so much more.
“Simplicity is important because it enables locality. Locality in our code is what keeps systems loosely coupled, enabling us to deliver features faster.
‘technical debt is what you feel the next time you want to make a change.’
“The Second Ideal is Focus, Flow, and Joy. It’s all about how our daily work feels.
The Third Ideal is Improvement of Daily Work.
The Fourth Ideal is Psychological Safety, where we make it safe to talk about problems, because solving problems requires prevention, which requires honesty, and honesty requires the absence of fear.
the Fifth Ideal is Customer Focus, where we ruthlessly question whether something actually matters to our customers, as in, are they willing to pay us for it or is it only of value to our functional silo?”
The First Ideal—Locality and Simplicity The Second Ideal—Focus, Flow, and Joy The Third Ideal—Improvement of Daily Work The Fourth Ideal—Psychological Safety The Fifth Ideal—Customer Focus
As Sensei Dr. Steven Spear said, ‘It is ignorance that is the mother of all problems, and the only thing that can overcome it is learning.’
No one will take risks, experiment, or innovate in a culture of fear, where people are afraid to tell the boss bad news,”
every incident is a learning opportunity, an unplanned investment that was made without our consent.
‘If you can’t depend on the manufacturing workforce to not get hurt on the job, why should you believe anything we say about our quality goals? Or our ability to make you money? Safety is a precondition of work.’”
‘Everyone must be responsible for their own safety and the safety of their teammates. If you see something that could hurt someone, you must fix it as quickly as possible.’
Great QA requires a perverse and sometimes sadistic intuition for what will cause software to blow up, crash, or endlessly hang.
We don’t even need guards anymore. We love being prisoners so much, we just think the bars are there to keep us safe.
There’s a very real cognitive and spiritual burden of having to carry so many unfulfilled promises forever into the future,
At one table sit all the senior Dev and Enterprise architects, and at the other table sit all the Ops and Security architects. They are all close to Maxine’s age, but mostly white males with a couple of Indian and Asian males in the mix. Maxine notices there’s not a single woman at either table.
quote from Jeffrey Snover, the inventor of PowerShell. He once said, “Bash is the disease you die with, but don’t die of.”
Early in her career, the ratio of UX and designers to developers was 1:70. These days, great teams doing consumer-oriented products have ratios of 1:6 because it’s that important to create products that people love.
“Every time we have an outage, we’ll be conducting a blameless post-mortem like this one. The spirit and intent of these sessions are to learn from them, chronicling what happened before memories fade. Prevention requires honesty, and honesty requires the absence of fear.
“Just what does it take to build great products? And how can we as developers help?” “Where do I start?” Maggie says. “It usually begins with understanding who our customers are, both current and desired. Then we typically segment the customer base, so we know what set of problems each faces. Once we know that, we can understand which of those problems we want to solve, based on market size, ease of reaching them, and so forth. Once we know that, we think about pricing and packaging, offer development, and more strategic issues, such as the overall profitability of the product portfolio and
...more
“In
order to speak clearly, you need to be able
to think clearly. And to think clearly, you usually need to be able ...
This highlight has been truncated due to consecutive passage length restrictions.
“How can you send a company down a strategic path when you haven’t thought through what all the implications are?”
‘technical debt’ is what creates hardship, toil, and reduces the agility of our software engineers,”
it’s important to have a sustainable work pace and to limit our work in process to make sure that work keeps moving through the plant.
whenever you have a team of people who are passionately committed to achieving a mission and who have the right skills and abilities, it’s dangerous to bet against them, because they’ll move heaven and earth to make it happen.
“Are we playing to win and to establish the technical supremacy we need to keep up with what the business needs, or do we just keep limping along, shackled to things built decades ago, and tell our business leadership to throw in the towel and stop having good ideas?”
at eleven a.m. they will conduct a campaign to just one percent of their customers. They’re doing this in the middle of the day, when everyone will already be in the office and able to quickly respond to emergencies. This will help them find vulnerabilities and weaknesses in the process so they can fix them before Friday.
Left to their own devices, development teams will often optimize everything around themselves. This is just the parochial and selfish nature of individual teams.
We ask our customers, on a scale of 0 to 10, how likely it is that they would recommend our stores to their friends. The 9s and 10s are promoters, the 7s and 8s are neutrals, and the rest are detractors. To compute the score, we subtract the percentage of detractors from the percentage of promoters. An NPS score of thirty is considered good, and above fifty is great.
“It’s been true for hundreds of years and probably thousands more: employee engagement and customer satisfaction are the only things that matter. If we do that right, and manage cash effectively, every other financial target will take care of itself.”
If we can’t create a compelling reason to use the app, if we don’t solve an actual problem that our customers care about, why did we even build it in the first place?
“For every winning idea, there are many losing ideas. And some of the winners seemed outright crazy and never would have been approved by the typical middle-manager or committee.
only one out of every three strategic ideas has a positive result, and only a third actually move the needle in a material way.
“For feature promotions, A/B tests, or algorithmic testing, you may be thrilled to even have five percent of tests work.
customer adoption is a Gaussian distribution curve, naming them the innovators, early adopters, early majority, late majority, and laggards.
“Almost all businesses fade over time, because any profitable operation will attract competitors. The economic logic of selling reductions in transactional cost is irresistible and inevitable,”
the name of the game is to prototype ideas and to answer as quickly as possible the three questions of market risk, technical risk, and business model risk: Does the idea solve a real customer need? Is it technically feasible? And is there a financially feasible engine of growth? If the answer is no to any of them, it’s time to pivot or kill the idea.
Hoare principle: “There are two ways to write code: write code so simple there are obviously no bugs in it, or write code so complex that there are no obvious bugs in it.”