Reginal Braithwaite’s favorite interview question of programmers is: Sketch out a software design for a game of Monopoly (via Coding Horror).
I dunno’. I like it in terms of being open-ended and non-trivial, but it’s a real quagmire. I mean, my first reaction was to drop back to OO 101 and a simulation architecture (“Well, there’s a Board and Spaces and Money…”) just to put some stakes in the ground. But many different architectures might produce a solution: Braithwaite mentions a domain-specific language, maybe a “board game rules” inference engine, maybe something entirely different. Honestly, I can’t imagine coming to a decision on architecture, much less beginning design, in thirty minutes or so.
I’ve mentioned my wife’s breast cancer on this blog a few times and now, officially, it’s my wife’s ex-breast cancer. We’re back home after recuperating from her 3rd surgery (if you need to recuperate from a surgery and are looking for a place with a fun view, I highly recommend the Marriott Waikiki). Her pathology is clear, she’s sick and tired of the compression wrap she has to wear for another two weeks, we raided the home-improvement fund, and life is good.
Snap! Ayende Rahein has shown how Active Record can be used to implement a rules engine. I’d had some thoughts about backward-chaining and LINQ lately as part of a forthcoming post, it’s nice to see some groundwork laid.
BTW, this is via Sam Gentile, whose blog is very high quality and who’s looking to increase his subscriber base. Definitely subscribe if you’re looking for high-end advice on agile techniques for advanced .NET development.