I've been rather quiet lately on this weblog -- mainly because we've been working so hard at Fog Creek getting ready for the beta of CityDesk, our flagship product. But I'd like to spend some time now talking about the design and development of CityDesk.
Working on CityDesk, part One
Check out our new discussion board. It's not totally done yet, but feel free to start playing with it. Messages you post will probably disappear in a couple of days when I put up the final version.
Not-Invented-Here
"When you're working on a really, really good team with great programmers, everybody else's code, frankly, is bug-infested garbage, and nobody else knows how to ship on time."
In Defense of Not-Invented-Here Syndrome
Discussion Board
The cool new discussion board is done!
The URL for the new discussion server is http://discuss.fogcreek.com/joelonsoftware .
Underline Edit Boxes
I like to make fun of designers who reinvent common widgets simply because they can. The big advantage of using a standard HTML edit box is consistency -- more people will recognize it and know how to use it.
But when you have a long form with many fields, all those lines start to look ugly, so I've gotten into the bad habit of using style sheets so that my edit boxes are just underlines, not boxes. This is "consistent" more with paper forms, and someone even told me he thought he was going to have to print out the page when he saw the beta application form using underlines.
It probably does reduce learnability, marginally, to use underlines for edit boxes instead of boxes. But then again, they're really cool looking :) and I can't bear to switch them back to boxes. What's your opinion?
Server Go Boom and Spray Email
Apparently every time our server went boom this morning (4 or 5 times) the stupid mailing list manager software decided it would be a nice idea to resend my notification email. If you got several copies of today's Joel on Software bulletin, I sincerely apologize and ask your forgiveness.
Discussion Forums
The CityDesk and Joel on Software forums are quite lively, but we've also got a relatively quiet FogBUGZ forum which is feeling lonely :)
Fog Creek President Michael Pryor figured out a brilliant trick which makes it so that you see new topics, and topics that have followups you haven't read, in blue. If you've read the entire topic, it will be purple. And it's all done without keeping any state on the server.
Server Go Boom
The home-built server we've been using for fogcreek.com keeps crashing whenever the temperature goes above about 80 degrees in the server closet. Grump. I guess it's time to replace it with a real industrial strength server... I've ordered a couple of these.
CityDesk Beta
The CityDesk Beta has started trickling out, and within minutes we're getting bug reports from the field. Great! That's why we're doing a beta. We've been banging on this dang thing for months. We fixed 329 bugs. Then Brad W. downloads it, plays for ten seconds, and finds another. And we don't run so good on NT 4.0. (98, Me, 2000 and XP are all fine).
Testing
Does anybody have experience with GUI automated testing tools? I'm going to take advantage of the CityDesk beta to develop an automated test suite (so we don't keep breaking 2 things for every 1 thing we fix!)
If you have any recommendations, please post them on the discussion group. It needs to support Windows apps and be the sort of thing that doesn't involve a salesperson visiting your office with a $6000 projector for the demo (in other words, not too expensive.)
Snow
Zillions of emails in my inbox. Big stack of bills to pay. Now I'm snowed under with all the stuff I was deferring until the beta shipped :)
The worst part about coding in Visual Basic is that people think you're not cool because your code doesn't have {'s and }'s. I can live with the shame if it means I'm more productive.
PS If you've applied for the CityDesk beta, and haven't heard back, that's because we're waiting to fix a bunch of known bugs before we release to the next group of beta testers. It will make your life much easier and we won't get the same feedback twice.
Discussion Board
I've implemented a few more small, invisible-seeming refinements. The big news is that if you include your email address in a posting, it won't be easily harvestable by spammers.
Some of the nicest flash games I've ever seen.
I've been meaning to write more about the creation of CityDesk, but actually our beta is going extremely well, meaning, we're finding lots of bugs, so I've been incredibly busy.
To start the beta off, we released CityDesk to about 100 testers. Most of the bug reports arrived within the first 24 hours. We gathered bugs and feedback from several sources: the CityDesk discussion group, email, a menu item we have called "Send Beta Feedback," and Michael's excellent bug-catching feature (if CityDesk crashes, it offers to send a bug report to us, which goes right into FogBUGZ.)
Indeed many of the bug reports we're getting now are just what we expected: configuration issues. People have funny versions of Internet Explorer. People have their computers set to display everything in large fonts. And something we were doing wrong happened to work OK in Windows 2000, but in NT 4.0, it failed. It would be almost impossible for a small company to find these kinds of bugs without beta testers. And it would have been impossible for us to handle the feedback from more than about 100 people!
Next Monday, I hope, we'll release another version with almost everything fixed, this time to a larger group -- about 200 more people (and of course the first 100 are welcome to download the update). The plan is that we'll have one last beta two weeks after that, putting us on schedule for releasing on or around December 1st.
For the umpteenth time, I found myself dependent on a code library which had a crashing bug that was unacceptable in code I shipped. What are you supposed to do if you're the chef at Les Halles and your fishmonger is giving you smelly fish?
Working on CityDesk, Part Four
(Tip: to search the Microsoft knowledge base using Google, add site:support.microsoft.com to your query.)
Writing
James Pryor is a popular young Harvard philosophy professor who shows The Matrix in class to illustrate points about Epistemology. His article Guidelines on Writing a Philosophy Paper is one of the best tutorials on any kind of writing:
Pretend that your reader is lazy, stupid, and mean. He's lazy in that he doesn't want to figure out what your convoluted sentences are supposed to mean, and he doesn't want to figure out what your argument is, if it's not already obvious. He's stupid, so you have to explain everything you say to him in simple, bite-sized pieces. And he's mean, so he's not going to read your paper charitably. (For example, if something you say admits of more than one interpretation, he's going to assume you meant the less plausible thing.)
I can think of no better advice for the kind of writing that programmers should be doing in designing and documenting their code.
1110 posts over 13 years. Everything I’ve ever published is right here.
There’s a software company in New York City dedicated to doing things the right way and proving that it can be done profitably and successfully.