Justin du Coeur (jducoeur) wrote,
Justin du Coeur

CommYou Status; or, The pros and cons of bootstrapping

On the one hand, working for myself is proving to be really fun. Moreover, it's remarkably efficient. Since I don't have to run my decisions at this point past anyone else, I don't spend all the time waiting on other people that I normally would. I can make snap decisions that Feature A is going to be needed upfront, but Feature B can be put off for a couple of months, without having to spend hours marshalling arguments so that I can convince upper management. It does drive home how much project time is normally spent simply in communication.

The project is very agile, in the most technical sense of that word. It's almost completely story-driven, and now that the infrastructure is in place I'm working on a nearly pure add-and-refactor regimen. I'm killing stories off at a rate of a story every couple of days, which is a pretty good clip given that the stories are not small. Countering this is the fact that I keep adding more stories, almost as fast as I'm closing them. And this time, I can't blame it on management.

By necessity, testing is almost purely automated, and the test suites are growing rapidly. Investing some time upfront in building test harnesses is paying off big: the main black-box harness is now getting rich enough that I'm often not even bothering to test manually, instead just focusing on writing the tests for a feature and letting that check my work. I have a role-based test environment (loosely modeled on the one I developed at Zingdom) that is just plain *clear*. Most tests can essentially be read as a narrative of what's going on, with the details hidden -- this makes them fast to write and easy to understand.

OTOH, the problem of working on my own is that it's *incredibly* scary. I mean, I trust my own instincts and judgement pretty deeply, but not being able to check my work with others is making me a little nuts. I'm really looking forward to getting to alpha, largely because I want other people to come in and start playing with this thing and tell me where I'm on crack. And while I'm not going to truly open-source it at this point (not until and unless I am convinced that it is reasonable from a business POV), I am sorely tempted to make the code semi-visible so that interested hackers can take a look at it and point out weaknesses. (This may go along with the CommYouCrackers group once that's set up -- I may give them full access to the code, on the theory that it's not *really* secure until someone with the source code can't break it.)

Really, I never thought I would miss pair-programming (the part of Extreme Programming that makes most engineers nuts). But I find myself craving it, the way you crave vegetables after too many carb-heavy meals.

And then there's my boss. He's a real pain in the ass sometimes, constantly reminding me of things I need to take into account. He even wakes me up at 3am sometimes, and tells me to go tie off the stuff I left hanging, so that things will be in a good state when I start work tomorrow. Fortunately, it's fairly easy to tell him off every now and then, when I need to go spend some time on personal business...
Tags: commyou, diary

  • Hard lessons learned about being *too* completist

    There -- I've just finished a major milestone in the monumental "sort the comics and figure out which ones to get rid of" project. I've finished with…

  • TRoOB: The Sculptor

    [There's a lot of good stuff coming out, so it's time to get back into the habit of The Review of Obscure Books.] Downstairs in our basement, there…

  • The easiest first-pass metric

    As a lot of you know, I am the possessor of a lot of Stuff. Among that Stuff is the most idiotically large comic-book collection of anybody I know,…

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment