Thinking points for building a web app
I’m involved with a start-up building a web app. The following was my initial outline describing what I thought were some important thinking points in developing a web app.
Key ideas:
- Workflow is everything
- Email is the lowest common denominator - every app needs ways to interface using email (get and set data) - the concept extends out to email-via-mobile
- Distributed platform - a site is just one interface to your platform (others = email, rss, docs, widgets, mobile)
- Emergent architectures - data is dynamic, architectures need to be dynamic (tagging, faceted browsing)
- User participation - the web is a read/write platform
- Publish and subscribe - smart ways to automate read/write (RSS, SOA)
- User generated content - both explicit (comments) and implicit (user meta data - "People who like this also like")
- Scalable participation - needs to work for lurkers and power geeks
- Content generation is a selfish act - a lot of user generated content is created by "implicit creation" - bring user meta data to the surface. Let people pivot around the meta data to get different perspectives (faceted browsing).
- Mass customisation - tools/services to allow millions of people to customise their product/experience
- The long tail - a corollary of mass customisation - providing easy access to millions of niche items can be more profitable than focusing on a few big hits - metadata is key to making this happen
- Programmable web - developers need the ability to build new tools and features via SOA
- Agile + iterative - func specs can kill, design for adaptation
Other import ideas:
- The End of Software Upgrades, Fixes, and Security Patches.
- Software and Data Available Wherever You Go
- Isolated Software Can’t Compete with Connected Software
- Deprecation of the Traditional Operating System
- Software That Is Invisible
- Design the system not the surface
- Design as evolutionary and user-driven
- There is no page, only pathways
- Rapid and iterative over final
- Simplicity over complexity
- Collaborative and open design
- Easy to Learn, Lifetime to Master
- Offer clear and obvious short term and long term goals.
- Players should be able to succeed in the first 10 minutes or earlier.
- Support short session times of 10-15 minutes as well as longer.
- Support multiple player styles such as Bartle’s 4 types: Achievers, Explorers, Socializers, and Player Killers.
Important sites/platforms:
- amazon - read/write, recommendation system, mass customisation, distributed platform, long tail, open API - progammable web (must read amazoning the news)
- ebay (trademe) - read/write, distributed platform, marketplace, reputation system
- paypal - email is the interface, distributed platform
- wikipedia - read/write, user participation, reputation system, distributed platform, infinite version control
- flickr - AJAX workflow, read/write, social platform, distributed platform, open API - progammable web, long tail
- gmail - AJAX workflow, read/write, distributed platform
- delicious - read/write, distributed platform
- craigslist - read/write, social platform, long tail
- cafepress - read/write, mass customisation, distributed platform, marketplace
- 37better - great web UI thinking, "Getting Real" agile + iterative approach
- IM, p2p - read/write, distributed platform, always connected, asynchronous
- typepad - read/write, ASP, social platform
- firefox - tabbed browsing, extensions (programmable web), standards compliant, open source
- RSS - distributed platform, read/write, pub-sub, in-box for the web
- greasemonkey - programmable web
- last.fm - read/write, implicit creation, social platform, recommendation system, distributed platform
- zohowriter - read/write, AJAX workflow, infinite version control, distributed platform
- tivo - workflow, publish and subscribe, recommendation system

Leave a Reply