You Should Know Better
By Jonathan Goodyear
There s a new game show on television named Are You Smarter than a 5th Grader? (http://www.fox.com/areyousmarter/). The premise of the show is that adult contestants are asked questions from grade-school textbooks from first grade through fifth grade. The contestant can utilize the help of a handful of 5th graders up to three times during the game.
Of course, each contestant probably knew the answer to each question back when they were in grade school, but the show points out just how much we forget over time. The same thing can happen to software developers. We sometimes forget the basics, and it happens to the best of us.
A very public example can be found in the recently released Microsoft Outlook 2007. Many people (including myself) have found that it does not perform well with larger mailboxes. Microsoft confirmed that the problem exists for mailboxes that are larger than 2GB in size (http://support.microsoft.com/default.aspx/kb/932086). From the referenced article:
To accommodate new features, Outlook 2007 introduced a new data structure for .pst and .ost files. In this new data structure, the frequency of writing data to the hard disk increases as the number of items in the .pst or .ost files increases.
Most problem-solving approaches that create a workload that increases in an exponential vs. linear fashion are problematic, as they severely limit the scalability of the system. Joel Spolsky calls this a Shlemiel the painter algorithm (http://www.joelonsoftware.com/articles/fog0000000319.html):
Shlemiel gets a job as a street painter, painting the dotted lines down the middle of the road. On the first day he takes a can of paint out to the road and finishes 300 yards of the road. That s pretty good! says his boss, you re a fast worker! and pays him a kopeck.
The next day Shlemiel only gets 150 yards done. Well, that s not nearly as good as yesterday, but you re still a fast worker. 150 yards is respectable, and pays him a kopeck.
The next day Shlemiel paints 30 yards of the road. Only 30? shouts his boss. That s unacceptable! On the first day you did ten times that much work! What s going on?
I can t help it, says Shlemiel. Every day I get farther and farther away from the paint can!
With the increasing number of people exchanging large pictures, video, and other attachments in e-mail, 2GB is far from an unreachable star. Shoot, even Gmail gives you more than 25% more storage space than that (http://mail.google.com). Hopefully Microsoft is working on a better solution than the workarounds they suggest in the article.
Another topic that is nearer and dearer to Web development is load testing. We all know that it is very important to load test our Web applications, but how many of you do formal load testing early in your development process? How many of you wait until right before deploying a Web application to load test it (if you load test at all)? My company specializes in analyzing Web applications for performance bottlenecks, and that part of our business is fueled by our clients habit for non-compliance with the rule of load testing early and often. We help show them the light.
There really isn t a good excuse for not load testing your Web applications anymore, as there are several good tools out there to help you. The two that my company prefers are Microsoft Visual Studio Team System (Team Suite or Team Edition for Software Testers) and ANTS Load by Red Gate Software (http://msdn2.microsoft.com/en-us/teamsystem/default.aspx); http://www.red-gate.com/products/ants_load/index.htm). Both do a very good job, and are relatively easy to learn and become productive with.
With so many new technologies coming at us every day, it s easy to forget all the basic concepts that are so vital to effective software development. In this column I listed two examples, but there are so many more. A good way to remember good development concepts and practices is to treat them like brushing your teeth and eating your vegetables. Do them every day so that they become habit. Don t let complacency create problems for you down the road.
Now, quick: How many sides does a rhombus have?
Jonathan Goodyear is president of ASPSOFT (http://www.aspsoft.com), an Internet consulting firm based in Orlando, FL. Jonathan is Microsoft Regional Director for Florida, an ASP.NET MVP, a Microsoft Certified Solution Developer (MCSD), and co-author of ASP.NET 2.0 MVP Hacks (Wrox). Jonathan also is a contributing editor for asp.netPRO. E-mail him at mailto:[email protected] or through his angryCoder eZine at http://www.angryCoder.com.