The Unicorn Project: A Novel about Developers, Digital Disruption, and Thriving in the Age of Data
Rate it:
Open Preview
3%
Flag icon
Punishing failure and “shooting the messenger” only cause people to hide their mistakes, and eventually, all desire to innovate is completely extinguished.
3%
Flag icon
I expect leaders to buffer their people from all the political and bureaucratic insanity, not throw them into it.
4%
Flag icon
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.
5%
Flag icon
Although long hours are sometimes glorified in popular culture, Maxine views them as a symptom of something going very wrong. 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?
5%
Flag icon
when people can’t get their builds going consistently, disaster is usually right around the corner.
5%
Flag icon
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.
7%
Flag icon
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.
7%
Flag icon
And yet, as awesome as she is, at the height of her soaring powers and skills honed over decades, here she sits in the middle of the Phoenix Project unable do a Phoenix build, even after two days.
7%
Flag icon
Trying to get a Phoenix build going is like playing Legend of Zelda, if it were written by a sadist, forcing her to adventure far and wide to find hidden keys scattered across the kingdom and given only measly clues from uncaring NPCs. But when you finally finish the level, you can’t actually play the next level—you have to mail paper coupons to the manufacturer and wait weeks to get the activation codes.
10%
Flag icon
If all our employees are excited to come to work each day, and if we’re delighting our customers through constant innovation and great service, cash flow will take care of itself.
10%
Flag icon
companies have two modes of operations: peacetime and wartime.
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
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.
13%
Flag icon
she pulls up all of her open tickets in the ticketing system. She refuses to feel powerless, at the mercy of distant powers, trapped inside a cold bureaucracy actively impeding her goals, aspirations, desires, and needs.
15%
Flag icon
So why does the ticketing system here feel so awful? We’re all part of Parts Unlimited, so why does everything feel like I’m dealing with a government bureaucracy or an uncaring vendor? Maxine ponders. Maybe it’s because when friends do favors for friends, we don’t require them to open a ticket first.
15%
Flag icon
Maxine suddenly becomes alarmed at just how many people are required to create one environment.
16%
Flag icon
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?”
16%
Flag icon
“One of the really nice things about running your program frequently is that you get to see it running, which is fun, and that’s what programming is all about.”
16%
Flag icon
Functional programming is truly a better tool to think with.
Dale Alleshouse
Sacred Cow...
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.
17%
Flag icon
floating-point math libraries that haven’t changed in forty years—they don’t need to change, because math doesn’t change. But in almost every other domain, especially when you have customers, change is a fact of life.
17%
Flag icon
A healthy software system is one that you can change at the speed you need, where people can contribute easily...
This highlight has been truncated due to consecutive passage length restrictions.
17%
Flag icon
She is able to build things with focus, flow, and joy. She had fast feedback in her work. People were able to do what they wanted without being dependent on scores of other people. This is what great architecture enables.
18%
Flag icon
Instead of acting like an actual team, they act more like sovereign states on the brink of war, with diplomats trying to patch together an uneasy peace, complete with embassies, protocols, and official formalities.
19%
Flag icon
All this reminds Maxine of why 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.
20%
Flag icon
When you say something ‘is a pile of crap,’ that’s a metaphor. When you say that something ‘is like a pile of crap,’ that is a simile.”
20%
Flag icon
She is disheartened by how Parts Unlimited executives, the bridge officers, are so disconnected from the daily work of the “redshirts” in the technology organization. It was not helpful for Sarah to remind everyone of how “saving the universe” depends on Phoenix. And it was not helpful for John to appeal to their “moral sense of correctness.”
20%
Flag icon
The job of the bridge crew is to ensure the company strategy is viable, not to remind them of the strategy or to micromanage everyone to death. Their job should be to ensure everyone can get their work done.
20%
Flag icon
How can you create anything of value if you don’t have feedback on how it’s used?
21%
Flag icon
Each decision is a commitment to support it for years or even decades—these are decisions that go far beyond just one team.
22%
Flag icon
“It’s such a pain to get things from Operations through normal channels, so we scraped together enough hardware to build a cluster big enough to support a couple of teams.
23%
Flag icon
“Other companies have done this already. I think that anyone who is still paying Kumquat database maintenance fees is simply too dumb to migrate off it.”
23%
Flag icon
I can’t believe how the bureaucracy and silos have taken over. You can’t do anything without first convincing a bunch of steering committees and architects or having to fill out a bunch of forms or work with three or four different teams who each have their own priorities.
23%
Flag icon
Those made sense decades ago, when you wanted written justification before you wasted a bunch of developers’ time. But now you can prototype most features in the time it takes to even write one page of a PRD.
25%
Flag icon
The build team is completely out of their league, with people who, I’m sorry to say, are the people who didn’t have enough experience to be application developers.”
25%
Flag icon
this is what an effective network is all about—when you can assemble a group of motivated people to solve a big problem, even though the team looks nothing like the official org chart.
25%
Flag icon
There must be two hundred people responsible for some portion of the release, but for most of them, it’s only about five minutes of work.
26%
Flag icon
A BOM is an invisible first character that some programs put in a CSV file to indicate whether it’s big-endian or little-endian.
28%
Flag icon
The lack of trust and too much information flowing around is causing things to go slower and slower.
30%
Flag icon
“You’d think we have thirty teams of ten people, with each team able to get things done independently. But at times, it’s like we have only one team of three hundred people
30%
Flag icon
Consolidating network switches isn’t inherently a bad idea. Before, three teams were able to work independently on their own networks. And when they were all put on one network switch, suddenly they were coupled together, unable to work independently, having to communicate and coordinate in order to not interfere with each other,
31%
Flag icon
‘Complect’ means to turn something simple into something complex.
31%
Flag icon
“In tightly coupled and complected systems, it’s nearly impossible to change anything, because you can’t just change one area of the code, you must change one hundred, or even a thousand, areas of the code. And even the smallest changes can cause wildly unpredictable effects in distant parts of the system, maybe in something you’ve never even heard of.
31%
Flag icon
‘Think of four strands of yarn that hang independently—that’s a simple system. Now take those same four strands of yarn and braid them together. Now you’ve complected them.’ Both configurations of yarn could fulfill the same engineering goal, but one is dramatically easier to change than the other. In the simple ...
This highlight has been truncated due to consecutive passage length restrictions.
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. Teams can quickly and independently develop, test, and deploy value to customers.
31%
Flag icon
Locality in our organizations allows teams to make decisions without having to communicate and coordinate with people outside the team, potentially having to get approvals from distant authorities or committees so far removed from the...
This highlight has been truncated due to consecutive passage length restrictions.
31%
Flag icon
“You should be able to create value by changing one file, one module, one service, one component, one API call, one container, one app, or whatever! Which is why putting cross-cutting concerns in one place is so great, like logging, security, or retry policies. You change it there, and you’ve changed it everywhere,” he says. “Isn’t it absurd that when you build a feature, changes som...
This highlight has been truncated due to consecutive passage length restrictions.
31%
Flag icon
Tech giants like Facebook, Amazon, Netflix, Google, and Microsoft give Dev productivity responsibilities to only the most senior and experienced engineers.
32%
Flag icon
Ward Cunningham in 2003. He said, ‘technical debt is what you feel the next time you want to make a change.’
« Prev 1 3 4