|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||
|
DevPartner Studio Helps Cut Web Site Publishing Times in Half
In 2000, after working at high-profile IT companies, Joel Spolsky decided to use his experience to start his own company. His goal was to provide programmers an opportunity to work in a fun, supportive environment instead of a typical corporate setting, and Fog Creek Software was born. "We started with an idea for a company, and then a couple of products fell out of that idea," says Spolsky, Fog Creek’s CEO. One such product is FogBUGZ, a web-based system for managing software projects. The other product, CityDesk, is a content management system that automates the processes of formatting web pages, creating home pages and publishing sites to web servers. Spolsky built CityDesk for a niche market: small- to medium-size companies that do not require complex, expensive systems or outside companies to create and maintain their sites. CityDesk is an affordable product that allows customers to publish web sites on their own, thanks to easy-to-use templates and a "word processor-like environment," says Spolsky. CityDesk customers range from churches and college newspapers to slightly larger venues, like the southern New Mexico tourism board, whose web site features various attractions on some 500 pages. Once updates are added, "CityDesk can normally publish southern New Mexico’s site in about one minute," says Spolsky. Detect Errors AutomaticallyAfter working eight months on the latest release of CityDesk, Spolsky noticed that the publishing times were beginning to double. For previous releases of CityDesk, Spolsky and his team would search for the source of the problem by manually weeding out any code they suspected was slow and then re-running the program multiple times. "I always sort of knew in the back of my head that I needed to do some profiling to try to figure out where such problems were coming from," However, when Spolsky purchased a profiling tool, he was soon disappointed with it. "It failed to profile my application and installed itself in such a way that destroyed my IDE," says Spolsky. "Installing it was a disaster, then I couldn’t uninstall it; I pretty much had to remove all my compilers and reinstall them." As the founder of what is still a small, start-up company, Spolsky would have preferred to avoid this type of setback. Currently, "we’re working off of revenues that we’re getting from our two software products," says Spolsky, indicating the company needs to be selective about its purchases. Fortunately, Spolsky—who is well-known in the developer community as an software guru—was in the midst of writing a series of product reviews for Programmer’s Paradise, a popular software catalog, and was given the opportunity to review a different profiling tool, for free: Compuware’s DevPartner Studio. "I was in a position to use DevPartner on a real commercial application that I needed to ship, and then write about how the tool helped me in the real world," says Spolsky. As soon as Spolsky received DevPartner, he installed the tool. "In less than five minutes, DevPartner told me where the problem was, but I didn’t believe it for some reason. I was a little skeptical to believe it could be that easy," says Spolsky. Therefore, he proceeded to search for the problem himself. By manually looking at various versions of source code spanning the previous eight months, Spolsky was able to narrow down the slow code to one specific month. After about an hour of searching, he pinpointed the problem. "By using DevPartner and then doing the search myself, I realized both methods were pointing me in the same direction," says Spolsky. A check-in code had caused the problem. "There were all kinds of changes made on that check-in, including a change on a function that DevPartner told me about. I had accidentally changed the function to prevent it from caching its results, so it was running thousands of times when it only needed to run dozens." Spolsky states, "DevPartner’s performance analysis helped speed up my application by 50 percent, or to half the amount of time it was taking to publish clients’ web sites." Optimize Code PerformanceOnce he found the major problem, Spolsky went searching for even more ways to optimize publishing times for his application. According to DevPartner, there were By automating the error detection process and helping Spolsky optimize code performance, DevPartner Studio has improved Fog Creek Software’s competitive standing in the marketplace. "From a business perspective, the faster we can publish, the larger the web site we can publish. The larger the web site, the larger the potential audience we can reach," says Spolsky. After witnessing the benefits of DevPartner firsthand, Spolsky asserts, A man of his word, Spolsky did just that—giving the tool a glowing endorsement in Programmer’s Paradise: "The stability of DevPartner Studio is quite an accomplishment: Integrating with the development environment and instrumenting code is not easy and the fact that DevPartner does it flawlessly, even in my convoluted VB/VC++/COM project, was quite impressive." Spolsky is currently considering the purchase of DevPartner Studio, to optimize publishing speed capabilities in future releases of CityDesk. |
||||||||||||||||||||||||||||||||||||||||||||