As the site develops we’ve been putting a lot of thought into how to architect things in a suitably general way - to build a playground for users with a set of objects they can play with, and a consistent set of actions they can perform. We found the following approach to be one rather nice way of thinking about it (cue monster diagram which Wordpress refuses to format nicely):
| VERB \NOUN | STASH (save / collect / organize) | STALK (watch / observe / subscribe to) | CHAT ABOUT | WRITE ABOUT | TAG | BUY / DOWNLOAD | UPLOAD / create |
|---|---|---|---|---|---|---|---|
| MUSIC / artist / label | Save music for download queue; make playlists; organise music library | Watch for new releases and events by artist or label; who’s listening to an artist/release/track? | Bitch about music | Review releases; Interview/profile artists; write music news | Categorise music (genres?) | Buy music! or download unlimited music if subscriber | Upload your own tracks; create mixes and playlists |
| WORDS | Bookmark content; compile your own editorial selections | See who’s chatting about a piece | Bitch about someone’s news/review/etc | Categorise writing; tell us what it’s about | Upload your own content | ||
| CHATS | Organise your chat history; bookmark chats | Get alerts about new posts in a chat | Categorise chats; tell us what they’re about | Start a chat! Participate! | |||
| PEOPLE | Friends list; create user groups | Get alerts on what friends are up to! | Bitch about that guy/gal | Profile / interview / write a testimonial about someone | Categorize your friends (?) | Sign up! Invite friends! | |
| EVENTS / venues / locations | Bookmark events; add to your calendar | Watch for new events at a venue / near to a location; Look for new attendees of an event | Bitch about that band you saw the other night | Review / preview events | Categorise events | Buy tickets; download flyers | Add your own events |
| PICTURES | Make photo galleries | Bitch about that pic your mate took | Attach photos to content | Tell us what photos are of; tag your friends | Download photos and cover art | Upload your photos and art |
Obviously some of these things are a while off in terms of development - but this should give eager loudplayers an idea of what to expect!
From a software architecture standpoint, I found this an interesting exercise too. On a data modelling / OOD level, our Nouns correspond roughly with classes or data types, and our Verbs with interfaces / method signatures. Of course in practise it’s not quite as simple as the diagram’s layout suggests. But thinking about things in this way does help to identify a useful set of shared interfaces. Rather than keep tacking on additional, distinct modules of functionality (let’s throw in an events section!), we’d like to add nouns and verbs to our playground.
On the user interface level, too, this kind of analysis helped to clarify thinking on how to present a structured, consistent user interface, and how to structure navigation. We have a lot of work to do on this front too, but I feel we’re making great progress. John, our graphic designer and Tim our new recruit and go-to man for UI development, have been battling valiantly with photoshop, css, rails helpers, partials and view code. The task has been to build a suitably general and standardized way of presenting different types of object across the site - music, words, chats, people, artists and so on, all need representing consistently at different sizes and in different contexts, together with icons and links for the actions users can perform on them. It’s been frustrating at times but I think we’re beggining to nail it, and it’ll pay large dividends in the future in simplifying and providing structure for further UI development.