Day 2 of Agile2012 was another good one. More good talks, had a chance to catch up with some friends from last year over lunch and in the 11-12 time slot, I presented my TDD And A New Paradigm For Hardware Verification.
Scaling Up Excellence. Mindsets, Decisions and Principles
First up in this morning’s keynote talk was Bob Sutton with Scaling Up Excellence. Mindsets, Decisions and Principles. One thing I took away from last year’s conference was that agile software developers aren’t afraid to look beyond software development for ways to build better software, teams and organizations. This talk was a little along those lines where the focus wasn’t so much on building software but on successfully growing teams and organizations.
Bob set the tone early by asserting “scaling is about spreading and sustaining a mindset, not just a footprint”. From there he went through the types of trade-offs organizations make in order to grow and a list of scaling principles. Does an organization choose to do more or do better? Do you grow alone or through collaboration with others? Do you replicate existing structures/practices in new markets or provide a mindset and allow for local customizations? Those there the types of questions that came up through the session with several examples along the way for companies that successfully (and not so successfully) answered those questions.
TDD And A New Paradigm For Hardware Verification
My turn! As was the case last year, I was a little nervous how my talk would go over assuming that my audience wasn’t likely to have a clue about what I was talking about! That’s how it goes when you’re the black sheep so I had to plan accordingly. I started with some background info on how we hardware developers approach functional design and verification. In the middle, I opened up for discussion with the folks nice enough to stop in for something different. I finished off with some experience I’d gained since the conference last year.
I got the feeling things went pretty well. Judging by the quality of questions and comments – decent questions and comments are generally a good sign 🙂 – it seemed I came equipped with the right amount of background info. I tried to cover some of our habits and techniques in hardware development without overwhelming people. I talked a bit about test granularity at block and top level, directed and constrained random testing techniques, our ideal view of project scheduling and some miscellaneous observations about project cycles and progress metrics.
The best part of the hour for me was the discussion in the 2 short brainstorm sessions I mixed in. I was scared this would be all blank stares and crickets but the opposite ended up being the case. There was steady chatter and good points made by several people. Magically (as you can see in the picture under “what are we doing wrong”), the girl at the back by the door was the first to respond with “you don’t test the test harness”. That was like the voice of angels foreshadowing the TDD related portion of the talk that came later… and basically the entire reason for me being here! Excellent surprise comment :).
I finished up with some experience that admittedly I didn’t have when I pitched the session in february but was pretty key in bringing everything home. I showed a bit about how I’ve done incremental development on the verification side, how I’ve used (early) passing tests to define progress and how I’ve applied TDD and SVUnit in the creation of a test bench.
For attendees, it was nice to have James Grenning and Elisabeth Hendrickson sitting in. It was the combination of James’s TDD With C tutorial and a chat I had with Elisabeth last year in Salt Lake City that lead to me putting this session together. Thanks guys.
Overall… everything went well. Very pleased.
Behavior Driven Development: Look, No Frameworks!
So last year leaving Salt Lake City, I was all about TDD. TDD sat in my head like a great big lump. I couldn’t shake it and spent pretty much the entire year working on it. This year… well let’s just say it looks like it could be another busy year now that I’ve seen somebody demonstrate Behaviour-driven Development. It’s in my head… and I don’t think I’m going to be able to shake it.
Admittedly, this session from Liz Keogh started out a lot like other test session I’ve seen so it caught me off guard a bit. In the first half, Liz made some good points on how conversation and perspective can drive product testing. She had a good graphic that showed how early involvement from evil software testers (her words, not mine) can be used to drive good design decisions and clarify ambiguity.
All good stuff that I thought I’d seen before once or twice. But then she started showing code and it was immediately apparent I wasn’t following at all! Now that the lights have been turned on – though admittedly things are still a little dim – I understand BDD as a way to describe product functionality with english’y looking tests, as in a test that actually reads like a short paragraph instead of lines of code. Immediately, this struck me as a technique for writing tests… err… describing behaviours that would be very useful for hardware people doing directed testing.
Honestly, BDD looks very interesting so watch for more as I learn more about it. Sounds like Liz has another BDD demo-like session on thursday which I’ll definitely be sitting in on.
Continuous Integration Will Have To Wait
One thing I wasn’t banking on today was seeing the continuous integration session by Jez Humble filling up before I had a chance to squeeze in. I was looking forward to that, but I guess it’ll have to wait for next time. Too bad.
Tomorrow’s another good day for agile hardware! Tobias Leisgang from TI takes the stage at 11am to present How To Play Basketball With A Soccer Team? Making IC Development More Agile. I’ve talked to Tobias a few times about agile and met him face to face for the first time today. I think he’s got some good experience to share not to mention that his slides look professionally done. Not kidding!
Back with more tomorrow.
PS: If you’re interested in the rest of the week, there’s more on my Agile2012 page!