Book Read Free

The Best American Magazine Writing 2016

Page 7

by Sid Holt


  This is why the choice is so hard. Everything can do everything, and people will tell you that you should use everything to do everything. So you need to figure out for yourself what kind of team you have, what kind of frameworks you like using, where people can be most productive, so they will stick around through the completion of the project. This is hard. Most places can’t do this. So they go with the lowest common denominator—Java, PHP—because they know that when people leave, they’ll be able to get more of them.

  And that’s OK. The vast majority of technology projects don’t require original research, nor do they require amazing technological discoveries. All the languages under discussion work just fine. There are great coders in all of them.

  But the choice of a main programming language is the most important signaling behavior that a technology company can engage in. Tell me that you program in Java, and I believe you to be either serious or boring. In Ruby, and you are interested in building things quickly. In Clojure, and I think you are smart but wonder if you ship. In Python, and I trust you implicitly. In PHP, and we sigh together. In C++ or C, and I nod humbly. In C#, and I smile and assume we have nothing in common. In Fortran, and I ask to see your security clearance. These languages contain entire civilizations.

  You can tell how well code is organized from across the room. Or by squinting or zooming out. The shape of code from twenty feet away is incredibly informative. Clean code is idiomatic, as brief as possible, obvious even if it’s not heavily documented. Colloquial and friendly. As was written in Structure and Interpretation of Computer Programs (a.k.a. SICP), the seminal textbook of programming taught for years at MIT, “A computer language is not just a way of getting a computer to perform operations…it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.” A great program is a letter from current you to future you or to the person who inherits your code. A generous humanistic document.

  Of course all of this is nice and flowery; it needs to work, too.

  7.3. Managing Programmers

  On the Wikipedia page for “Software development process,” there’s a list of links to pages: “TDD BDD FDD DDD MDD”—“test-driven development,” “behavior-driven development,” “feature-driven development,” “domain-driven design,” and “model-driven development.” Each one has its advocates and its critics. I include these only for your amusement. If you want to go deeper on management methodologies, have at it.

  The management of programmers is a discipline unto itself. There are subdisciplines that deal with how coders communicate. The most prominent is the “Agile methodology,” which calls for regular coordination among programmers, providing a set of rituals and norms they can follow to make their programs work with the programs of others.

  The Agile Manifesto (yep, manifesto) reads as follows:

  • Individuals and interactions over processes and tools

  • Working software over comprehensive documentation

  • Customer collaboration over contract negotiation

  • Responding to change over following a plan

  There are seventeen signatories. And there are as many variations of Agile. I’ve had terrible meetings in my life when I sat between two teams and one of them explained, at length, why Agile with Kanban was better than Agile with Scrum. You could smell the money burning.

  Here is Agile, as I’ve seen it done: You break down your product into a set of simple-to-understand user stories about who needs what. You file those stories into an issue-tracking system, often a commercial product such as JIRA.

  You divide work into sprints of a week, two weeks, or whatever suits your management style, and you give each sprint a name and a goal (implement search, user registration), then the programmers take stories to go off and make them happen.

  Every day your team checks in and tries to unblock one another—if you are working on the tool that sends e-mail and the e-mail server isn’t working, you tell everyone. Then someone else steps up to help, or you stick with that story and do the best you can, but everyone needs to be working toward the sprint goal, trying to release some software. And once the sprint is done, you deliver something that actually, really works and move on to the next thing, slowly bringing a large, complex system into operation.

  That’s an ideal case. Done well, it avoids magical thinking (“It will all work when we get everything done and wired together”). It has its critics and can seem to have as many branches (c.f. Scrum, Kanban, and “Agile with Discipline”) as Protestantism.

  Programmers are forever searching for a silver bullet and, worse, they always think they’ve found it. Which is why Frederick Brooks, the most famous of the early software methodologists, wrote a paper called “No Silver Bullet—Essence and Accident in Software Engineering.” He wrote it in 1986. He was very hopeful, back then, that object-oriented programming would help fix things.

  7.4. “We Are Going to Ship”

  Into your office comes TMitTB. He holds a large bottle of some sort and a laptop, and he looks sleepy. You tell him so, with a smile.

  “We got to a release,” he says. “Ran a little into last night.”

  He opens the laptop and brings up a secret website that, he assures you, can be seen only within the confines of the office’s network, or via the virtual private network.

  It’s a plain and homely thing, the new website. Squares bumping into squares. The catalog and the items in the catalog are up on the screen, but there are no images. The text has all sorts of weird characters in it, strange bugs. There are products with the names “fake product” and “not real product” and “I hate all products.”

  There are no “related items” to purchase, even though that’s a critical feature and one of the major revenue drivers on the current site. You suppress the question. It will be there.

  There is, however, a way to log in with a username and password. TMitTB has done you the favor of creating, for you, an account. You are, he says, the first nonengineering person to test the site.

  “This is real?” you ask.

  “Yes. This is software. It speaks to the database. This is what we’ll release.”

  “Does it speak to customer service?”

  He squints for a second.

  “In July,” he says.

  My God, a date. You’ve extracted a month, something positively deadline-ish.

  He did as you asked. He managed outward, and he began to gum up the works in familiar ways. He started demanding documents of people who immediately began not providing them. He asked relative strangers for their insights and suggestions, and they gave them willingly. They asked for the logo to be bigger. They asked for games that could be played inside the app. He listened to them all. He hasn’t been to a conference in months.

  “So this is the real, actual website.”

  “Yes,” he says, taking a sip from a complicated, fermented beverage with a health-food-store mandala-style label. A sticker on the bottle says, “$3.99.”

  “Now we do the next sprint,” he says. “We push for July. And we release mid-August.”

  He looks tired, this man. But he also looks proud. The things on the screen—his team put them there, and they used good, modern tools to do so. That is their craft and their pleasure, and TMitTB has made it possible for them to do their work. “We,” he finally says, “are going to ship.”

  They will do their standups. And after the standups, they will go off and work in the integrated development environments and write their server-side JavaScript and their client-side JavaScript. Then they will run some tests and check their code into the source code repository, and the continuous integration server will perform tests and checks, and if all goes well, it will deploy the code—perhaps even in August, in some cloud or another. They insist that they’ll do this every day, continuous releases.

  Then will come reports. Revenue reports, analytics, lists of n
ew markets to conquer, all manner of new customer data that will be yours to parcel out and distribute. That will be your role, as the owner of the global database of customer intent. Thousands, then millions, of new facts that can help the company plan its sales and product-development cycles. A good thing. And, you hope, the new site will generate more revenue, being faster, better, API-driven, and deployed across platforms to Web, mobile Web, and multiple apps.

  You decided to cut BlackBerry support. It stung, but there are three BlackBerrys in your desk drawer at home and none in your pocket. Life moves on.

  When the site is introduced, you’ll buy the coders a cake and send them to the JavaScript conference of their choice. You’ve learned that the only appropriate reward for people who write JavaScript is more JavaScript. TMitTB will get his bonus. The CTO is already considering him for new things. You like the CTO. She has become a friend of sorts.

  You can feel it, the S, off in the distance, coming toward you. It will arrive in due time, and you will stick it to the front of the VP in your title and all will be well. The coders all smile at you in the hall now that you’ve sat in on code reviews and feature discussions and stood quietly in the middle of standups. You know some of their names, even if you could do a better job of pronouncing them.

  Perhaps you have a future in software after all.

  7.5. Should You Learn to Code?

  I spoke with some friends in their forties who had spent careers in technology. I was complaining. I said, “I mentor some millennials, and my God. Every job is a contract position. Nothing comes with health care. They carry so much debt.” They looked at me with perplexity. It took a moment, and then one of them said: “Not if they can code.”

  You probably already do code. You do it in Excel or Google Spreadsheets. You run little processes in a sequence or do a series of find-and-replace routines in a big document.

  Programming as a career can lead to a rewarding, solidly middle-class existence. If you are inclined and enjoy the work, it’s a good way to spend time, and if you work for and with good people, it can be very fun—even the dry parts have something to teach you. Of course this is true of any place where smart people work. If your situation is lousy, you can probably find another job more easily than, say, a writer.

  The industry twists and turns so often, though, that who knows what the next ten or twenty years will bring? The iPhone, and mobile in general, created a brief renaissance for people who could program using lower-level languages such as Objective-C, people who could worry about a computer’s memory. Perhaps the Internet of Things will turn everything into a sensor. (Already you wander Disney World with a wristband, and it watches and tracks you; the whole place is a computer.) This will require yet more low-level thinking. And then there will be websites to make, apps to build, and on and on.

  There’s likely to be work. But it’s a global industry, and there are thousands of people in India with great degrees. Some used to work at Microsoft, Google, and IBM. The same things that made programming a massive world-spanning superstructure—that you can ship nothing and charge for it—make it the perfect globalized industry. There’s simply no reason, aside from prejudice, to think that Mumbai or Seoul can’t make big, complex things as well as Palo Alto or Seattle.

  You might learn to program because there’s a new economy as irrational, weird, and painful as the old one. Books and songs are now rows in databases, and whole films are made on CPUs, without a real ray of light penetrating a lens. Maybe learning to code will give you a decoder ring for the future. Disruption is just optimization by another name. SDKs are just culture encoded and made reproducible, and to an entire generation, they’re received as rapturously as Beatles albums were decades ago. The coder-turned-venture-capitalist-turned-Twitter-public-intellectual Marc Andreessen wrote that software is eating the world. If that’s true, you should at least know why it’s so hungry.

  I’ve been the man in the taupe blazer, for sure, the person who brings the digital where it’s not welcome and is certain that his way is better. It took me a long time to learn why this might not be welcomed—why an executive, an editor, or a librarian might not enjoy hearing about his entire world being upended because someone has a new toy in his pocket. I didn’t put the toy in anyone’s pocket, and you shouldn’t kill the messenger. But messengers aren’t blameless, either.

  Aside from serious fevers and the occasional trip to the woods, I’ve used a computer every day for twenty-eight years. I learn about the world through software. I learned about publishing by using the desktop publishing system QuarkXPress, and I learned about color and art by using a program called Deluxe Paint. Software taught me math and basic statistics. It taught me how to calculate great circle distance, estimating the distance between two points on a globe. I learned about the Internet by creating webpages, and I learned about music through MIDI. And most of all, software taught me about software.

  I like cheap old computers more than new ones, and my laptop creaks when it opens. My house is filled with books and soft, non-digital things. But my first thought when I have to accomplish some personal or professional task is, What code can I use? What software will teach me what I need to know? When I want to learn something and no software exists, the vacuum bugs me—why isn’t someone on this?

  This is what Silicon Valley must be thinking, too, as it optimizes the hell out of every industry it can, making software (and the keepers of that software) the middleman. The Valley has the world in its sights. Government, industry, social services, human sexuality, agriculture: they want to get in there and influence the whole shebang.

  Code has atomized entire categories of existence that previously appeared whole. Skilled practitioners have turned this explosive ability to their near total benefit. Bookstores exist now in opposition to Amazon, and Amazon’s interpretation of an electronic book is the reference point for the world. For its part, Amazon is not really a bookseller as much as a set of optimization problems around digital and physical distribution. Microsoft Office defined what it was to work, leading to a multidecade deluge of PowerPoint. Uber seeks to recast transportation in its own image, and thousands more startups exist with stars in their eyes and the feverish will to disrupt, disrupt, disrupt, disrupt.

  I’m happy to have lived through the greatest capital expansion in history, an era in which the entirety of our species began to speak, awkwardly, in digital abstractions, as venture capitalists waddle around like mama birds, dropping blog posts and seed rounds into the mouths of waiting baby bird developers, all of them certain they will grow up to be billionaires. It’s a comedy of ego, made possible by logic gates. I am not smart enough to be rich, but I’m always entertained. I hope you will be, too. Hello, world!

  BuzzFeed News

  WINNER—PUBLIC INTEREST

  Every year, more than 100,000 laborers arrive in the United States to work low-skilled jobs as part of the H-2 visa program, which permits employers to hire temporary foreign workers. “The New American Slavery” documents the state-sanctioned abuse of these especially vulnerable workers. After the publication of this story, BuzzFeed News continued its reporting on the H-2 visa program with “All You Americans Are Fired.” The judges who awarded BuzzFeed News the National Magazine Award for Public Interest praised both articles as belonging to the finest tradition of investigative journalism. Since the appointment of Ben Smith as editor in chief in 2011, BuzzFeed News has become known as much for its magazine-quality long-form reporting as for its pop-culture bravado. This was not only BuzzFeed’s first Ellie but also the first for an online-only publication in Public Interest.

  Jessica Garrison, Ken Bensinger, and Jeremy Singer-Vine

  The New American Slavery and “All You Americans Are Fired”

  The New American Slavery

  Mamou, Louisiana—Travis Manuel and his twin brother, Trey, were shopping at Walmart near this rural town when they met two Mexican women who struck them as sweet. Using a few words of Spanish he had
picked up from his navy days, Travis asked the two women out on a double date.

  Around midnight the following Saturday, when they finished their shift at a seafood-processing plant, Marisela Valdez and Isy Gonzalez waited for their dates at the remote compound where they lived and worked.

  As soon as they got in the Manuel brothers’ car, the women began saying something about “patrón angry,” Travis recalled. While he was trying to puzzle out what they meant, his brother, who was driving, interrupted: “Dude,” Trey said. “There’s someone following us.”

  Trey began to take sudden turns on the country roads threading through the rice paddies that dot the area, trying to lose the pickup truck behind them. Finally, they saw a police car.

  “I said, we’re gonna flag down this cop” for help, Travis recalled. “But the cop pulled us over, lights on, and told us not to get out of the vehicle,” Trey added, noting that the pickup pulled up and the driver began conferring with the police.

  An officer asked Trey and his brother for ID. From the backseat, their dates began to cry.

  Travis tried to reassure them. They weren’t doing anything wrong, he said, and they were in the United States. “I was like, ‘There’s no way they are going to take you away.’”

  He was wrong.

  The man in the truck was the women’s boss, Craig West, a prominent farmer in the heart of Cajun country. As Sgt. Robert McGee later wrote in a police report, West said that Valdez and Gonzalez were “two of his girls,” and he asked the cops to haul the women in and “scare the girls.”

  The police brought the women, who were both in their twenties, to the station house. McGee told them they couldn’t leave West’s farm without permission, warning that they could wind up dead. To drive home the point, an officer later testified, McGee stood over Valdez and Gonzalez and pantomimed cutting his throat. He also brandished a Taser at them and said they could be deported if they ever left West’s property without his permission.

 

‹ Prev