11. Variability in the productivity amongst programmers and development platforms each varies by an order
of magnitude. Combined together and your choice of programming talent and software development platforms can result in
a 100x overall effect on product development productivity. This means that some teams can ship product in as little as 3
months and some projects won't ship ever, at least not without truly prohibitive time and resource requirements. While there
are a great many inputs to an Internet startup that will help or hinder it (take a look at Paul Graham's great 18 Mistakes That
Kill Startups for a good list), these are two of the most central and variable: Who is developing the product and what
development platform they are using. Joel Spolsky's write-up on programmer productivity remains one of the best at understanding this issue. It usually turns out that paying a bit more for the right developer can often mean tremendous output gains. One the other side of the coin, choosing a development platform not designed for creating modern Web
applications is another decision that can sap your team of productivity while they spend months retrofitting it for the features
they'll need to make it work properly in today's Internet world.
12. Plan for testing to be a larger part of software development process than non-Web applications. Cross
browser testing, usability, and performance/load testing are much bigger issues with Web applications than many non-Web
applications. Having to do thorough testing in a half-dozen to a dozen browser types can be an unexpected tax on the time
and cost of creating a Web product. Doing adequate load testing is another item that often waits until the end, the very worst
time to find where the bottlenecks in your architecture are. Plan to test more than usual. Insist on automated unit and
integration tests that build up over time and run without having to pay developers or testers to do it manually.
13. Move beyond traditional application hosting. Single Web-server hosting models are not going to suffice for your 2.0
applications. Reliability, availability, and scalability are essential and must be designed into your run-time architecture and
supported by your hosting environment. Solutions like3 T era, Amazon's Elastic Compute Cloud, and Google's App Engine are
three compelling, yet very different solutions to the hosting problem. Either way, grid and cloud approaches to hosting will
help you meet your growth and scalability requirements while managing your costs.
14. Have an open source strategy. This has two important aspects. One, developing and hosting a product built with
open source software (the ubiquitiousLA MP stack) is almost always much less expensive than using commercial software and
is what most online products use. There are certainly commercial licenses that have fair terms for online services, but almost
none of them will match the cost of free. This is one reason why you won't find Windows or Oracle embedded in very many
Web 2.0 services. Two, you'll have to decide whether to open source or commercial open source your product. This has
entirely to do with what your product does and how it does it, but an increasing number of Web 2.0 hosted products are
releasing their offerings as open source to appeal to customers, particularly if they are business customers. Done right, open
sourcing can negate arguments about the size of your company while enlisting many 3rd party developers to help enrich and
make your product better.
15. Consider mobile users as important as your regular browser customers. Mobile devices will ultimately form
the majority of your user base as the capability and adoption of smartphones, Internet tablets, laptops, and netbooks ushers in
mobile Web use as the dominant model. Having an application strategy as well as well-supported applications for the iPhone,
Android, and RIM platforms is essential for most Web products these days. By the time you get to market, mobile will be even
more important than it is now. Infoworld confirmed today, in fact, that wireless enterprise development will be one of 2009's
bright spots.
16. Search is the new navigation, make it easy to use in your application. You have 5-10 seconds for a new user to
find what they want from your site or application. Existing users want to directly access what they need without going through
layers of menu items and links. Search is the fastest way to provide random access navigation. Therefore, offer search across
data, community, and help at a minimum. A search box must be on the main page and indeed, every page of the modern Web
application.
17. Whenever users can provide data to your product, enable them. Harnessing collective intelligence is the most
central high-level principle of Web 2.0 applications. To be a major online competitor, getting your millions of users to build a
valuable data set around the clock is the key to success. Many product designers look at this too narrowly and usually at a
small set of data. Keep a broad view of this and look for innovative ways to get information from explicit contributions to the
database of intentions can form your architecture of participation.
18. Offer an open API so that your Web application can be extended by partners around the world. I'vec ov e red
this topic many times in the past and if you do it right, your biggest customers will soon become 3rd party Web applications
building upon your data and functionality. Critically, offering an API converts your online product into an open platform with
an ecosystem of 3rd party partners. This is just one of many ways to realize Jakob's law, as is the next item.
19. Make sure your product can be spread around the Web by users, provide widgets, badges, and gadgets. If
your application has any success at all, your users will want to take it with them and use your features elsewhere. This is often
low-effort but can drive enormous growth and adoption; think about YouTube's badge.
20. Create features to make the product distribute virally. The potency of this is similar to widgets above and
everything from simple e-mail friend invites to importing contact lists and social graphs from other Web apps are critical ways
to ensure that a user can bring the people they want into the application to drive more value for them and you
Next
of magnitude. Combined together and your choice of programming talent and software development platforms can result in
a 100x overall effect on product development productivity. This means that some teams can ship product in as little as 3
months and some projects won't ship ever, at least not without truly prohibitive time and resource requirements. While there
are a great many inputs to an Internet startup that will help or hinder it (take a look at Paul Graham's great 18 Mistakes That
Kill Startups for a good list), these are two of the most central and variable: Who is developing the product and what
development platform they are using. Joel Spolsky's write-up on programmer productivity remains one of the best at understanding this issue. It usually turns out that paying a bit more for the right developer can often mean tremendous output gains. One the other side of the coin, choosing a development platform not designed for creating modern Web
applications is another decision that can sap your team of productivity while they spend months retrofitting it for the features
they'll need to make it work properly in today's Internet world.
12. Plan for testing to be a larger part of software development process than non-Web applications. Cross
browser testing, usability, and performance/load testing are much bigger issues with Web applications than many non-Web
applications. Having to do thorough testing in a half-dozen to a dozen browser types can be an unexpected tax on the time
and cost of creating a Web product. Doing adequate load testing is another item that often waits until the end, the very worst
time to find where the bottlenecks in your architecture are. Plan to test more than usual. Insist on automated unit and
integration tests that build up over time and run without having to pay developers or testers to do it manually.
13. Move beyond traditional application hosting. Single Web-server hosting models are not going to suffice for your 2.0
applications. Reliability, availability, and scalability are essential and must be designed into your run-time architecture and
supported by your hosting environment. Solutions like3 T era, Amazon's Elastic Compute Cloud, and Google's App Engine are
three compelling, yet very different solutions to the hosting problem. Either way, grid and cloud approaches to hosting will
help you meet your growth and scalability requirements while managing your costs.
14. Have an open source strategy. This has two important aspects. One, developing and hosting a product built with
open source software (the ubiquitiousLA MP stack) is almost always much less expensive than using commercial software and
is what most online products use. There are certainly commercial licenses that have fair terms for online services, but almost
none of them will match the cost of free. This is one reason why you won't find Windows or Oracle embedded in very many
Web 2.0 services. Two, you'll have to decide whether to open source or commercial open source your product. This has
entirely to do with what your product does and how it does it, but an increasing number of Web 2.0 hosted products are
releasing their offerings as open source to appeal to customers, particularly if they are business customers. Done right, open
sourcing can negate arguments about the size of your company while enlisting many 3rd party developers to help enrich and
make your product better.
15. Consider mobile users as important as your regular browser customers. Mobile devices will ultimately form
the majority of your user base as the capability and adoption of smartphones, Internet tablets, laptops, and netbooks ushers in
mobile Web use as the dominant model. Having an application strategy as well as well-supported applications for the iPhone,
Android, and RIM platforms is essential for most Web products these days. By the time you get to market, mobile will be even
more important than it is now. Infoworld confirmed today, in fact, that wireless enterprise development will be one of 2009's
bright spots.
16. Search is the new navigation, make it easy to use in your application. You have 5-10 seconds for a new user to
find what they want from your site or application. Existing users want to directly access what they need without going through
layers of menu items and links. Search is the fastest way to provide random access navigation. Therefore, offer search across
data, community, and help at a minimum. A search box must be on the main page and indeed, every page of the modern Web
application.
17. Whenever users can provide data to your product, enable them. Harnessing collective intelligence is the most
central high-level principle of Web 2.0 applications. To be a major online competitor, getting your millions of users to build a
valuable data set around the clock is the key to success. Many product designers look at this too narrowly and usually at a
small set of data. Keep a broad view of this and look for innovative ways to get information from explicit contributions to the
database of intentions can form your architecture of participation.
18. Offer an open API so that your Web application can be extended by partners around the world. I'vec ov e red
this topic many times in the past and if you do it right, your biggest customers will soon become 3rd party Web applications
building upon your data and functionality. Critically, offering an API converts your online product into an open platform with
an ecosystem of 3rd party partners. This is just one of many ways to realize Jakob's law, as is the next item.
19. Make sure your product can be spread around the Web by users, provide widgets, badges, and gadgets. If
your application has any success at all, your users will want to take it with them and use your features elsewhere. This is often
low-effort but can drive enormous growth and adoption; think about YouTube's badge.
20. Create features to make the product distribute virally. The potency of this is similar to widgets above and
everything from simple e-mail friend invites to importing contact lists and social graphs from other Web apps are critical ways
to ensure that a user can bring the people they want into the application to drive more value for them and you
Next
No comments:
Post a Comment