Web Development

Vol. 5 No. 5 – July/August 2007

Web Development

A Conversation with Joel Spolsky:
What it takes to build a good software company

Joel Spolsky has never been one to hide his opinions. Since 2000, he has developed a loyal following for his insightful, tell-it-like-it-is essays on software development and management on his popular Weblog “Joel on Software”. The prolific essayist has also published four books and started a successful software company, Fog Creek, in New York City, a place he feels is sorely lacking in product-oriented software development houses. Spolsky started Fog Creek not with a specific product in mind, but rather to create a kind of software developers’ utopia, where “programmers and software developers are the stars and everything else serves only to make them productive and happy.” So far, he has succeeded. The company has maintained a 100 percent employee retention rate while shipping several profitable software products. Its latest release, Fogbugz, is a comprehensive, Web-based project-management system that uses a technique called EBS to help software developers better predict their release dates.

Building Secure Web Applications:
Believe it or not, it’s not a lost cause.

In these days of phishing and near-daily announcements of identity theft via large-scale data losses, it seems almost ridiculous to talk about securing the Web. At this point most people seem ready to throw up their hands at the idea or to lock down one small component that they can control in order to keep the perceived chaos at bay.

by George V. Neville-Neil

Phishing Forbidden:
Current anti-phishing technologies prevent users from taking the bait.

Phishing is a significant risk facing Internet users today. Through e-mails or instant messages, users are led to counterfeit Web sites designed to trick them into divulging usernames, passwords, account numbers, and personal information. It is up to the user to ensure the authenticity of the Web site. Browsers provide some tools, but these are limited by at least three issues.

by Naveen Agarwal, Scott Renfro, Arturo Bejar

Some Swans are Black:
…and other catastrophes

You may well expect from my title that I’m about to plumb the depths of Nassim Nicholas Taleb’s theories on catastrophe and quasi-empirical randomness. I, in turn, expect that you’ve already read Taleb’s best-selling The Black Swan—The Impact of the Highly Improbable dealing with life’s innate uncertainties and how to expect or even cope with the unexpected. Coping involves learning that the right answer to some problems is, “Don’t know.” I was tempted to end my column right here in order to prove something or other about our many failures in predicting the future, compared with our occasional successes in “postdicting” the past.

by Stan Kelly-Bootle

Usablity Testing for the Web:
Today’s sophisticated Web applications make tracking and listening to users more important than ever.

Today’s Internet user has more choices than ever before, with many competing sites offering similar services. This proliferation of options provides ample opportunity for users to explore different sites and find out which one best suits their needs for any particular service. Users are further served by the latest generation of Web technologies and services, commonly dubbed Web 2.0, which enables a better, more personalized user experience and encourages user-generated content. Although there is considerable debate over the definition of Web 2.0, the term is useful in distinguishing key innovations, such as weblogs, social bookmarking, tagging, wikis, RSS feeds, Ajax, Web APIs, and online Web services, that have significantly altered the Web user experience since the 1990s.

by Vikram V. Ingleshwar

Voyage in the Agile Memeplex:
In the world of agile development, context is key.

Agile processes are not a technology, not a science, not a product. They constitute a space somewhat hard to define. Agile methods, or more precisely agile software development methods or processes, are a family of approaches and practices for developing software systems. Any attempt to define them runs into egos and marketing posturing. For our purposes here, we can define this space in two ways: By enumeration. Pointing to recognizable members of the set: XP, scrum, lean development, DSDM, Crystal, FDD, Agile RUP or OpenUP, etc.

by Philippe Kruchten

Gettin’ Your Head Straight:
Kode Vicious is hungry. He sustains himself on your questions from the software development trenches (and lots of beer). Without your monthly missives, KV is like a fish out of water, or a scientist without a problem to solve. So please, do you part to keep him sane (or at least free from psychotic episodes), occupied, and useful.

Dear KV, One of the biggest problems I have is memory. Not the RAM in my computer, but the wet squishy stuff in my head. It seems that no matter how many signs I put up around my cube, nor how often I turn off all the annoying instant messaging clients I need to use for work, I can’t get through more than 15 minutes of work without someone interrupting me, and then I lose my train of thought. If this happens when I’m reading e-mail, that’s not a problem, but when working on code, in particular when debugging a difficult problem in code, this makes my life very difficult. What tricks are there to being able to maintain a train of thought without moving up the side of a mountain?

by George V. Neville-Neil