The alpha release of our site/product developed as an open agile project has just gone live!
http://tynerblain.com/nexus/ is the home page. More stats and updates below.
Time To Market
We started the project exactly one month ago today. We defined a vision and scope, target users, use cases, constraints, UI designs and implementation designs. We also created tests at a specification level (user login ID must be unique, etc). We designed a logo and worked on information architecture.
We learned Ruby on Rails (learned enough to launch, anyway – much more to learn) along the way, and had to get some help with setting up our deployment environment. Now, updates to the site can be pushed to the server with a single command-line.
We spent somewhere between 160 and 200 man-hours on this release, across all the different areas, with I believe, the following rough breakout of time:
- 1/3 requirements
- 1/6 design
- 1/2 learning
- 1/6 implementation (and most of that in writing tests)
Kevin Rose mentioned that the first version of digg was built by one guy in two weeks – after giving him a spec. I think we stayed competitive with that, especially given the time spent learning the language. Digg was built in php by someone who knew php already.
Delivered Capabilities
What can you do with nexus today? We defined the priorities for the first release on April 25th as follows:
- Browse An Area (Jill & Paul + Ellen). First. Done
- Suggest An Article [Version 1] (Paul & All). First. Done
- Rate An Article (Jill & All). First. Done
- Search For A Topic (Jill & Paul + Ellen). Second.
- Broadcast An Article (Paul). Second.
- Comment On An Article (Paul & All). Second. Done
After getting some great feedback, we recognized that commenting (aka reviewing) an article was also important – possibly more important than numerical ratings. When we discovered the security issues that we needed to address, that bought us some time – it delayed the initial release while we learned and implemented protection. During that time, we added in the ability to do reviews.
Some Bonus Features
We also implemented a couple other things “early” while we were there.
- The ability to rate a review – is it fair, accurate, misleading?
- The ability to view “my articles” – all of the articles you submitted are available on the “Your Page” page.
- Friendly URLs – part of this came out of our IA exploration.
- A first attempt at “scoring” the quality and content that each user contributes. The scores reflect how many articles you submit and reviews you write. More importantly, they are driven primarily by the ratings that your articles and reviews receive.
- Faceted navigation is in place too – allowing people to use different browsing approaches.
What’s Next for Nexus?
I’m about to leave for the airport – my mom is visiting for the weekend, so we won’t really make any progress tomorrow. Once we get started again, we’ll finish up the features for the second release (searching and emailing). Emailing will be tricky – we have to prevent spammers from using the site to bombard people with emails. Searching may be easy, but we have stuff to learn first.
We also have some “catchup testing” to write – there is a tool that provides code-coverage analysis, which we need to install and apply. So next week will be primarily working on those two features, adding testing, and refactoring.
Ideas
I’ve had a couple ideas this week.
Rolf submitted an article that is in German. I want to see if there’s an easy way to leverage Google’s translation tools to automatically translate the articles (if desired) into the current user’s language of choice, when the user leaves nexus to visit those articles.
I’ve also been thinking about “books” as peers to “articles” – I want to explore that more, but I still believe it is secondary to at least the already-prioritized features.
I think it might be handy to generate an RSS feed from nexus, so that people can keep track of when new articles are submitted – both overall, and by category/experience.
I need to see how to make Ruby on Rails perform scheduled tasks (like backing up the database, tracking statistics, etc). I want to be able to monitor how the site grows over time. I think it also might be interesting to share that data publicly. For now, there are some counters in the sidebar that provide real-time data, but no history.
What Can You Do?
Sign up, and start submitting, rating, and reviewing articles. We have to collectively make a push to get enough content (and feedback on content) into the site to make it a useful, then compelling, then necessary resource for people.
Thanks to everyone who has helped so far, and especially to everyone who helps push us to get valuable content up asap.
First of all: congratulations, Scott. I think you’ve done a lot of high quality work during the last month. I’m happy to be a part of it.
However, allow me to comment on the agile project experiment (no offense intended !).
For me, in an agile project there’s no room for “Bonus Features –
a couple other things implemented early while we were there”. I’d like to see us come back to the original idea of prioritization (which can mean a change of priorities with the help of the users).
All new ideas or things we stumble upon should undergo the same persona/usecase/priorities analysis as the original ideas did. Otherwise this project leans over to hacking. (However, I respect your dictator role, Scott.) This should be done for the purpose of the experiment reader’s (and my) education and their chance of gaining insight. I know that it is easier to skip these things, but that is not what we are preaching in agile/lean product development classes/articles/books.
On the other hand, can the “change of plan” be interpreted as an experience with agile projects? Can we deduct that it is more important to have a strong product manager than to have a clear process for transforming ideas into products? (or even further, that projects should be created so, that a product manager can implement his own vision ;-)
This would be very interesting knowledge I gain from the experiment.
I’d love to know what YOU are thinking about the project’s process. Why did we deviate?
Hey Rolf, first – thanks for the help on the project, I’m looking forward to more as we go. Second – thanks for the spot-on critique of the “bonus features.”
I just typed a really long response, and then decided to make it into today’s article. Thanks again, and check out the next article for this ongoing discussion.
I join Rolf in congratulating you on putting together a neat site so quickly.
I would go further than Rolf in questioning the “agileness” of the approach, however. It seems to have been a waterfall process despite the short amount of time it took to get the basic site up and running.
An example of “true” agile process would have been one that resulted in a first “release” that was completely hardwired – e.g. one or more use cases implemented as a sequence of static web pages. Such a release would enable you to exercise the requirements and interaction design risks – and obtain feedback about the requirements and usability from users of a “working” system – in a fraction of the time.
I list some approaches to iterating here.
Thanks Roger. Although I only mentioned it briefly, I did get an early pre-alpha to a few people (the site was functional at a different URL before it became nexus, around build 65). I also was able to get feedback in person from folks who saw a prototype on my laptop. I didn’t share those early versions more broadly because I felt they might dissuade end users. The alpha was the first “complete enough” version to share with people indiscriminately.
It is a challenge to balance the perception of “incomplete products” that comes from early releases to the wrong people with the need to get feedback on early releases.