User Story

tosh1 pts0 comments

User Story

Sometimes I program for programmers. There is tremendous satisfaction to be found in writing programs purely for their own sake, polishing an idea into a tiny jewel with precisely beveled facets. Painting, sculpture, and architecture can speak to the untrained eye and find the heart, but a concise, sparkling snippet of code demands a great deal from the reader. Even practitioners who could read the code rarely do. My brushstrokes are invisible. I am at peace with this.

Most programs, though, are more utilitarian. These programs have customers and users. They exist to perform a task. My task is to touch my computer in very specific ways to compose and refine software which, via some abstruse and as of yet unseen mechanism, produces money, a portion of which is deposited in my bank account twice a month.

My program is a toolkit for performing data analysis. My customers are executives at retailers you shop at, who want to turn unending red-hot ribbons of transactions from cash registers, shipping facilities, and hand-scanners into a cold, steady pulse of what practitioners euphemistically call Business Intelligence. Like a spider perched in the center of its web, they gaze upon automatically delivered PDF reports and gently oscillating dashboard readouts to achieve a sensation of instrumental agency over the far-flung corners of their empires. In the best of times (which is to say, as imagined through the medium of heavily scripted product demos), they inhabit a plane of capitalistic nirvana.

My customers purchase my program through an elaborate courtship ritual spanning months. My users have no choice in the matter. My users are data analysts, who spend hours of every working day staring at the forms and buttons of my program’s user interface. They learned some of what they need to know from the documentation, but during orientation two years ago they had a brief full-day training session. Corporate even sprang for boxed lunches containing one fruit cup, one granola bar, and one triangle-cut ham and Swiss cheese sandwich on white bread. Three business-casual shirts earned mustard stains that day.

M is one of my users. She is ambitious, hardworking, and constantly buried in meetings, emails, and drive-by micromanagement. Her corporate-issue laptop was obsolete on her first day. At any given time she has eight dozen browser tabs open, of which seven dozen are work-related. This year her employer migrated her team from cubicles (roughly 60 square feet allocated per person) to a long shelf punctuated every four feet by eye-level baffles. They’re still called cubicles, naturally. M is assured that this new, noisier, elbow-room-free environment is ideal for fostering creative collaboration among colleagues. It is also somewhat cheaper.

Sometimes, when the office is nearly empty, in the wee hours of the morning or late at night, M uses the third floor women’s bathroom to scream.

A newly-hired product manager of whom I have already taken a dim view is wrapping up a presentation detailing a bold new direction for improving the accessibility and onboarding of my program, based on a few hours of aimless pawing at it. With a practiced rictus that, in his mind, no doubt closely resembles a genial human smile, he sums up thusly:

"It needs to be simple. We need to make sure idiots can use it."

M is busy, distracted, and at times frustrated with how little her degree in electrical engineering has contributed to her career progression, but she is not an idiot.

My program is an essential part of her day. My program is not the best part of her day. Usually the best part of her day is a close tie between showering at the gym after her morning workout and curling up on the couch in the evening to watch serial killer documentaries with her teething puppy. Nor is my program the worst part of her day. Today the worst part of her day will be cleaning puppy vomit from a throw pillow after discovering that the DVR did not record yesterday’s serial killer documentaries. Even after all these hours spent together, when my program does what it needs to do, M barely notices. When my program fails and devours half a day’s modeling, she might prefer to be cleaning up puppy vomit.

I did not design my program from whole cloth. It is hard to say it was designed at all. I inherited my program from a procession of fellow cobblers. I study their brushstrokes. Printed on retro-chic green-and-white-striped fanfold paper, my program would make a breathtaking fire hazard. I work in a small team. I patch holes. I smooth uneven surfaces. I iterate. Every change I make trickles down into the hours, minutes, and seconds spent by thousands of analysts like M, 8 hours a day, five days a week, excluding federal holidays.

I can save M time, if I’m careful. I can make forms clearer, helping her find the information she needs. I can improve performance, saving hours of staring at spinning progress bars, or perhaps letting M’s overtaxed...

program from hours part users make

Related Articles