Dear Agile Hardware Skeptic

This post is a little different than what I’ve been doing here so far because it’s directed at only 1 person. This person is new to agile. We have talked about it a few different times and last time we talked she mentioned:

“most of what you have on AgileSoC.com seems to assume you already know about agile… I wish you had some stuff for beginners.”

Point taken. Here’s a post just for you… and any other beginners that want to stick around.

Continue reading

8 Ways To Avoid Ignorance Based Exploratory Testing

Exploratory testing is a term I heard several times at Agile2011 in Salt Lake City a couple weeks ago. As I heard people talking about it, exploratory testing seemed to be something that verification engineers should be familiar with. Admittedly, it was new to me so for anyone else new to exploratory testing, here’s a description from good old wikipedia:

Exploratory testing seeks to find out how the software actually works, and to ask questions about how it will handle difficult and easy cases. The quality of the testing is dependent on the tester’s skill of inventing test cases and finding defects. The more the tester knows about the product and different test methods, the better the testing will be.

From that definition and other things I’ve read since Agile2011, it seems that exploratory testing is more easily pondered relative to it’s antithesis: scripted testing. In scripting testing all the thought is put in upfront; a tester would do all their research first, build the test plan and then they or someone else would execute the test plan. With exploratory testing, the tester assumes its impossible to deduce everything up front and that the goals of the testing will change over time. He/she starts with a more basic plan and then thinks their way through the test process, learning and shaping the test plan as they go along.

Continue reading

Guest Blog: What’s All This Hardware Scrum Sprint Demo Stuff, Anyhow?

By: Rolf V. Ostergaard

If you read about Scrum from the software world, you learn how important it is to make the sprint demo as close as possible to the real product in a realistic user scenario. Some obsess over it to a point, where this becomes a problem for adapting Scrum to hardware development. I want to change that – a demo need NOT be the working product, in order to be valuable and useful.

In device development, where products often combine custom hardware, test systems, embedded software, FPGA/ASIC code etc. etc., making a demo after the first 3 week sprint that looks anything like the real product seems dead impossible. I agree, but that does not mean you shouldn’t try or can’t benefit from Scrum.

You can easily get many – if not all – of the benefits of Scrum simply by adopting a broader definition of what a good sprint demo is. I know this is very difficult envision at first, but take a look at what we considered good demos along the way in some example projects.

Continue reading

Agile2011 Final Report

Agile2011 was a great conference. No question. Broad coverage of a bunch of great topics, high quality speakers and great organization made it probably the most enjoyable conference I’ve ever been too. Regardless of what you’re working on – hardware, software, marketing, sales, etc – and irrespective of what role you play in your organization -developer, tester, manager, executive, HR, whatever – and regardless of the type of processes and practices you follow, Agile2011 was a place where anyone could take away ideas that they can take back to work monday morning and begin applying immediately.

If you haven’t read through my daily reports yet, I wrote a daily round-up for each of monday to thursday. I sat in on a bit of the first keynote friday morning but had to leave early to get the airport (so no friday report unfortunately). You can go back to the Agile2011 page for pointers to each days report. I’ll finish off here with my general thoughts of the week. Continue reading

Agile2011 Round-up: Day 4

The Neil Johnson Agile2011 Conference Gold Star Award For Outstanding Accidental Contribution To The Field Of Hardware Verification

The Neil Johnson Agile2011 Conference Gold Star Award for Outstanding Accidental Contribution To The Field Of Hardware Verification is a mildly prestigious, little known fringe award given out to any person that spends more than an hour explaining software test practices to a poorly informed hardware verification engineer. The non-cash award this year goes to Elisabeth Hendrickson (@testobsessed). It’s an hour she’ll never get back but it was a big help for me. With a better idea of how software testing has evolved the last few years, it’s clear some similar evolution is in the cards for us, too.

Silo Busing (9:00)

A good start to the day came from Tom Perry and his talk about silo busting. I understand silos to be the confining spaces that restrict teamwork and collaboration between functional experts and across product teams and business units. Tom had some good ideas for… well… busting these silos to help bring developers together to form a more cohesive development environment. Continue reading

Agile2011 Round-up: Day 3

Exploratory Testing In An Agile Context (9:00)

This talk was given by Elisabeth Hendrickson. Elisabeth’s twitter handle is @testobsessed and I’d say that suites her entirely. She is obsessed with testing. That was pretty obvious.

This was more a workshop than a talk so it was very interactive again. The idea here was to practice thinking about how to uncover tests suited to a given design by playing a game called scrabble flash. It worked well. As small groups, we were able to identify a few interesting test conditions just by trying different things with the game. This was another exercise where I’ve seen that a big part of software testing is about creating opportunities that fuel curiosity and creativity in the mind of the tester. I’m starting to think that we’re not quite curious enough in hardware testing.

fwiw… if you’re looking for a scrabble flash partner, I’d go with Jon Kern. He’s a pro.

Applying Agile In Hardware Development… We’re Not That Different After All (11:00)

My turn… finally! We had about 20-25 people in the room today for my talk. Just a good number of people for the size of the room. As you can tell by the third slide in my presentation, I feel I’m definitely playing the role of outsider here at Agile2011. But that passed as soon as people starting asking questions. I got some very good questions regarding where agile is most applicable and how we can get software developers more involved. The discussions afterward were very encouraging. Thanks to everyone that attended. I felt uncertain walking in and encouraged walking out. It was a great experience and I sincerely hope there’s more embedded agile in the cards for future agile conferences. James Grenning and Nancy Van Schooenderwoert have done a great job putting the stage together. It’s come at a good time too with embedded systems becoming increasingly relevant. Continue reading

Agile2011 Round-up: Day 2

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!

A psychologist?

Continue reading

Agile2011 Round-up: Day 1

 

We’re off and running at Agile2011! I haven’t run into any other pure hardware guys so I’ll take it upon myself to do a daily round-up for the hardware folks that want to follow along. No promises… but I’ll try and do the same each night that I’m here.

Day 1 General Observations

The first thing to note was the seating arrangement in the rooms. I’m used to rows of chairs aimed at a presenter and screen; you might talk to the person beside you a bit but for the most part, you’re their to be talked at (until a Q&A). The seating arrangement here… very different. It was more like lunch time seating where people sat in groups around tables. About 4-8 people to a group seemed the norm. More inviting for sure compared to just staring at a screen and being blasted by an information fire hose. Continue reading

Emacs, org-mode, Kanban, Pomodoro… Oh my…

This post is slightly off-topic of our usual AgileSoC theme; instead it is aimed at you Emacs folks who use org-mode and have been asking yourself “How can I combine Kanban and org-mode?”  Here’s how I did it.  It’s not rocket science, but it is very handy.

OK, I admit that I’m an Emacs geek.  I’ve used Emacs for a very long time, and have always been amazed at how many powerful, useful features are created for it.  The one feature that I’ve used for years is the org-mode.  org-mode is an organizer, note taker, outliner, planner,  etc.   Check out the web-site (orgmode.el).  It has so many features, I’m sure that I don’t know them all.

I use org-mode for three things:

  1. track my tasks;
  2. my time associated with each task, and
  3. a short journal of what I do every day (including any research).

All this information is located in one spot and org-mode allows me to keep it organized and easily searchable (it’s a text file).

Being an Agile-Emacs geek, I’ve been trying to use web-based and desktop systems keep track of my personal to-do lists using Kanban.  For the stuff I do I found Kanban provides me with the best way to track and report what I’m doing.  After being mildly impressed with many of these tools,  I never got into using them because they required me to get out of Emacs and get into a browser.  Using a GUI after being used to a straight text entry was also a little more trouble than I wanted.  Lastly, the data is usually in a proprietary format — that would be my data is now stuck in a proprietary format.

Being an Agile-Kanban-Emacs geek, my next step was to Google “emacs org-mode kanban”.  No luck.  What follows is my solution to creating a Kanban board using org-mode.

Kanban Board meet Org-mode Tables

org-mode provides an awesome table editing facility.  Once you’ve defined what the table looks like it automatically resizes the table to balance any new text you add.  My first step in creating my Personal Kanban board was to create a org-mode table.

Sad, Lonely, Empty Kanban Board

Initial view of Personal Kanban Board

My workflow (i.e., indicated in the header row) is pretty generic and straightforward:

  • Backlog (product stories not started yet);
  • Analysis (think, think, think);
  • Implementing (do, do, do);
  • Debugging/Testing (ensuring that it’s right); and finally
  • Done (proven correct and accepted).

Product Story meet Org-Mode Internal Links

Now I need to add my Product Stories to my backlog.  For this I use the org-mode markup language to add internal hyperlinks.  Links are created in org-mode using the format: `[[link]].  The target is simply: <<target>>.  Here’s a picture of my first Product Story added to the table.

My First Product Story in the Backlog

As you can see, org-mode has done several things:

  • readjusted the table to accommodate the new “Product Story 1” link in the Backlog column;
  • Translated my input of the link `[[Product Story 1]] to the `Product Story 1 hyperlink.  NOTE: If you click on this link with your mouse the cursor moves to the target line indicated by <<Product Story 1>>.

I use the org-mode tags :BACKLOG: and :STORY: so that I can filter on those for reporting, and I use the priority [#A] to indicate the importance of this story.

The next thing I do is add the sub-tasks that make up the Product Story and History to capture what the heck I did for each sub-task.

Adding the Details

I continue to add new Product Stories and sub-tasks as above, until I’ve got a decent size Backlog.

Initial Backlog

Now, I start working.  I’ll move Product Stories across my work flow, update history and complete actions.    Here’s a snapshot where I’ve done some work.

Work In Progress

OK, that picture is getting a little busy now, but the interesting elements are:

  • the Kanban board automatically re-sized as I moved the Product Story links from column to column;
  • I can use the org-mode folding capability (notice that <<Product Story 1>>  ends with ellipsis … i.e., “:BACKLOG:STORY:…” — the ellipsis indicates that some text has been folded, or is currently hidden from view.  Use the tab key when the cursor is on the line to toggle the fold/unfold);
  • I’m using the org-mode time-tracking feature to capture how much time I spend on each Product Story (captured in the lines indicated with CLOCK:).   org-mode has a way to generate a report summarizing the time spent on each Product Story.
  • There’s even an iPhone app (http://mobileorg.ncogni.to/) so that I can update my Personal Kanban board on my iPhone.  You can’t get sexier than an iPhone App; unless you’re not an Agile-Kanban-Emacs-iPhone geek. 😉

I’ve found it extremely easy to use Kanban and org-mode to capture and track my work.   If you’re a power org-mode user and can suggest other features of org-mode that would be useful in this context — I’d be all ears.

Pomodoro meet Emacs

Just to be clear.  I’ve been in management for over 15 years, and I pride myself in that I’ve never micro-managed anyone that I’ve supervised (for those of you who I have worked with, here’s your opportunity to contradict me).  However, I love to micro-manage myself.   I’ll break down any significant work until I have a set of tasks around 0.5 to 1.0 day in duration.   I need that for two reasons:

  • I’m too methodical (aka ‘anal-retentive’) to not capture a plan;
  • I have the attention span of a gnat.  If there’s a “bright shiny object”… I’ll be attracted to it.  Creating a set of a short sub-tasks means that I can progress toward the ultimate goal, and then as a reward take a break and go look at that bright shiny object for a bit, and then go onto the next task.

For the second issue of focus, I’ve been using the pomodoro technique for several months.  Go check out the web-site for more details on how to use this technique.  Again, I tried browser-based, desktop, and iPhone applications to track my pomodoros for me — but they were even worse than the Kanban applications I alluded to above for keeping me on track. As most of day is spent looking an Emacs screen — that’s where I need to be notified when a pomodoro is over.  Once again some kind Emacs elisp coder created pomodoro.el.  This allows me to start a pomodoro timer within Emacs; it automatically starts the short and long breaks and the next pomodoro; allows me to stop and rewind the pomodoro (for when I’m interrupted), and keeps a crude track of how many pomodoro’s I’ve completed.  Check out the elisp code for more details.

You may find using pomodoro will drive you nuts… or you may love it.  But if you’re an Agile-Kanban-Emacs-iPhone-Pomodoro geek, you’ll probably love it.

Happy tasking!