Category: Agility

  • Pair programming showdown at BarCampRDU

    BarCampRDU 2008 came and went. It was quite enjoyable. There wasn’t as much grub as last year, but I thought the topics were more interesting.

    I gave a talk on pair programming during the afternoon. It really became more of a group discussion, which was exactly what I was hoping for. Some attendees have requested the slides so I’ve attached them to this post as a PDF.

    The slides have been edited somewhat. I gave this same presentation at Agile ITX last month and it was an hour and a half long. I had to cut out a few things for BarCamp. But the central ideas are still there.

  • Speaking at Agile ITX next weekend

    I’ll be speaking at the Agile ITX conference in Reston, Virginia on June 27th. My presentation is titled Pragmatic Pair Programming and is based on the many diverse pairing experiences I’ve had over the past six years. Mention pair programming in any crowd of programmers and you’ll get two responses: adoration or outright hatred. Why is pairing so controversial? Does it have any tangible benefits? That’s what we’ll be exploring together. Agile ITX is shaping up to be a great conference with many top-notch presentations. I’m excited about getting the chance to participate. Hope to see you there.

  • Agile RTP meetup tonight

    Remember, this month’s Agile RTP meetup is tonight at 6 PM. I’ll be presenting my Chaotic Agility talk at Misys in North Raleigh. This is a new meeting location (we’re not meeting at Frankie’s anymore) so take note! Here are the directions from the mailing list:

    The address of the building is 8537 Six Fork Rd. Raleigh NC. The name of the building is Forum V. The conference room is #1500.

    This is the building directly beside the main Misys office building and it is located to the north of the water tower. The building is brand new, so it doesn’t show up on most mapping or satellite sites.

    There is plenty of parking in the parking garages surrounding the building.

  • Explore chaotic agility at next month’s Agile RTP meetup

    I’ll be speaking about chaotic agility at the Agile RTP meetup in August.

    Chaotic agility is a phrase describing why I believe agility works: the science behind it models an amazingly accurate picture of a typical development project. Most of us will agree that agile teams produce better software on time and for less money. But few of us question why agility works. By better understanding the science behind agility, we will stop trying to manufacture and control software and instead allow it to emerge on its own.

    Note that August’s meetup won’t be at Frankie’s. We’re trying out a new location at Misys Healthcare on Six Forks Road. Visit the meetup site for directions and a more detailed overview of the talk. See you there!

  • Ken Auer at the Agile RTP meeting tonight

    Ken Auer (of RoleModel Software and XP fame) will be speaking at the Agile RTP meeting here in Raleigh tonight. I used to work at RMS and am interested in hearing Ken’s take on agile methods once again. The year I spent at his studio was some of the best personal growth time I’ve ever experienced. If you’re in the area, swing by Frankie’s at Brier Creek tonight to join us!

  • First Agile RTP meeting tonight

    This is just a reminder from your friendly neighborhood agilist that the new Agile RTP user group has its first meeting in Cary tonight. Read more about it on Jared’s blog. This sounds like a great opportunity to meet other agile-minded people in the area and listen to an interesting talk. Oh, and let’s not forget the bragging rights secured by those who participate in the first meeting of a new user group.

  • Agile RTP: A new user group in Raleigh

    Agile RTP is a new user group started in the Raleigh area by Jared Richardson. The first meeting will be on March 22nd where we’ll be video conferencing with the agile group in Charlotte to hear Dr. Laurie Williams speak about test-driven development. I was actually considering driving to Charlotte for this speech, so when Jared told me we’d be able to enjoy it right here in Raleigh I was totally psyched. Get more details on the event and don’t forget to mark your calendar.

  • The DMV and continuous integration

    My father recently had an experience which bitterly proves that minor details can have major consequences. Last week, his insurance company mistakenly reported to the DMV that the coverage on his auto had lapsed. The DMV responded by revoking his tags within the space of 48 hours (quite speedy for them). To resolve the matter, he had to take proof of insurance to a local DMV office (in someone else’s vehicle, of course).

    Here’s how the process went, in his own words:

    1. Go to the DMV office on Academy St.
    2. Find out they only do driver’s licenses there.
    3. Go to the DMV office at Walnut and US-1. Walk up to the desk.
    4. Find out that the FS-1 form the insurance company faxed me has an effective insurance date of 3/34/05 rather than 3/24/05. It’s not acceptable.
    5. Find a pay phone to call the insurance company for a corrected form. Seems I left my cell phone at home.
    6. Get the insurance company to fax the corrected form to the DMV office I’m standing outside of.
    7. Go back into the DMV office and finish the transaction.
    8. Walk out with my sticker, new registration, and the confidence that comes with obeying our state laws.

    Suprisingly, aside from the nuisance of having to physically go to a DMV office, most of the blame for the mistake lies with his insurance company. First, their computers reported him as uninsured, which was, of course, incorrect. Second, when proof of insurance was faxed to him, the date on it wasn’t just off by a day or two… the date wasn’t even valid!

    If we assume that the insurance company used a computer to generate the form (a safe assumption), this means that one of the following must be true:

    1. Their processing is so antiquated that they’re simply filling out word processor templates; the incorrect date was human error
    2. The software they’re using isn’t smart enough to catch invalid dates
    3. The software they’re using has a good, ol’ fashioned bug

    If #1, they really should consider upgrading their systems to minimize the impact of human error. If #2, they need to consider investing in a more sophisticated software package. In my book, date validation is a fairly important feature! If #3, they were either sold lousy software or their in-house development group needs to do a better job of testing.

    Minor details can have major consequences. The best way to ensure the integrity of minor details is to test them. The best way to test something is to always run tests. The best way to always run tests is to use a continuous integration system!

    Now if only someone at my father’s insurance company would read this…

  • Practices of an Agile Developer

    Practices of an Agile DeveloperI recently had the honor of reviewing the Pragmatic Programmers’ latest work of art, Venkat Subramaniam and Andy Hunt’s Practices of an Agile Developer. The book doesn’t ship until March 1st, but I would certainly consider adding it to my Amazon.com wish list now, especially if I were new to agile programming or wanted to promote agile practices within my team. It was refreshing to read such a concise, yet comprehensive overview of what agility is.

    The book covers all the major agile practices (and several of the not-so-major ones) including minimizing up-front design, being honest even when it hurts, practicing iterative development, writing tests, letting customers make business decisions, integrating continuously, and being a mentor. The focus is not on a single agile methodology like eXtreme Programming or Scrum, but on the practices common to all of these methodologies.

    One thing I really liked about this book was that it was split up into 2 to 3 page “chunks” of information. (If you’ve read Chad Fowler’s My Job Went to India, you’ll know what I’m talking about.) Such “iterative” writing makes it much easier for busy geeks to digest. I’m not forced to maintain an excessive amount of context between reads.

    Another thing I liked about this book was that it wasn’t dogmatic in its approach to agility. While reading, I didn’t feel that the practices were being crammed down my throat. Venkat and Andy did a good job of espousing the benefits of the practices without becoming preachy. This is an exceptionally good thing considering how difficult it can be to explain to “traditionalists” that agility can actually help, not hinder, the craft of software development.

    Venkat and Andy’s creativity really shows with their “angel and demon” motif which is used throughout the book. At the beginning of each section, a demon tells you what the typical response to a common software development problem is. At the end of the section, an angel gives you a brief overview of the agile practice which was covered and why it’s so much better than what the demon tempted you to do.

    If you’re new to agile development and want a good overview of what it’s all about, I highly recommend this book. If you’re an experienced agile developer and want a handy dictionary of common practices to refer to or push into the hands of a fellow developer who comes knocking, I highly recommend this book. If you’re fed up with the way software development is done and want to know some practical steps you can take today to begin programming more intelligently, I highly recommend this book.

    Most importantly, if you’re passionate about creating software and want to be encouraged to continue striving for excellence in everything that relates to it, this book will give you the boost you need.

  • Sails: Simplifying Java web apps

    Sails: a dynamic, open-source web framework for Java designed in the spirit of Rails.

    The top 5 reasons to use it?

    1. Created using test-driven development (no, seriously, it was!)
    2. Controllers are testable (oh yeah)
    3. Leans heavily on convention over configuration (Rails anyone?)
    4. Binds URLs to Actions on Controllers and renders their templates (sure wish Struts would do this sans XML)
    5. Converts objects into Strings and Strings into objects (sure, Struts does this, but Sails does it better)

    Born out of a software project some of my old co-workers from RoleModel Software are currently working on, this framework appears to be quite slick, but is still in its infancy. My experience with it so far has been limited, but I like what I see. I encourage you to at least poke around the Sails web site and read up on the framework.