Month: March 2013

  • “Grad school” is a collaboration anti-pattern

    To quote Wikipedia: an anti-pattern is: a pattern used in social or business operations or software engineering that may be commonly used but is ineffective and/or counterproductive in practice. [emphasis mine] I’ve been exploring patterns for actually working on software — not for designing it — and I realized that I myself spent a lot of time…

  • “Bank heist” collaboration pattern

    Here’s my favorite collaboration pattern so far: the Bank Heist collaboration pattern. This pattern, which we know from The A-Team, Ocean’s 11 and Leverage, among others, shares many properties with an excellent developer team: You don’t have to like following orders to be on the team. Everybody’s a generalist, and an expert in one area (pickpocket, cat burglar, safe-cracker, grifter, etc)…

  • Software collaboration patterns

    Software development is a fundamentally social process: it’s all about working together. We (software developers as a caste) have expressions like “programming by contract” and design patterns like “Delegation” that reflect how we humans work together – and we use these patterns to describe how we instruct our robot minions to function. We think about…

  • As random as I oughta be

    From John D. Cook‘s Probability Facts twitter feed, discovered the infamous RANDU, and this absolutely marvelous quote: One of us recalls producing a “random” plot with only 11 planes, and being told by his computer center’s programming consultant that he had misused the random number generator: “We guarantee that each number is random individually, but we…

  • Recommendations roundup for “TPC”

    My brother Daniel introduced me to a new term he and his security-geek friends are trying to encourage the rest of us mere mortals to adopt: “TPC”, or “Trusted Physical Console”. In short, it’s the sturdy, small laptop running a trusted operating system, to which you (and probably only you) have control of the tools available. (Probably…