Paul, Jake and I were chatting a few weeks ago wondering how we can establish an ongoing dialog with our peers in product strategy and capture the innovative ideas they have for our future products. We thought of several ways to do this:
- Having conference calls to exchange ideas on a regular basis
- Inviting our peers to collaborate on a Google doc
- Build a simple website to track their ideas
Obviously, 1 and 2 are bad ideas, so we opted for 3. What we needed was a site where people can submit their ideas, tag them, have them be rated by their peers, and allow comments to be entered. I like to call it “The Wall” — throw your ideas up on the wall and see if they stick… the community will decide. The real name of the site is “IdeaFactory”. A pretty simple site, really. It follows the same principles as most Web 2.0 sites today — folksonomies and feedback systems (ratings/comments) to facilitate community building. So, that night I set out to build it.
As you know, I’m a rails fanboy now and so building it with RoR was a no brainer for me. I already knew that there were rails plugins for most of the features we needed (tagging, comments, search, etc.) My job would be to just tie them all together. To start, I gathered together the best plugins I knew about to build this site (I used agilewebdevelopment.com to help me). I ended up with these plugins:
- acts_as_commentable — for comments integration
- acts_as_ldap_authenticated — this is a variation on acts_as_authenticated with LDAP authentication support. In the future, I think I’ll migrate the LDAP code in this plugin to the restful_authentication plugin. I needed this plugin to tie into Oracle’s LDAP system so that users can just use their Oracle userid/pwds to get into the site.
- acts_as_taggable_on_steroids — for tagging support
- permalink_fu — not necessary, but gives me nice readable URLs
- acts_as_rateable — enables a five star rating system
- tiny_mce — enables WYSIWYG text editing which allows people to enter their content with some basic formatting.
The beauty of using rails is that over the past few years, it’s become a popular choice for building “2.0” style apps. And so, lots of the features of a “2.0” style web application have been turned into rails plugins which makes building stuff with those features dirt simple. It’s also a framework that has a huge (and growing) community of developers who love to share their knowledge and code.
When I started building the IdeaFactory, I had no idea that I would have a working version within 24 hours with all the key feature (tagging, ratings, comments, and LDAP auth). I’ve built a few rails apps before this one, but none that were really that interesting. The IdeaFactory is something that was interesting because it was badly needed by our teams — too many ideas weren’t being shared and critiqued by the general Oracle ecosystem. So, we knew that if we built the IdeaFactory, it would get used a fair bit and would help Oracle product strategists be more collaborative.
I started coding on a Thursday night and by mid-day Friday morning, I had the general pieces in place so that data can be entered. On Friday afternoon, I requested a new hostname (http://ideas.us.oracle.com — intranet) which came alive by Saturday. I made a few enhancements over Saturday and Sunday and by Monday, the site was live! Since then, the site’s taken off (thanks to the additional boost by Justin). It’s become such a popular site internally, that there’s talk of putting together a public facing IdeaFactory site for Oracle customers — I’m hoping that happens.
While many of us in development have been used to the whole process of requirements gathering, writing a BRD (business requirements doc), FDD (functional design doc), and TDD (technical design doc) — which I’m intimately used to doing over the years, it’s refreshing to be able to just roll up my sleeves and start building something and have a working product within hours of starting.
I can’t wait for my next project. Stay tuned… you’ll hear about it here.