Software Craftsmanship

  1. More Monkey Business

    Continuing our safari, we return to looking at code monkeys, this time evaluating (in plain English) two simple implementations of "Monkey See, Monkey Do" in the Ruby and Python programming languages.

    Continue reading

  2. Monkey See, Monkey Do

    How lucid is your favorite programming language, really? If you read it like English, would it be poetry? Would it be comprehensible? In this republished post from '08, we explore a few popular programming languages and see how they stack up, not for processors, but for primates...

    Continue reading

  3. Abstraction Wrangling

    Corey Haines says one differentiator between experienced programmers and beginners is that the more experience programmers have become more adept at “abstraction wrangling.” Why are abstractions so challenging?

    Continue reading

  4. TDD is Kanban For Code

    Kent Beck had an interesting blog post the other day in which he proposes that TDD is like Kanban for code. I like this idea, but I have to quibble with one small part of his analogy…

    Continue reading

  5. Apprenticeship Patterns: The White Belt

    As a new programmer, how can you get the maximum value out of your learning effort? How do you determine which languages, technologies or techniques are the most important to learn first? Continuing my series on Apprenticeship Patterns, here are some of my experiences and reflections on the second pattern in the book: The White Belt.

    Continue reading

  6. Why Software Craftsmanship
    Is A Tough Sell

    It can be difficult for proponents of Software Craftsmanship to land work, especially when pitching Software Craftsmanship on its merits. What should we make of the fact that large companies tend to have be more resistant to software craftsmanship?

    Continue reading

  7. The Minimum Size of Value and Independence

    Recently I stumbled into a conversation with a client about the virtues of smaller stories when analyzing and estimating work. One business consultant asked a the question, “Have you found that there is confusion around people thinking that because a story should have business value and be independent that this means it is essentially impossible to break things down smaller than a minimum marketable feature?”

    Continue reading

  8. MEME: What Was Your First Useful Program?

    I woke up this morning thinking to myself, “how can I boast about the very first program I ever wrote?” Then, 2.1ms later, I remembered twitter. Moving beyond my own rampant narcissism, I want to know about the first useful computer program you ever wrote.

    I suggest the following format:

    #myfirstprogram unix, shell, “The Awesomizer” substituted the word “awesome” for my name in any document

    But hey, it’s Twitter, so go wild, make it your own.

  9. Agile Notes:
    Why Story Cards Matter

    Does writing formal story cards feel hokey? Although they may seem ceremonious, well-formatted story cards add critical value to the software development process. In this essay I’ve broken down the aspects and features I like to use/see on story cards…

    Continue reading

  10. Digging Up Bones:
    The Legacy Code
    In Your Head

    Back in 1998 or so, I picked up an out-of-date edition of Teach Yourself Perl in 21 days book at a Borders Books Outlet store. My love affair with Perl helped me to steadfastly avoid PHP, and prepared me to jump into Java, which drove me to Ruby. But after all this time, I’m still finding Perl artifacts in my head.

    Continue reading