Joanna Kao was the June, 2013 Resident in ProPublica’s P5 Program. She’s currently an intern at the Boston Globe’s graphics desk.

One of my favorite classes at MIT was one where we learned the “right” way to design software. Before jumping into our favorite text editors to start our projects, we had to draw our object models, event models, wireframes, threat models and list our proposed features and operations. To illustrate the importance of these design decisions, we were given the same amount of time to write up our design analyses as we were given to fully implement the design, with the design analysis due before the implementation.

These principles were important to think out fully before any implementation so that we could design applications that were modular, scalable, and efficient. Planning the entire design beforehand also reduced the amount of time we needed for implementation.

When building news apps, not all of that goes out the window; but something else becomes more important than starting out with the right object and event models — the content and the story. News app developers are journalists who create web applications to present their stories.

Figure 1: An object model from my group’s final project

What’s different about a news app? The most important step in building a news app is thinking about the story. The content should drive every design decision. Data checking becomes more important than code review and narrative becomes more important than the choice of programming language. Sometimes after thinking through the content, you might even realize a news app isn’t the best presentation strategy.

The best news apps suck users in with some kind of story and then allow them to explore the data that supports the story (a.k.a “Show the near and the far”). A news application without a story is analogous to quote stacking — quote stacking is when a writer takes a bunch of quotes and throws them into an article one after another without any context or storyline. Humans don’t parse data well, even if it looks pretty on a screen. A journalist’s job is to take the data, put it into context, and explain why the data is newsworthy to begin with.

Where do good software practices fit in? But good software design can’t be completely ignored. A news app still needs all the qualities of good software — flexibility to keep up with the quick pace and unpredictability of news, scalability to handle large audiences and efficiency to ensure quick page loads.

But how does a news app developer do all of that while also being a journalist with tight deadlines? One way is to rely on software frameworks. ProPublica’s news applications are built with Ruby on Rails, a web framework that uses the model-view-controller pattern. Using Rails makes it easier to get modular web apps off the ground. Using Rails doesn’t mean that the apps automatically become well designed, but it certainly helps.

ProPublica also creates (and open sources!) many of its tools and templates, such as TimelineSetter, StateFace and Daybreak. During my time at ProPublica for P5, I used a pre-alpha version of Upton, a new scraping gem created by Jeremy Merrill. The modularity of the framework made it easy to scrape multiple sites without having to create separate scrapers for each site from the ground up.

Scott Klein and Jeff Larson describe each of ProPublica’s tools as the product of many iterations. Every tool begins as a part of a story. Then, the tool gets rewritten and improved to make it more generalized and modular each time it’s needed for a new story.

Although templates are nice, they can be easy to misuse. It is often easy to just fall back on one default way of storytelling when there is a template for it.

For example, my college newspaper, The Tech, collected data on the student body through three school-wide surveys last year. I created a breakdown graphic for our first survey on religion to allow users to explore the data. We made the graphic into a template after using it a second time, and found two more occasions over the year to use it again. However, the most effective graphic was by far the first. Why? Because we looked at the data first and created the tool specifically to highlight the important stories in that data.

But this all comes back to the idea of figuring out the story first and why it’s important to think about the story before getting bogged down in the software.

Good software practices are important in news applications, but it’s important to remember that none of that matters if the content for which the software is built is solid first.