For example: the Trump White House
A White House official has blamed the bumpiness of the ride so far on the White House being in “beta.” This has provoked Jennifer Pahlka — the founder and Executive Director of Code for America and a US Deputy Chief Technology under President Obama — to respond with heartfelt despair, worried that the tools she and her cohort brought to the Obama White House are now being used against all that that cohort accomplished.
It pains me to think that Pahlka, who is a hero of mine, has any regrets or fears about the after-effects of what she has done for this country. For the foreseeable future, I think she need not worry about how the Trump administration is using the tools and mindset her cohort introduced to the White House. This new administration lacks the understanding, competency, and value system to use those tools.
Here’s the passage she cites from a New Yorker article:
But, on Friday morning, Mike Allen, Axios’s editor-in-chief, reported that one of the officials in the meeting “views the Trump White House in terms that could be applied to the iterative process of designing software. It’s a beta White House.”
Allen went on, “The senior official . . . said the White House was operating on similar principles to the Trump campaign: ‘We rode something until it didn’t work any more,’ the official said. ‘We recognized it didn’t work, we changed it, we adjusted it and then we kind of got better . . . [T]his was much more entrepreneurial.’ In the White House, he said, ‘we’re going to keep adjusting until we get it right.’ “
— John Cassidy, “The Keystone Kops in the White House” The New Yorker
“Beta” means “We rode something until it didn’t work any more”?? No, this official is describing what happens when you wake up one day and find out that your DVD burner is no longer supported by the latest upgrade to your operating system. That’s the opposite of “beta.”
The White House isn’t in beta. It’s in freefall.
Nevertheless, this passage bothers Jen because she and her colleagues used to say the same things about making incremental improvements when they were in the White House working to fix Healthcare.gov, the student loan process, and so much more. She writes:
Trump’s team is using the language of agile development to describe how they will strand millions of Americans without healthcare and ban Muslims from entering the country….
What are agile methods without the moral core of the movement for 21st century government, a commitment to users, aka the American people? My heart hurts so much I’m not sure my head is working quite right, and I don’t know if this bizarre application of agile methodologies is a farce or frighteningly effective.
Yes, agile programming can be used for evil purposes, but I don’t think Jen’s cohort should feel they carelessly left a weapon lying around the White House. The Trump administration lacks agile programming’s implicit understanding of how the future works, its theory of change, and its implied values. That’s why, at least so far, the Trump White House is so non-agile that it’s not even the opposite of agile.
Agile software development is characterized by at least two relevant ideas: First, big projects can be chopped into smaller units that can be developed independently and often simultaneously. Second, agile projects are iterative, proceeding by small steps forward, with occasional small steps backwards. Both of these points stand in opposition to the prior “waterfall” approach — so-called because the project diagram looks like a series of cascading waterfalls — in which the steps for the entire project are carefully mapped out in advance.
To paint the differences too starkly, waterfall development is about command and control. Somebody maps out the flow, dates are assigned to the major phases, and managers make sure the project is “on track.” An agile project is instead about trust and collaboration. It breaks the software product into functional units — modules — each with an owner. The owner is trusted to build a module that takes in data in an agreed-upon format, operates on it, and outputs the result in an agreed-upon format. These independent module developers have to work closely with all the others who are relying upon their work, whether a module figures out what permissions a user has, determines if an arrow has hit its target in a game, or confirms that landing gear have been fully extended.
Agile development therefore cedes control from the Big Boss to the people most directly responsible for what they’re building. It needs a team — more exactly, a collaborative community — in which each person:
- Understands precisely she needs to do
- Understands how what she produces will serve everyone else’s input and output requirements
- Can be trusted to get the job done well — which means getting it right for everyone else
- Is in close communication with everyone relying upon her module and upon which hers relies
- Understands the overall goal of the project
As far as anyone can tell from the outside, exactly none of this applies to the current White House,
Second, agile development is iterative — a series of small changes because it assumes that you cannot fully predict how exactly the end product will work, or even what exact functionality it’s going to provide. That is, agile development assumes that life, the universe, and all that are so complex that precisely planning a project from beginning to end requires an act of arrogance that borders on stupidity. And measuring the success of a project by its micro-adherence to a fixed schedule in a world that is changing around it rewards stubbornness over serving end-users as well as possible.
Now, Donald Trump’s preference for deal-making over policy aligns with iteration’s acceptance that the future is not the next card in the deck but is what we make of our hand. But Trump’s style of deal-making is based on the superior skill of the individual (Donald), a ruthless commitment to “winning,” and is all about one big step — the end result — not a series of small changes. Ultimatums of the sort that Trump issued once he saw he was losing the health care battle are the opposite of the incrementalism of iteration. An iterative approach is exemplified by the Democrats’ approach: Let’s tinker with Obamacare to fix what needs fixing.
So, Trump’s White House is anything but agile.
But neither is it proceeding through a waterfall approach, for that requires a commitment to an end result, a rational and realistic understanding of the steps necessary to get there, and well-coordinated managers who are all on the same page. The Trump White House does have a commitment to end results, expressed as mob-inciting campaign promises that are often at the sweet spot where delusion and heartlessness intersect on the Venn diagram of policy. Beyond that, this White House exhibits none of the processes, commitments, or accountability that are the hallmark of waterfall development.
Jen’s cohort left tools the White House can’t use because it lacks agile development’s understanding of how change happens and agile’s fundamental trust in its community of practitioners. In short, Jen’s cohort brought a community to a knife fight.