You Should Know Better
Jonathan Goodyear offers advice on good development concepts andpractices.
October 30, 2009
Back Draft
You Should Know Better
By Jonathan Goodyear
There s a new game show on television named Are YouSmarter than a 5th Grader? (http://www.fox.com/areyousmarter/).The premise of the show is that adult contestants are asked questions from grade-schooltextbooks from first grade through fifth grade. The contestant can utilize thehelp of a handful of 5th graders up to three times during the game.
Of course, each contestant probably knew the answer toeach question back when they were in grade school, but the show points out justhow 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 recentlyreleased Microsoft Outlook 2007. Many people (including myself) have found thatit does not perform well with larger mailboxes. Microsoft confirmed that theproblem 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 anew data structure for .pst and .ost files. In this new data structure, thefrequency of writing data to the hard disk increases as the number of items inthe .pst or .ost files increases.
Most problem-solving approaches that create a workloadthat increases in an exponential vs. linear fashion are problematic, as theyseverely limit the scalability of the system. Joel Spolsky calls this a Shlemielthe painter algorithm (http://www.joelonsoftware.com/articles/fog0000000319.html):
Shlemiel gets a jobas a street painter, painting the dotted lines down the middle of the road. Onthe first day he takes a can of paint out to the road and finishes 300 yards ofthe road. That s pretty good! says his boss, you re a fast worker! and payshim a kopeck.
The next dayShlemiel only gets 150 yards done. Well, that s not nearly as good asyesterday, but you re still a fast worker. 150 yards is respectable, and payshim a kopeck.
The next dayShlemiel paints 30 yards of the road. Only 30? shouts his boss. That sunacceptable! On the first day you did ten times that much work! What s goingon?
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 largepictures, video, and other attachments in e-mail, 2GB is far from anunreachable star. Shoot, even Gmail gives you more than 25% more storage spacethan that (http://mail.google.com).Hopefully Microsoft is working on a better solution than the workarounds theysuggest in the article.
Another topic that is nearer and dearer to Web developmentis load testing. We all know that it is very important to load test our Webapplications, but how many of you do formal load testing early in yourdevelopment process? How many of you wait until right before deploying a Webapplication to load test it (if you load test at all)? My company specializesin analyzing Web applications for performance bottlenecks, and that part of ourbusiness is fueled by our clients habit for non-compliance with the rule ofload testing early and often. We help show them the light.
There really isn t a good excuse for not load testing yourWeb applications anymore, as there are several good tools out there to helpyou. 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 GateSoftware (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 productivewith.
With so many new technologies coming at us every day, it seasy to forget all the basic concepts that are so vital to effective softwaredevelopment. 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 themlike brushing your teeth and eating your vegetables. Do them every day so thatthey become habit. Don t let complacency create problems for you down the road.
Now, quick: How many sides does a rhombus have?
Jonathan Goodyearis president of ASPSOFT (http://www.aspsoft.com),an Internet consulting firm based in Orlando, FL. Jonathan is MicrosoftRegional Director for Florida, anASP.NET MVP, a Microsoft Certified Solution Developer (MCSD), and co-author of ASP.NET 2.0 MVP Hacks (Wrox). Jonathan also isa contributing editor for asp.netPRO.E-mail him at mailto:[email protected] orthrough his angryCoder eZine at http://www.angryCoder.com.
About the Author
You May Also Like