Last month we released an update of the Mightyverse web site with fewer features, but with new homepage and FAQ which we hope will help people understand our mission and where we are going. For the last six months, it had felt like we would never finish our upgrade to Rails 3, as Mightyverse development had intermittent spurts of development. In early January, I proposed that we make some hard decisions and ship it earlier by radically cutting any feature that was under-performing in terms of web traffic, which included the search feature. We defined an “MVP” (Minimally Viable Product where the goal is not to create the minimum amount of software from which you can learn). We had just one new feature implemented (changing the URL of the “phrase page”), so that became the one we would test.
Dropping the search feature was a very hard decision, but not as hard as drawing the line on the smaller details. I argued that whatever was wrong we could always fix the day after we release the site, because there could be something even more important to work on that we don’t know about.
It was mid-January and I had told Lee and Curtis who were collaborating with me on developement that we would complete the bare minimum to release the site. Glen, Paul, and Iku tested on our staging server. I queued up a subset of bugs found to be fixed before release and our launch date quickly slipped further into the future. Curtis sent this email:
I noticed a big list of MVP stories.
I understand that the current MVP is very lacking, but I would encourage releasing it … if only to catalog the feedback from the users. My thought is that this can be valuable get an external perspective.
By no means is this a hard and fast rule, but it has worked at times in the past to develop a system in concert with the community.
To which I responded:
…there are humans involved. Sometimes compromise is important. I would have not completed the phrase list page, but Paul uses that to demo to people.
To understand the debate, you need to know that the phrase list page was pretty awful. At the time that we were having this discussion it looked like this:
with the video player way at the bottom of the page, like this:
There were missing links and the text was poorly laid out. The placement of the video player was not the only unusable part, but in page playback of phrases was also missing. You can check out what it used to look like. The key thing to note is that we were trying to avoid having a 404 and create a starting point for continuous improvement. Even so most folks would react like Paul did…
“Are you really going to release it like that?” I agreed that it would take just an hour or two to fix the layout and add links, so I said I would do it. Later, I admitted to Paul that I had been called out by a member of our dev team for not sticking with our MVP focus. I also admitted that while I told Curtis that we needed to fix the page because Paul used it to demo to current and prospective contributors, that I really was doing it because I thought it would make Paul really sad if I didn’t.
I had recently heard Corey Haines talk at Heroku’s Wazu conference about using the “5 Whys” for figuring out what features you should build first in a new application, so I asked Paul if he would play this game with me. It’s a simple exercise where you ask someone “why” five times, which can be very annoying unless you tell them first that you are playing a game. It felt more than a little absurd, but I really wanted to follow the MVP/lean startup discipline and be honest about why were making our decisions. Here’s a brief synopsis of the conversation:
Why do should we fix the visual errors and lack of in-page viewing in the phrase list page?
We don’t want to look amateurish. Paul told this story of how a friend had gone to our website when we first launch it and had found several spelling errors on the blog and had said that it didn’t seem professional, that it looked “amateurish.” (You might think that no one wants to be unprofessional and amateurish, but when Facebook first launched with a very scattered design and seemingly little attention to visually pleasing pages, people in the industry argued that was precisely why they got so much participation, that people didn’t feel like their posts had to be perfect, so they posted more. So I asked the next question.)
Why don’t we want to look amateurish?
We want people to believe we are credible. I listened to another story from Paul about how being amateurish erodes your credibility. No real surprise here, so I moved on to the next why.
Why is it important to be credible?
If we aren’t credible, then people won’t listen to our message. This surprised me. I thought Paul was going to say something about people trusting the fidelity of our translations, but I hadn’t really thought about our having a message. Now I was really engaged in the game and wondered how he would answer the next question. I really wanted to ask what he thought our message was, but instead I continued asking why…
Why do we want to convey a message, why is that important?
We need to convey a brand promise.
Why do we need to convey a brand promise?
We want to incite participation.
“What do you mean?” I asked, “we have no participation features on the site… you can’t even leave a comment, let alone record phrases, add translations, or make corrections.” Paul responded as I hoped he would. He didn’t refer to some future contributors using some future features, instead he referenced our real world community, like @brianrieger who tweeted about using Mightyverse to learn Mandarin on his mobile phone and our small community of contributors we have in-person relationships with who record phrase videos using our desktop application or in the Sausalito studio. People who develop web software sometimes seem to forget that community is a real world phenomenon.
Before we released the new site, we made the page look better including in-page playback, but skipped paging (because most of the phrase lists are short anyhow). After we released the site, we discovered that we have a broken link on the homepage and that an entire language was missing its data, but I feel good about letting our community in on the process a little bit. We’re a very small group of people making Mightyverse and we need more people involved if we’re ever going to capture a meaningful amount of even the world’s popular languages, let alone making a dent in the almost 7000 less widely spoken ones.
We’ve had a lot of conversations about our brand promise. We want it to be about integrity and treating people’s language and people’s contributions to Mightyverse with respect, but we also realize that even though we fixed this one page, that we break our brand promise all over the website when we have errors in the translations. We decided to prioritize the editing features over the live recording feature. This silly game sparked conversations that have changed the details of what we are doing and how we prioritize new features on the site. Our vision remains the same, but I think our path toward it has changed a little. I believe the details make all the difference.