Day 2 General Observations
One thing I missed pointing out yesterday was the cross section of people at this conference. Yesterday I talked to people from Nike, Schlumberger, Siemens, Esri, Department of Defense, John Deere, CGI and a few others that I don’t remember. There’s a really interesting mishmash of people here.
Tuesday Keynote (9:30)
Fair to say that today’s keynote was different than anything I’ve ever heard at hardware conferences. Talking this morning was Dr. Barbara Fredrickson who is… wait for it… a psychologist!
Yes… a psychologist. Barbara’s talk was all about the power of positive emotion and how positive emotion helps people broaden the view to include the context around whatever we might be focusing on at some point in time. Two specific things that she noted was that there’s evidence that suggests 3 positive emotions are required to overcome a single negative emotion. Interesting to think about before you pipe up in a meeting. She also pointed out that positive mindset depends on being open, appreciative, curious, kind and real.
What I took away from it… there’s scientific data that supports the idea that happy people make good decisions that take into account the context around them as well as the circumstances in front of them.
Embedded Testing Techniques (11:00)
Finally we get to the embedded stage where I deliver my talk tomorrow. First up at 11:00 was John Maxwell. John confirmed a couple of things that I’d like to hear more often. He mentioned that software developers need to become part of the hardware design process as soon as possible. I agree. Another point (and I wish I could remember the words he used) was that hardware developers tend to complicate things unnecessarily. He pointed to one time in particular where he was able to cut the size of an FPGA down significantly by just pointing out the logic that didn’t need to be in there (i.e. it provided no value).
The rest of John’s talk was dedicated to talking about a framework for developing embedded tests that split the test infrastructure between a host machine and target device. Neat ideas.
Test-Driven Development in(bed) C (1:30)
This was a talk given by James Grenning, one the signatories to the agile manifesto. This talk for me was kind of like the Agile Requirements And Tester Collaboration workshop that I talked about in yesterday’s report. There were a couple of things in here that I will think about for a long time.
First, the granularity of the tests that James suggests. He went through an example of building a circular buffer and the tests he writes in the example were extremely low level. I couldn’t believe how low level, in fact, so I asked if this is what he normally does or if things were dumbed down for the sake of example. The response: no dumbing down, he did actually think at that level of granularity.
The other thing, and I know this will blow people’s minds, is summarized very well by this comment in the example code:
/* * Retrospective: * With the previous tests passing you should have at most a counter * that knows how many integers have been added to the buffer, with * hard coded return value for Get() * * If you have more, delete it now! It is not tested code, you * are supposed to be doing TDD! */
With TDD, the rule of thumb he pointed out… and I confirmed this with him afterward… is that design code is NOT written until there is a test written to verify it first.
After seeing the combination of low granularity and design code only be written once there’s a test for, I find I finally understand what TDD means. TDD actually exists. There are people out there that actually write tests prior to coding a design. And the code they write looks a lot like the code we write :).
As opposed to going further on that point, I’m going to wait, let things stew in my head for a while, and then I’ll think about what that could mean for us in hardware development. I can guarantee I’ll have some follow-up that expands on my thoughts about James talk and TDD in general.
Industry Analyst Panel Discussion
Final event of the day was an industry panel discussion with Dave West from Forrester Research, Melinda Ballou of IDC, Michael Azoff of Ovum and Thomas Murphy from Gartner. There were a few high points from the panel discussion.
First, all four panelists were unanimous in their acceptance of agile. From there point of view, agile is the only reasonable way to develop software. They talked about a few different areas where agile would grow into next; one area was development of mobile devices and applications. There was also discussion of how the realities of organizational structure sometimes make it difficult to adopt agile practices, though adopting some is better than none. Scrum was the example that came up on that point. They noted that it might not be possible to adopt scrum by the book. Instead, scrum becomes scrum-but or water-scrum-fall, but teams are better off having adopted part of the framework than none at all.
One point they all agreed on as well was that the environment around Agile conferences is far more open and inviting than other conferences and attendees are really connected to the material.