Dion Hinchcliffe recently published a great blog post, ’50 Essential Strategies For Creating A Successful Web 2.0 Product’. Dion highlights the success of online web app’s coming from software architecture and product design. I know Dion and have featured Dion Hinchcliffe’s blog on our E20portal.com website. Dion is heavily focused on Web2.0 and Enterprise IT architecture. You only have to look at Twitters ups and downs to see the effect weak foundations can have on a web app. The challenge is should you prepare your web app for scaling now or worry about it later.
Oh no, Twitters down again!! (Febuary 2009)
We liked Dion’s post so much we checked his architecture/design recommendations against our startup web app to see if we’re on the right tracks:
- Start with a simple problem– Web infrastructure monitoring is a mature sector and we are focused on one simple solution.
- Create prototypes as early as possible – We built an inexpensive prototype late last year
- Get people on the network to work with the product prototype rapidly and often – We are trying v.hard to get our beta out as soon as possible.
- Release early and release often– As a SaaS provider releasing often is the norm
- Manage your software development and operations to real numbers that matter – We’ve already commercial identified key performance indicators
- Gather usage data from your users and input it back into product design as often as possible – We are very keen to do this but need to work more on click stream analytics
- Put off irreversible architecture and product design decisions as long as possible – Tricky to do
- Choose the technologies later and think carefully about what your product will do first – Yes, problem first platform second
- When you do select technologies, consider current skill sets and staff availability– We’ve chosen one of the big mainstream platforms/frameworks
- Balance programmer productivity with operational costs – A careful balancing act. Time will tell on this.
- Variability in the productivity amongst programmers and development platforms each varies by an order of magnitude– We have not hit the challenge yet.
- Plan for testing to be a larger part of software development process than non-Web applications – We already had Cross browser testing, usability challneges when building E20portal.com. We should load test The Aware Monitoring app – Thanks Dion 🙂
- Move beyond traditional application hosting– We defiantly want the benefits grid /cloud hosting can bring
- Have an open source strategy – We are using Open source 😉
- Consider mobile users as important as your regular browser customers – This is an important point to keep it in mind.
- Search is the new navigation, make it easy to use in your application– Again this is an important point and we need to be mindful.
- Whenever users can provide data to your product, enable them – We need to crawl before we can walk
- Offer an open API so that your Web application can be extended by partners around the world– I’d love to have an Open API but it’s over the horizon
- Make sure your product can be spread around the Web by users, provide widgets, badges, and gadgets – Excellent point! 🙂 One we have thought about.
- Create features to make the product distribute virally – As point 19.
- The link is the fundamental unit of thought on the Web, therefore richly link-enable your applications – We like linking 🙂
- Create an online user community for your product and nurture it– I’m not so sure about putting too much time into a full blown online community. Perhaps a forum..We’ll see..
- Offer a up-to-date, clean, compelling application design – Dion is spot on :), this is vital in the Web app space. Need to put in the time and effort
- Load-time and responsiveness matter, measure and optimize for them on a regular basis – It has to be!
- User experience should follow a “complexity gradient.” – Another good idea 🙂
We found reviewing our progress against Dion’s points a great sanity check. I’ll post the next 25 points another day. On our journey we’ve found lots of helpful advice including Joel on Software, 37Signals, etc. This link to a video from Dharmesh Shah is very, very useful for new tech startups eager to learn from the mistakes/pitfall of others.
I think the challenge is how much upfront effort do you put into the architecture, as most Web Apps ain’t going to sky rocket to rockstar status i.e. Twitter. Leah Culver learnt along the way with Pownce (now part of SixApart) and had scaling challenges. Feedburner put alot of upfront effort into the architecture design and produced a scalable stable app. Unfortunately architecture design costs time and money in the short run if you prepare for scale. However it also costs in the long if you don’t prepare and then have to re-architect. Its all a matter of calculated risks