Info Feed Weblog

Welcome

  • This is my weblog. There is also Link Feed.
  • eMail: stefan@smalla.net

Disclaimer

  • Everything here is my very personal writing and does not reflect the opinions of current or past employers, nor does it stem from confidential information obtained there.

Navigation

Sep 05, 2002

Best Practices for Internet Software Development

Developing software for the Internet requires certain approaches, and everybody knows it. This Harvard professor has also done some detailed empirical research, which he translates into advice for all of us. Very good article. A summary of the main aspects of the article follows. "Now there is proof that the evolutionary approach to software development results in a speedier process and higher-quality products."

Early release of low-functionality version
  • You should release a version of the evolving product design very early to your customers.
  • Using a prototype is not as useful. Force yourself to have a real low-functionality version out at the earliest possible stage.
  • In the empirical study that led to this article, this variable explained more than one-third of the variation in product quality across the used sample.
  • Also, interestingly, the number of beta releases couldn't be found responsible for product quality at all. One or two early releases were much more important.
  • Why is this so important? Reduced risk. Dropping features early that the customers will not want anyway (but might not know when they draw the specs). Finding out early which features are missing.

    Daily Builds and Rapid Feedback
  • Incorporate new software code daily.
  • Use feedback rapidly and implement it into your design.
  • Divide your project into many microtasks and manage those intensively.

    Team with experience in multiple projects
  • Hire a team with a broad experience in shipping multiple projects.
  • The length of experience is by far less important than having shipped multiple projects from start-to-finish.

    Product Architecture
  • Invest majorly into the design of your product architecture which most importantly has to be flexible, modular and scalable.
  • Well, easier said than done. I guess every architecture in the world tries to do that, but never mind.
    Posted by Stefan Smalla on Sep 05, 2002 at 0:22 | Permalink