Making Open Work
May 8–9, 2017: Training & Tutorials
May 10–11, 2017: Conference
Austin, TX

The excitement and mundanity of building Hillaryclinton.com/donate

Bethany Andres-Beck (Independent)
5:05pm5:45pm Wednesday, May 10, 2017
In Real Life (IRL)
Location: Meeting Room 12
Level: Intermediate
Average rating: *****
(5.00, 1 rating)

Who is this presentation for?

  • Developers and PMs interested in what changes under the unique conditions of the campaign

Prerequisite knowledge

  • Knowledge of how Agile teams build software
  • Basic familiarity with the modern JavaScript ecosystem

What you'll learn

  • Explore the development journey of Hillaryclinton.com/donate
  • Learn why Flux, at its best, enforces MVC (Even without React, event-driven state management is an extremely powerful paradigm for frontend development.)

Description

Different constraints lead to different trade-offs. In December 2015 I joined a team dedicated to a simple idea: accept as much money as possible for Hillary For America. We built the team, technologies, and relationships necessary to succeed far more rapidly than any other project I’ve worked on—and enjoyed ourselves in the process.

Identifying performance as a major concern, I built a mobile-targeted version of our donation platform employing Flux without React. Vanilla JS gave us a 50% improvement in performance and an order of magnitude reduction in JavaScript size. We handled the transition from a single-developer project to a collaborative code base and eventually rolled out this mobile-first site to all platforms. Toward the end of the campaign, we wanted to incorporate the donation flow into rapidly developed microsites. It turned out to be trivial to swap the existing HTML data binding-based view for React-based frontends. Thanks to Flux, for the first time in my career, MVC lived up to its promise.

When a small improvement long-term is worth less than the possibility of a big win right now, the payoffs change: before important deadlines, we often swapped to building shorter-term big bets. These had to be developed very rapidly while still being rock solid and usable by the deadline. Progressive feature development supported those goals and also enabled early feedback from stakeholders.

Besides these deadlines, what made the campaign a unique experience was the shared purpose and values. We used Agile development to build trust with our stakeholders, integrating on the fly with the well-established rhythms of campaign life. As technology reaches more and more places, the tendency is to resist integration, building technology separately from the people who use it. Our experience shows the power of choosing a different path: applying well-understood engineering techniques from inside existing institutions.

Photo of Bethany Andres-Beck

Bethany Andres-Beck

Independent

Beth Andres-Beck was most recently a staff engineer on the fundraising team at Hillary For America. Over the course of her career, she has migrated from backend to frontend at BAE, TripAdvisor, Twitter, and others. She enjoys applying design patterns to JavaScript and feminist philosophies to software.