Thursday, August 4, 2005 posted by Benjamin Pollack
It’s been a very long time since I’ve posted anything on this blog. That’s not been because I’ve lost interest; it’s been because we’ve all been extraordinarily busy. As of today, we enter code freeze: no new features can be implemented in the host and helper applications unless they are fixing severe bugs, and even those fixes have to undergo a code audit (at least theoretically). As a result, we’ve all been in a kind of blitz to get as much possibly done before today as we could.
For example, we have this cool interface art for the Helper and Host apps that our graphic design artist made for us, but none of it was implemented at the beginning of the week. In a long stretch from 9:30 AM to 11:15 PM on Monday, I managed to implement all of it except for one animated panel in the Helper. Those of you who use the new beta that we just released should be greeted to a much nicer interface.
The weird thing to me is how much those bitmaps make the application feel more professional and solid, even though graphics obviously have nothing to do with an application’s stability. Code-wise, making the interface look pretty is extraordinarily time-consuming, but not because it’s programmatically difficult. The code required to modify the UI was, with one or two exceptions, trivial compared even to some of the simpler network components, and does not begin to compare to some of the more complex changes we’ve made to general functionality. What makes it time consuming is how hard it is to make everything line up and look just right. The human eye has an amazing capacity to notice when items are mere pixels from perfectly aligned because you slightly miscalculated a bounding box, or when items flicker subtly because you didn’t think you really needed to double-buffer that redraw. The result is a nearly endless cycle of seeing something that doesn’t quite look right, quitting the application, tweaking a couple layout parameters, and firing the application back up, only to discover that now your components are messed up in an entirely different area—again only by a pixel or two. Blech.
Thankfully, all of that’s now implemented, and I have to say that I personally think that the applications really look top-notch. In addition to simply having a generally slicker interface with new graphics and full support for Windows XP themes, we’ve also added a nice toolbar that finally allows sending an explicit refresh and the Windows Three-Fingered Salute.
The really cool thing is that we’re finally getting reviews, and the reviews are positive even without all of the spit and polish that’s in our most recent builds. Ryan Hartwich at FusionAuthority overall is quite positive about the Fog Creek Copilotsmservice. Go check it out. (On a random note, Joel, who read the article before we had a chance to, came out of his office enthusiastic yet visibly confused and told us, “Hey, you guys got your first review! I didn’t quite get why he thinks you should be boiled though.” That sounded rather ominous, so we all quickly loaded up the review fearing the worst, only to find that the sentence actually read, “Overall, the interns at Fog Creek have done an admirable job and should be poached upon graduation.” So, to any recruiters: please ensure you understand the difference between poaching other people’s employees and boiling other people’s employees. I think I speak for just about everybody when I say we appreciate it.) Reviews like that make all the pain worthwhile.
It’s going to be very sad to leave Fog Creek next week. I cannot believe the summer ended so quickly. There are so many features in Project Aardvark we’ve not had a chance to implement yet that it feels, with quite a bit of justification, as if we’re leaving the project midstream. Tyler will be staying on to single-handedly take all four pieces of the Fog Creek Copilot service from 1.0 to 2.0, and it will be sad not to be around to watch that happen. Nevertheless, I feel very proud of what we’ve all been able to accomplish. The four of us have managed to take a product from conception to running beta in only about four weeks, and now, at the tenth week, we’re days away from an official 1.0 release. I know that I made an awful lot of mistakes on many things, but I also learned an incredible amount about programming and, more importantly, about development in the grander sense. I think that Project Aardvark, over the span of the summer, has reflected both the mistakes and the learning that followed. There have been some rough spots, but we’ve pulled through all of them, and Copilot really is looking like a solid product now.
Will Project Aardvark and Fog Creek Copilot stand the test of time and grow to become a major service? I certainly hope so. But whether it does or not, it’s been a wonderful summer, and it will be very fun to watch what happens to our products in the coming years.