30 June 2009

Tastes Great, Less Filling: Agile vs. Lean

Over the last year I have been paying more attention to Lean Six Sigma (also see Six Sigma.) Mainly because the lab has decided to move in this direction and has been having orientations and black & green belt training for employees. Recently, we discovered that our sister lab in the UK also is moving to Lean Six Sigma.

This of course always brings up Agile and Lean and are they in line with each other or orthogonal. I had read that Agile and Lean are a lot alike and that Agilist were heavily influenced by Lean.

Recent searches for more on the topic brought me to Martin Fowler's article (short) about Agile vs. Lean that I found interesting and worth sharing here. Here is a quote from it to pique your interest into reading it.

"The Poppendiecks didn't introduce lean as a separate idea, nor did they introduce lean as a published process in the style of Scrum or XP. Rather they introduced lean as a set of thinking tools that could easily blend in with any agile approach. I think of lean as a strand of thinking within the agile community, like a pattern in a rich carpet." - Martin Fowler.


On an aside....the "Tastes Great, Less Filling" was an advertising phrase that was "Made To Stick" because it has been stuck in my head for many years. Too bad I dislike beer so much. ;)

28 June 2009

Eye Contact Is Important

An interesting study on eye contact, that was reported by Science Daily in 2002, found that:

"...people in group discussions will speak up more if they receive a greater amount of eye contact from other group members. There was no relationship between the impact of the eye contact and when it occurred."

Often participation is an issue in meetings, retrospectives, and on teams where you need more input from certain team members who are quiet and reserved. Agile has poker planning that naturally encourages everyone to participate in the estimating of stories. But for meetings and retros then it would be good to find other ways to encourage this participation.

So perhaps being purposeful in testing out this observation of eye contact would be worth trying. Maybe in the next meeting, where you want at least one person to contribute a bit more, you try making a bit more direct eye contact throughout the meeting to see if that person speaks up more than normal. I am unsure how to get other group members to contribute to the eye contact without things looking like a conspiracy but perhaps there is a way.

27 June 2009

Persuasion: Can We Be Doing The Opposite

One of the reasons to follow TED talks is to gleam presentation ideas. But often the talks themselves are very interesting and relevant to something I am thinking about.

Often it is said that presentations are made for two reasons only. One reason is to inform and the other reason is to persuade. Put the second reason in back of you mind and hold it there for about 20 minutes for now.

The presentation by Dan Ariely called Are We In Control Of Our Decisions is not only humorous but shockingly interesting in the fact that he makes some very good points about how irrational our decision making can be if looked at more closely.



While watching this I started wondering about presentations and the affect of our presentations driving people to buy into our idea or dislike it. Or more concisely ..... persuasion.

Perhaps it is not good enough to ask is our presentation persuasive or unpersuasive but more is it actually persuasive in the in the wrong direction?

I am unclear on examples that apply to my situations at this time but it seems that being persuasive is harder if you have more than two options to explain to someone.

23 June 2009

Agile Reference Page

In many ways Dobbing Around is meant to be a replacement for a static web page. In doing so then I will have posts as needed that are meant to be reference pages like on a static web page. Those pages will be updated as needed.




22 June 2009

D Programming Language

The D Programming Language developed by Walter Bright may really pick up steam when Andrei Alexandrescu's book The D Programming Language comes out (like I know anything programming languages.) See Safari Rough Cuts for the first few chapters.

So why am I posting about D? Because Andrei's book showed up on Safari Rough Cuts which my coworker/friend Steve Nolen follows. Of course Andrei is one of Steve's heroes and D is very similar to C++. There is no telling where this all might go or end now that it is on Steve's radar. But it is not like I did not tell him about it about a year ago. ;)

Actually D looks really interesting. There are several compilers out there including a GNU D compiler package. It seems there are two Eclipse plug-ins for D ..... Descent and Mmrnmhrm. Also D can interact with C++ through the C API and possibly a more complete C++ API in the near future. There is also a document generator. For more about this see D Programming Language at Wikipedia.

D has unit testing capability built in and also Design by Contract capability. For more on the unit testing then see Unit Testing in D and Agile low level programming in D. It appears at first glance that the unit testing is meant to be part of the source code but it might be used in the way of xUnit and Kent Beck. I hope so.

Note D has been influenced by many successful concepts from other languages like JavaScript, PERL, Ruby, Lisp, Ada, Erlang, and Python.

With Andrei Alexandrescu champing D (The Case for D by Andrei Alexandrescu) then it could have a Bright future. Pun intended. ;)

Also see:
Interview with Walter Bright
Tango: The Developer's Library for D

I wonder if we can get a boost-like MPI interface to D? :)

20 June 2009

Unit Test Framework: UnitTest++

There are numerous unit test frameworks for C++ out there. The software effort that I am on uses one called UnitTest++ (aka UT++). It was designed and developed by games developers and it is open source.

The debut release post at Games From Within describes why another unit test framework, the design reasons, and its strengths & uniqueness.

UT++ practices what it preaches by being developed using test driven development (TDD) and comes with a suite of unit tests that runs automatically upon completion of the build. Not only do these tests give you confidence UT++ is installed correctly they also come in handy as developer documentation and even user examples & documentation. They are very nice examples of how one can use the framework.

UT++ is simple, lightweight, and easy to learn. If you have not used a unit test framework before then I can recommend UT++ as a place to start learning.

Boost C++ Libraries: Changing the face of C++

We have been using Boost C++ libraries (Boost Wikipedia) in our Monte Carlo Application ToolKit (MCATK) software effort. Though we had heard of it for awhile, we had not investigated it.

Thanks to a Scott Meyer's talk at SDWest 2008, one of the team decided it was worth investigating and found there were several boost libraries that could be useful and help simplify our design.

Several Boost libraries have been accepted for incorporation into both the Technical Report 1 (TR1) and C++0x. Scott Meyer's list of the five most important C++ software includes Boost and Scott has a training course for TR1 and Boost.

Quotes from the Boost home page:

"...one of the most highly regarded and expertly designed C++ library projects in the world." — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

"Item 55: Familiarize yourself with Boost." — Scott Meyers, Effective C++, 3rd Ed.

"The obvious solution for most programmers is to use a library that provides an elegant and efficient platform independent to needed services. Examples are BOOST..." — Bjarne Stroustrup, Abstraction, libraries, and efficiency in C++


A few of the boost libraries that MCATK make use of:

boost::function
boost::bind
boost::signal
boost::mpi
boost::serialization
boost::filesystem
boost::shared_pointer
boost::array


It has changed how we think about using C++ and development.