Reduce testing time & get feedback faster through automation. Read the Benefits of Parallel Testing, brought to you in partnership with Sauce Labs.
This year son joined the Robotics Club at his school. It runs first
thing in the morning and the instructor encourages parents to attend, so
I was able to make it this morning. I had an absolute blast watching
the 12-14 year old kids working with their creations.
my son and his partner worked quite well together, there was no need
for me to really do anything but observe and enjoy! I ended up being in
full Agile Coach mode, and what I did observe was quite enlightening.
instructor had laid out a track on the floor of the room using tape
and, since today's session was focused on using the Mindstorm's
ultrasonic sensors, some Lego brick walls. The goal was to program the
robot to navigate the track, avoiding the walls.
I thought was really cool was how the kids didn't try to program the
entire track at once. They would try to do one thing, e.g. detect the
first wall and stop, and then test that out on the track. If it failed,
laughter ensued as a wall was bulldozed and the pair would try again
using what they learned from the "failure". Once they got that one step
working, they moved to the next. Rinse & repeat.
There were some key things I observed:
- NO FEAR OF FAILURE!
Was that loud enough? Could you hear me at the back? These kids didn't
have to get everything perfect from the start. They experimented,
learning more each time and repeating until they got that step right.
worked incrementally and iteratively. Each step took one or more
experiments, an iteration, and they built the whole program step by
step, i.e. incrementally.
- They worked in pairs. I didn't get to
spend much time observing the other teams, but my son and his partner
were pair programming in every sense I know of. I was a proud Agile
- They delivered. By the end of the 1 hour session, my son & his partner had programmed their robot to complete the course.
So, what is there to learn here?
and foremost, get over the notion that something has to be perfect
right from the start. Experiment, fail, learn, succeed. For example,
they had two possible ways of turning the robot and tried both to see
which one worked better rather than debate which was the "better" way.
avoid working alone. That's not always possible, but when you can work
with someone else, do it! I learned about Pair Programming 10 years
ago because I was actually doing it at the time. I still harp on teams
to do it, and there is still push-back. Don't give me the introvert
excuse, because introversion doesn't mean that you can't collaborate.
In any sort of experimental or creative endeavour, multiple minds are
greater than one. I saw that this morning with my son and his partner,
and I see it all the time in software development when people actually
take the time to pair.
Third, you have to
actually deliver something. Kids in a Robotics Club is fun, but we're
in the business of building software products. If you don't deliver,
you go out of business. My son & his partner were able to get the
job done despite the experimentation. Actually, I'd argue that they got
the job done because of the experimentation, since they
incorporated what they learned from their experiments back into their
next iteration of work.
So, this makes me
wonder when many of us become afraid to fail. I would imagine that it's
a slow, incremental process, i.e. there is no single event or situation
that you could point to. The best people I know and have worked with
experiment constantly. Why do so many of us fall into the "Plan the
work and work the plan" trap? Is this a personality issue? Are some
people preconditioned to experiment, while others are preconditioned to
I would also imagine that corporate culture
factors into the equation. Would a public sector or very large private
sector organization foster creativity through experimentation? Would a
company that has downsized repeatedly since the dot-com boom reward
people who fail in the small and learn?
on what I saw today, the corporate world could learn a lot from kids.
Experiment without fear, learn, improve, deliver. Simple as that.
and when my son & his partner finished programming the robot to
navigate the initial course laid out, the instructor added a 45 degree
turn. The two boys made the fatal mistake of any programming
activity... they said, "That's EASY!!" They never did get the robot to
make the 45 degree turn! :)