The Unicorn Project
The Unicorn Project

The Unicorn Project

Table of Contents

PART ONE

This is like labeling all the deck chairs on the Titanic. (Location 153)

Tags: pointless, quote

Note: .quote .pointless

Punishing failure and “shooting the messenger” only cause people to hide their mistakes, and eventually, all desire to innovate is completely extinguished. (Location 196)

Tags: culture, failure

Note: when there is a shoot the messenger culture people hide their mistakes

Leaders buffer their people from all the political and bureaucratic insanity, not throw them into it. (Location 201)

Tags: leadership

Note: .leadership leaders should buffer staff from the storm

Creating software should be a collaborative and conversational endeavor—individuals need to interact with each other to create new knowledge and value for the customer. (Location 269)

She wonders what is happening: Too many promises to the market? Bad engineering leadership? Bad product leadership? Too much technical debt? Not enough focus on architectures and platforms that enable developers to be productive? (Location 283)

Tags: software

Note: .software

She’s learned over her entire career that when people can’t get their builds going consistently, disaster is usually right around the corner. (Location 330)

Tags: software

Note: .software

Without constant feedback from a centralized build, integration, and test system, they really have no idea what will happen when all their work is merged with everyone else’s. (Location 332)

Tags: software

Note: .software developers need regular feedback on their work to see how it will merge

Maxine loves coding and she’s awesome at it. But she knows that there’s something even more important than code: the systems that enable developers to be productive, so that they can write high-quality code quickly and safely, freeing themselves from all the things that prevent them from solving important business problems. (Location 410)

Tags: developer

“During wartime, it’s about finding ways to avoid extinction. And during wartime, the board will often split the roles of CEO and chairman.” (Location 615)

Tags: wartime

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. (Location 666)

Tags: buildprocess

Note: .buildprocess the build process is more important than features

developers need a system where they can get fast and continual feedback on the quality of their work. If you don’t find problems quickly, you end up finding them months later. By then, the problem is lost in all the other changes that every other developer made, so the link between cause and effect disappears without a trace. That’s no way to run any project.” (Location 771)

She had also forgotten that when you throw the Operations teams into the mix, the number of teams involved more than doubles, because getting all those applications running in production requires the server administration teams, virtualization teams, cloud teams, storage teams, networking teams (Location 1174)

Tags: ops

Note: .ops

production deployments are some of the most complex activities of any technology organization, because they require so much coordination between so many different parts of the organization. (Location 1176)

Tags: depoyment

Note: .depoyment

Curious, she asks one of the them why he doesn’t seem very worried. He replies with a puzzled look, “I’m a developer—I work on features. I give them to QA and Ops to test and deploy. Then I work on the features for the next release. That keeps me plenty busy.” (Location 1231)

Tags: favorite, developer

Note: .developer

Once we get continuous builds going, we enable automated testing. We get automated testing, we can make changes quicker, with more confidence, and without having to depend on hundreds of hours of manual testing. And that, I believe, is the critical first step for how we can deliver better value, safer, faster, and happier. (Location 1789)

“Without continuous builds, we are like a car manufacturer without an assembly line, where anyone can do whatever they want, independent of the plant goals,” he continues. “We need to discover problems only when we are in the build or testing process, not during deployment or production. (Location 1791)

Tags: coontinuousbuilds

Note: .coontinuousbuilds

Watermelon projects? Green on the outside, but red on the inside? That’s what every one of our IT projects is these days,” (Location 1815)

‘technical debt is what you feel the next time you want to make a change.’ There are many things that people call technical debt, but it usually refers to things we need to clean up, or where we need to create or restore simplicity, so that that we can quickly, confidently, and safely make changes to the system. (Location 1934)

table turns their attention to him. “I’ve already told you about the First Ideal of Locality and Simplicity. We need to design things so that we have locality in our systems and the organizations that build them. And we need simplicity in everything we do. The last place we want complexity is internally, whether it’s in our code, in our organization, or in our processes. (Location 1972)

“The Second Ideal is Focus, Flow, and Joy. It’s all about how our daily work feels. (Location 1977)

The Third Ideal is Improvement of Daily Work. Reflect upon what the Toyota Andon cord teaches us about how we must elevate improvement of daily work over daily work itself. (Location 1986)

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. In manufacturing, psychological safety is just as important as physical safety. (Location 1987)

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?” (Location 1989)

Tags: customer focused

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 (Location 1992)

PART TWO

The joy that Maxine felt all day while working on the problem disappears. After all, fixing the code especially for features is just a fraction of the entire job. It’s not done until that customer can use what they’ve written. And even then, it’s probably still a work in progress, because we can always learn more about how to help that customer best achieve their goals. (Location 2176)

Technical debt is inherently neither good nor bad—it happens because in our daily work, we are always making trade-off decisions,” he says. “To make the date, sometimes we take shortcuts, or skip writing our automated tests, or hard-code something for a very specific case, knowing that it won’t work in the long-term. Sometimes we tolerate daily workarounds, like manually creating an environment or manually performing a deployment. We make a grave mistake when we don’t realize how much this impacts our future productivity.” (Location 2339)

Tags: techdebt

Note: .techdebt

Business people can see features or apps, so getting funding for those is easy,” he continues. “But they don’t see the vast architectures underneath that support them, connecting systems, teams, and data to each other. And underneath that is something extraordinarily important: the systems that developers use in their daily work to be productive. (Location 2367)

Tags: software

Note: .software the systems that allow developers to do their best work are extremely important

“It’s funny: the tech giants assign their very best engineers to that bottom layer, so that every developer can benefit. But at Parts Unlimited, the very best engineers work on features at that top layer, with no one besides interns on the bottom working on Dev productivity. (Location 2370)

Tags: developer

Note: Assign the best engineers to focus no engineer productivity

If someone gave us the authority, and we were given infinite resources for one month, what would we do?” Maxine smiles as she hears the suggestions fly fast and furious. They start making a list: Every developer uses a common build environment. Every developer is supported by a continuous build and integration system. Everyone can run their code in production-like environments. Automated test suites are built to replace manual testing, liberating QA people to do higher value work. Architecture is decoupled to liberate feature teams, so developers can deliver value independently. All the data that teams need is put in easily consumed APIs … (Location 2388)

“When something goes wrong, we ask ‘what caused the problem,’ not ‘who.’ We commit to doing what it takes to make tomorrow better than today. As Sensei John Allspaw says, every incident is a learning opportunity, an unplanned investment that was made without our consent. (Location 2435)

This is the opposite of the Second Ideal, she thinks. We’re just a stupid feature factory, pushing out widgets that customers may or may not care about. Work is not fun and full of joy, like I know it should be. There is no flow of features, there is no feedback, and there certainly isn’t any learning, (Location 2573)

“You know the joke—what’s the plural of ‘developer’?” says Maxine. “A ‘merge conflict.’” (Location 2810)

Tags: developer

We don’t even need guards anymore. We love being prisoners so much, we just think the bars are there to keep us safe. (Location 2937)

Ops, it’s worse, because we have so many areas of specialization. Complex work like deployments hit every one of those areas. We have servers, databases, networks, firewalls … heck, in the last decade, we’ve created even more silos, like storage, VLANs, automation teams, virtualization, hyperconverged infrastructure, and who knows how many more. (Location 3012)

Tags: deployments, ops

Note: .ops

Prevention requires honesty, and honesty requires the absence of fear. Just like Norm Kerth says in the Agile Prime Directive, ‘Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.’ (Location 3715)

Tags: retrospective

Note: .retrospective

This service calls out to a bunch of external APIs from the shipping providers, and some of those are failing. Brent suspects that they are being rate-limited by one of them, because they’d never had Parts Unlimited servers send so many queries like this before. Maxine can’t believe that a service that seems so trivial is jeopardizing the entire launch. She smiles and makes a note of this, because she knows that this will likely be the new normal. But for something this mission-critical, there’s no way we should depend on external services, she thinks. We need to gracefully handle the case when they’re down or when they cut us off. (Location 4574)

Tags: dependency

Note: .dependency need to gracefully handle when an external api is down

“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.” (Location 4758)

“Horizon 1 thrives on process and consistency, on rules and compliance, and on bureaucracies, which create extraordinary resilience. These are the mechanisms that allow greatness to be consistently delivered over decades. “In contrast, in Horizon 3, you must go fast, you must be constantly experimenting, and you must be allowed to break all the rules and processes governing Horizon 1,” (Location 4832)

“Speed matters. Or more precisely, lead time from idea to market offering matters,” he says. “And regardless of what horizon you’re in, this is the Age of Software. Almost all business investment now involves software. And that means we must elevate developer productivity, (Location 4843)

As a company, we must show that we have a viable growth thesis and that we can create value in ways besides just cutting costs. By the book, there’s two extremes for how to run companies, which affects how you plan and how the investment community perceives you. (Location 5083)

“A hundred years ago, most large factories had a CPO—a chief power officer—who ran the electricity generation processes. It was one of the most important roles in manufacturing, because no electricity, no production. It was a Core process,” he says. “But that role has disappeared entirely. Electricity has become infrastructure that you buy from a utility company. It is interchangeable, and you choose suppliers primarily on price. There is rarely a competitive advantage to generating your own power. It is now merely Context, no longer Core. You don’t want to be the organization that has a large staff providing internal power generation. (Location 5134)

Tags: core

Teaching Thursdays.” Maxine’s heart leaps at the mention of this. This was something she had lobbied for, and now she’s getting it. Not just for the technology organization, but for everyone in the company. “Every week we will create time for everyone in the company to learn. For two hours, everyone is expected to teach something or learn something. (Location 5608)

They used a technique called Wardley Maps to better localize what parts of various value chains were commodities and should be outsourced, which should be purchased, and which should be kept in-house because they created durable, competitive advantage. They used this exercise to methodically disposition their technology stacks, given the business context. (Location 5775)

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 (Location 5957)