How we built News Mixer, part 3: our agile process

This post is last in a three-part series on News Mixer — the final project of my masters program for hacker-journalists at the Medill School of Journalism. It’s adapted (more or less verbatim) from my part of our final presentation. Visit our team blog at crunchberry.org to read the story of the project from its conception to birth, and to (soon) read our report and watch a video of our final presentation.

When you made software back in the day, first you spent the better part of year or so filling a fatty 3-ring binder with detailed specifications. Then you threw that binder over the cubicle wall to the awkward guys on the programming team.

They’d spend a year building software to the specification, and after two years, you’d have a product that no one wanted, because while you were working, the world changed. Maybe Microsoft beat you to market, or maybe Google took over. Either way, you can’t dodge the iceberg.

IMG_3605 by nautical2k
IMG_3605 by nautical2k

Agile software development is different. With agile, we plan less up front, and correct our course along the way. We design a little, we build a little, we test a little, and then we look up to see if we’re still on course. In practice, we worked in one-week cycles, called “iterations,” and kept a strict schedule.

How we met
Every morning, we scrum. A scrum is a five-minute meeting where everyone stands up, and tells the team what they did yesterday and what they’re going to do today.

And at the end of the work week, we all met for an hour to review the work done during the iteration, and to present it to our stakeholders, in this case, Annette Schulte at the Gazette and our instructors Rich Gordon and Jeremy Gilbert.

Design, develop, test, repeat!
In the following iteration, our consumer insights team tested what we built, our panel in Cedar Rapids. And their input contributed to upcoming designs and development.

And we managed this process with free and open-source tools. With a couple hundred bucks (hosting costs) and some elbow grease, we had version control for our code, a blog to promote ourselves (using WordPress), a task tracking system with a wiki for knowledge management, and a suite of collaboration tools – all of which are open source, or in the case of the Google tool suite, based heavily on open source software, and all free like speech and free like beer.

That’s all for now! Hungry for more on agile? Check out my posts about our agile process on the Crunchberry blog, and read Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin, and The Pragmatic Programmer, by Andy Hunt and Dave Thomas, and Getting Real by the folks at 37signals.

How we built News Mixer, part 2: the trouble with Facebook Connect

This post is second in a three-part series on News Mixer — the final project of my masters program for hacker-journalists at the Medill School of Journalism. It’s adapted (more or less verbatim) from my part of our final presentation. Visit our team blog at crunchberry.org to read the story of the project from its conception to birth, and to (soon) read our report and watch a video of our final presentation.

Facebook Connect launched last week to much fanfare. Put simply, it’s a tool that gives Facebook users a way to log in to News Mixer, or any web site, without having to first set up a username and password and all the usual crap you’re forced to do when you when you want to use a web site. Just click the blue button, and you’re in.

Log in with Facebook Connect on News Mixer

Besides reducing barriers to entry, Connect lets us do some pretty neat stuff. Comments used to happen in the darkness — they were buried at the bottom of an article, where only the trolls dwell. But when you make a comment on News Mixer, your Facebook friends can see — and it’s our hope that this will bring your friends into the conversation.

More identity => less jackassery
In addition, by putting your name and face next to what you say, and showing your words to all your friends, we also hope that you’ll put a little more thought into that comment you’re writing.

But at what cost?
The thing is, we can find out a lot more about you than just your friends list. Connect reveals to us all sorts of information about our users. We could wish you happy birthday or tell you when one of your favorite bands is coming to town. Or we could help you find an apartment when you change from married to “it’s complicated.”

You see, whenever you use a Facebook Connect site, or any Facebook application for that matter, you effectively make the application your “friend.” Anything you reveal to your loved ones, we know too.

Facebook’s terms of service do tell us that we’re not allowed to store this data, but this is almost impossible for them to police. Facebook does allow users to restrict the information revealed to applications, but the reality is most people have no idea how much privacy they’re giving up with each witty remark.

But I promise, we’re being good! Other sites might be creepy, but we’re not. The only data News Mixer looks at is your name and your friend list, and we don’t store anything.

That’s it for part two! Can’t wait and hungry for more? Check out Facebook Connect in action at News Mixer!

How we built News Mixer, part 1: free and open-source software

This post is first in a three-part series on News Mixer — the final project of my masters program for hacker-journalists at the Medill School of Journalism. It’s adapted (more or less verbatim) from my part of our final presentation. Visit our team blog at crunchberry.org to read the story of the project from its conception to birth, and to (soon) read our report and watch a video of our final presentation.

We could not have built News Mixer without free and open-source software. For those of you who aren’t familiar with the term, this is how the Free Software Foundation describes it:

“Free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer.”

Free software is a matter of the users’ freedom to run, copy, distribute, study, change and improve the software.

The Free Software Definition, Free Software Foundation

Now, journalists in the room might be surprised to hear a nerd talking like this, but the truth is that we’re remarkably similar, journalists and technologists — free software and free speech are the backbone of the web. The Internet runs on free software — from the data center to your desktop.

LAMP =
Linux (operating system) +
Apache (web server) +
MySQL (database) +
Python (teh codez)

I won’t dwell too long on the super-nerdy stuff, but for those interested, News Mixer runs on a LAMP stack, sort of the standard for developing in the open-source ecosystem. Notably missing from the list are non-free technologies you may have heard of like Java, or Microsoft and .NET.

The biggest tech choice we made was to use Django. Its a free and open-source web development framework put together by some very clever folks at The Lawrence Journal-World. For those of you in the know, it’s a framework similar to ASP.NET or the very popular Ruby on Rails, but with a bevy of journalism-friendly features. Django is how we built real, live software so freakin’ fast.

And you can have your very own News Mixer, gratis, right now, because News Mixer is also free and open source. We’ve released our source code under the Gnu General Public License, and it’s available for download right now on Google Code. So, please, stand on our shoulders! We’re all hoping that folks will take what we’ve done, and run with it.

That’s it for part one! Can’t wait and hungry for more? Check out the Crunchberry blog, or my other posts on using free and open source software to practice journalism.

Creating real-world social constraints with Facebook Connect

In our efforts to increase connections among the fine citizens of Cedar Rapids, Team Crunchberry has decided to integrate our efforts with a cool-as-hell new way to leverage social networks, Facebook Connect.

Facebook says Connect will enable users to:

  • Seamlessly “connect” their Facebook account and information with your site
  • Connect and find their friends who also use your site
  • Share information and actions on your site with their friends on Facebook

Connect with Facebook

By clicking on a button like the one above, you’ll be automagically logged in to our site!  This enables us to do some very interesting things, as I wrote about on the Crunchberry blog:

Besides lowering the mental overhead of forcing a user into signing up for yet another account, we’ll be able to play with real, established social networks. (And without expecting folks to set up a friends list on a site that none of my friends use!)

For instance, when a user makes a comment, we’ll push it to their Facebook feed. Will you be more likely to comment if you know your friends will see what you have to say? Will you be less likely to act like a jackass?

A little Face(book) to Face(book) chat

We’re betting that we can increase the quantity and quality of conversations by bringing them into to your network.  Why would I comment in a vacuum?  I want my friends to hear what I have to say.  And when they do, maybe they’ll back me up.  And since I’m being heard, maybe I’ll think twice before being a jerk.

Yay, props!  Yay, shame! It’s almost like a real world argument.  All we need now is a pitcher of beer and a table to pound on. Is there a django plugin for that??

Building a news product with agile practices: How we’re doing it

The Crunchberry Project is using agile software development practices as we build a new product for the Cedar Rapids Gazette.  On the team blog, I’ve begun writing a series of pieces detailing our process.

Part one was a brief attempt at defining agile and explaining why it’s important:

What can happen in a year?  Twitter catches on.  The stock market crashes.  Your competitor releases a new product.  A new congress is elected, and they change the laws.  It’s discovered that margarine is healthier than butter.  Your business model becomes obsolete.  And you’ve invested nine months in a product that nobody needs anymore.

And let’s just say that you’re living in a time warp, and the world remains completely static, who’s to say that you even got the requirements right in the first place?  If you’re wrong, you just invested a year of work in a system that doesn’t work for your users.

As a great Chicagoan once said: “Life moves pretty fast. If you don’t stop and look around once and a while, you could miss it.”  Your requirements will change.  Agile teams are prepared for the chaos.

Part two in the series begins to explain how our team is implementing agile processes: how we meet, the weekly atomic work cycle known as an iteration, and why we think meetings are toxic.  Plus, it’s got a great parenthetical reading list:

(… If you want to do this right, read Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin, and The Pragmatic Programmer, by Andy Hunt, and Dave Thomas.  Or even better, go to Ann Arbor and learn it from the badasses at The Menlo Institute.)

(Also, read Getting Real by the folks at 37signals.  Please, just trust me on this one.  It’s important.  Much more important than reading this silly blog post, that’s for sure.)

In the upcoming weeks, I’ll be sharing our design process, task and defect tracking, how we test, and lots more.  Stay tuned!