The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data
Rate it:
Open Preview
11%
Flag icon
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.
13%
Flag icon
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.
13%
Flag icon
tries not to think about how much of her life is spent searching the internet for how to make error messages go away.
16%
Flag icon
“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?”
17%
Flag icon
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.
Mauricio Chirino
Agile without proper processes and constraints is dangerous because it accelerates garbage produced
17%
Flag icon
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.
20%
Flag icon
There is nothing so rewarding as providing something to someone who really needs your help.
21%
Flag icon
having a great build process is key to having a good code deployment and release process.
24%
Flag icon
‘Without automated testing, the more code we write, the more money it takes for us to test.’
31%
Flag icon
“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.
31%
Flag icon
“Simplicity is important because it enables locality. Locality in our code is what keeps systems loosely coupled, enabling us to deliver features faster.
32%
Flag icon
‘technical debt is what you feel the next time you want to make a change.’
32%
Flag icon
“The Second Ideal is Focus, Flow, and Joy. It’s all about how our daily work feels.
32%
Flag icon
The Third Ideal is Improvement of Daily Work.
32%
Flag icon
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.
32%
Flag icon
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?”
33%
Flag icon
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
39%
Flag icon
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.’
40%
Flag icon
No one will take risks, experiment, or innovate in a culture of fear, where people are afraid to tell the boss bad news,”
40%
Flag icon
every incident is a learning opportunity, an unplanned investment that was made without our consent.
40%
Flag icon
‘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.’”
41%
Flag icon
‘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.’
44%
Flag icon
Great QA requires a perverse and sometimes sadistic intuition for what will cause software to blow up, crash, or endlessly hang.
48%
Flag icon
We don’t even need guards anymore. We love being prisoners so much, we just think the bars are there to keep us safe.
50%
Flag icon
There’s a very real cognitive and spiritual burden of having to carry so many unfulfilled promises forever into the future,
55%
Flag icon
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.
57%
Flag icon
quote from Jeffrey Snover, the inventor of PowerShell. He once said, “Bash is the disease you die with, but don’t die of.”
58%
Flag icon
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.
61%
Flag icon
“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.
62%
Flag icon
“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
64%
Flag icon
“In
64%
Flag icon
order to speak clearly, you need to be able
64%
Flag icon
to think clearly. And to think clearly, you usually need to be able ...
This highlight has been truncated due to consecutive passage length restrictions.
64%
Flag icon
“How can you send a company down a strategic path when you haven’t thought through what all the implications are?”
66%
Flag icon
‘technical debt’ is what creates hardship, toil, and reduces the agility of our software engineers,”
67%
Flag icon
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.
67%
Flag icon
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.
69%
Flag icon
“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?”
71%
Flag icon
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.
72%
Flag icon
Left to their own devices, development teams will often optimize everything around themselves. This is just the parochial and selfish nature of individual teams.
77%
Flag icon
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.
78%
Flag icon
“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.”
78%
Flag icon
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?
78%
Flag icon
“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.
78%
Flag icon
only one out of every three strategic ideas has a positive result, and only a third actually move the needle in a material way.
78%
Flag icon
“For feature promotions, A/B tests, or algorithmic testing, you may be thrilled to even have five percent of tests work.
79%
Flag icon
customer adoption is a Gaussian distribution curve, naming them the innovators, early adopters, early majority, late majority, and laggards.
79%
Flag icon
“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,”
79%
Flag icon
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.
81%
Flag icon
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.”
« Prev 1