Last week, in response to An Idealist’s View of Agile Hardware Development, a fellow named Bill made some very thoughtful comments in a follow-up discussion he and I had. A couple of those comments have been good enough to spur on posts of their own. (I’ve requested Bill carry on with the discussion. I don’t mind having more to talk about!)
The comment we’ll take on here comes from a broader conversation about how agility stretches from design and verification through to physical design. In there, Bill makes a comment that I’ve heard more than once, both as it relates to PD and within the larger context of hardware development…
“…I think most projects do work in a semi-agile way without using those words.”
Before I carry on I’ll say that I’ve never felt comfortable making reference to a specific we’re already kind of agile comment in the past. I’ve heard it several times. It usually comes from people that brush off agile with the view that because they don’t follow a strict waterfall approach, the semi-structured approach they do follow must be inherently agile. As such, they’re already reaping the benefits with no need to go further. I usually let the comment slide, learn by listening then carry on.
Now, when Bill makes that comment it sounds different. First, he seems quite informed and seems to understand why what he’s doing is already kind of agile. Next, he talks about agile intelligently and puts out some objective opinions as opposed to forcefully arguing one side or the other. I quite appreciate that; we need those opinions. I think he’s also speaking philosophically (first time I’ve ever used that word), so I’m hoping that by pulling the we’re already kind of agile comment from our discussion, he’ll appreciate the extra analysis and – hopefully – follow-up discussion!
My response to Bill’s comment was…
This will always be true for any team, some more than others obviously, but it’ll always be true. Now I’ve heard several people make that point and it always feels to me that that comment is used to avoid taking agile more seriously (not suggesting you’re in that boat b/c it seems you’ve put some thought into this, but from others… yes). Now the step I’m hoping that teams make is, instead of assuming they’re agile’ish and figuring that’s enough, pick specific XP practices and try them. 1 at a time, 2 at a time, whatever. Make an informed attempt at moving in an agile direction and see what happens.
I’ve felt this way for a while. I think it’s silly to argue that hardware teams don’t have at least some level of agility. Equally silly is to argue that there’s a specific definition of agile that we should all be shooting for (i.e. the continuous tape-out and delivery of ASICs). Because the polar opposite positions of ‘agile’ and ‘non-agile’ really have no discernible relevance, in my opinion, I’ve tried to persuade hardware teams to forget about being agile and think about being more agile. Repeat: not agile but more agile… as in: however agile you are today, do what you can to be more agile tomorrow.
Like I said in my response, I think a great way to do that is to crack open a copy of Extreme Programming Explained by Kent Beck, pick a practice or two that you think will increase your level of agility, then try it and see what happens.
While there are other ways to get started, I think starting with XP practices is one of the simpler places to start for a few reasons:
- you end up being more informed as to what agility actually means and the value it brings;
- XP gives you a reasonable way to quantify your agility (i.e. it’s easy to identify the practices you are and aren’t using);
- you’re basing your own potential improvements off a set of practices that have worked for thousands of other people before you; and
- it doesn’t matter if you’re doing design, verification, physical design, whatever else and/or all of the above, you’ll find many XP practices can be applied regardless.
From there, when we find ourselves saying we’re already kind of agile, we’ll at least know why! That’s me, Bill and all the rest of us hardware folks.