I have always been a fan of bicycle riding. Energy from a
renewable resource (my legs), fresh air, beautiful scenery sweeping by and
speed.. what's not to like! Travel within the city in our younger days in India was
entirely on bicycle. Riding clunky and
heavy bikes, with a luggage rack in the back, and an oil lamp hanging in front,
the start of a bicycle journey was always heralded by the anticipation of reaching
the destination.
So when my first born decided he wanted to learn to ride a
bike, I was thrilled to share my love for economic travel and offered to teach
him myself. We had bought a small bicycle that was on sale and came fully
assembled.
We started off with preparations. I could not find a helmet
that fit his small head so off we went to Target to get the helmet. I also got
a pair of sturdy sneakers that would protect his feet from the pedals and the
road. Just in case there was a emergency, I also packed a medical first aid kit
with bandages, Neosporin, cotton and candy as a pacifier. I found an old
electric inflator that ran off my car battery and pumped the tires of the
bicycle to the required 60 psi. I tested the brakes to make sure they worked.
Ensuring that the clip that secured the seat from going up and down was firmly
in place, I went for a test ride hunched over the small bike on my driveway and
pronounced the bike roadworthy and safe for my son.
We found a quiet parking lot in his elementary school over
the weekend when no cars were parked or moving around. We found a kerb where he
could stand and slip his legs over and around the seat and climb on.
I slowly pushed the bike forward with my son sitting on the
seat. I held on to the bicycle to keep it vertical and steady as he began to
pedal. And off he went as I ran by the side holding on. I helped steer the bike
on a straight path and maneuvered it to return back to the curb where we left.
I asked my son to apply both the front and rear brakes to stop the bike. The
bike lurched to a stop and my son almost fell off but his feet could touch the
kerbside and he was able to steady himself.
We made a few more passes and then came the decisive moment:
his turn to ride alone without Dad holding the bike and running alongside. Were
we ready? My first task was to move the battleground to the grass and away from
the paved parking lot - my thought was that falling on grass was less painful
and had fewer long term consequences if things did not go according to plan. The next strategy was to build up enough
speed from the takeoff that the extra speed itself would keep his bike
vertical.
Everything went off according to plan. But. I had forgotten
to show him how to stop and dismount. Just as the thought came to me, I saw my
son fall to the ground in a thud at the end of the successful ride. We went
back to the drawing board and practiced how to dismount while the bike was
still coasting and not relying on the height of a kerbside.
Two more sessions and my son became an accomplished
bicyclist - soon he was showing off by riding his bike hands free. He had
finally mastered a very important skill and I was left with an architectural
lesson from observing the whole process (we architects tend to complicate the
simple and the obvious with complex terms and abstractions!)
Lesson number 1: Activity definitions depend on the Performer
The activity I was performing was Teaching My Son to Ride
a Bicycle. The activity he was performing was Learning How to Ride a
Bike. Notice that the verb phrase for the same activity changes when the
performer changes - I was teaching and he was learning. Changing a viewpoint
and concern changes the verb phrase and the metrics. I would be measuring my
ability to teach while he would be measuring his ability to learn. We are both
engaged in the same activity but goal-ed differently!
Lesson 2 Capability development has many solution paths
I was imparting (at least I thought so!) lifelong
capabilities to my son. From a capability view, my son was acquiring the capability
to Ride a Bike and its component capabilities (all of which are required) : (1)
Mounting a Bicycle (2) Propelling a Bicycle Forward and (3) Dismounting from a
Bicycle. We call the collection of capabilities all of which are required for
achieving a larger capability, a capability configuration. Ride a Bike
requires a capability configuration of at least three smaller capabilities. Of
course, we have completely ignored the additional need for preparatory
capabilities such as being able to inflate the tires, check the
road-worthiness of the bikes (including the brakes) and the post riding
capabilities of being able to shelter the bike from bad weather and
moisture. All the stuff that seems to come in automatically as part and parcel
of operating a vehicle.
Each of these capabilities could have been satisfied by
solutions in many ways: Mounting a bike
can be performed by finding a high spot to climb on to the seat on a stationary
bike or the rider can coast and stand on one pedal and then swing his legs over
to mount.
Lesson 3 Activity Need drives Capability Development
Down the pike the capability of Ride a Bike the assumption
is that my son would perform the
following specific chores (activities) (1) Bring groceries from the store (2)
Ride to the public pool for taking a swim (3) Ride to a friend's house to hang
out. The vision of what activities are enabled by capability drives the
enthusiasm and excitement for acquiring capabilities. Investment in capability
acquisition is an expensive exercise as we found out with his violin lessons
and tennis lessons. Being able to map capabilities to the achievement of
activities that are near and dear to his heart is a strong justification for
that investment in his mind!
Lesson 4 Capability Shortsightedness
As my son grew older, the capability Ride a Bike was
replaced by Drive a Car to perform these very same activities representing a
Technology upgrade from Bicycle to Car. It occurred to me that maybe I should
think of the capability Ride a Bike in broader terms as Travel Independently (of
which Ride/Travel by Bike was a sub-type) and then I could accommodate today's
bike travel with tomorrow's automobile travel to the future jet-plane travel he
does today as an employee of a large corporation. By couching a capability in
terms of current or the "then" technology made it limiting.
Lesson 6 Process Components
Clearly my concerns in various parts of the whole process
were on different types of things:
In the PREPARE phase I was concerned with ensuring that the
whole process would work. Part of the preparation was making a checklist of
things to buy, things to check out and things to worry about, anticipating
risks and threats, and putting in place
an environment where at the end of the day, my son would be able to
successfully ride a bicycle.
In the PERFORM phase I was concerned with ensuring that I
taught my son how to mount a bike, ride the bike in motion and then dismount
after reaching the destination. He was interested in acquiring these skills
also.
In the CLOSEOUT phase, we returned the bike back to the
garage, hung it on the hook from the ceiling, kept away the helmets, and washed
our arms and legs before we went back into the house.
In the CONTROL phase I was observing what my son was doing ,
making course corrections in the instructions, pointing out obstacles, gently
guiding the bike's handles and supporting my son until he was able to ride on
his own.
In the RESOURCE Phase my concern was to provide the supplies
we needed such as buying the helmet and the boots and components of the first
air kit for example to ensure that the day went well and we had all the
supplies we needed.
(Figure 1)
I tried to layout the various components of the process
using a diagram to show separation of these types of concerns.
Lesson 7: Process Components are Fractals and have their own threads
Interestingly, the task of purchasing a helmet from Target
had its own model which involved preparations like fueling my car, getting a
map, physically driving to Target, getting instructions for the location of the
bicycle helmet aisle, selecting a helmet, checking out and paying for the
helmet, driving back home and then parking the car. This sidebar model had ots
own "locus" that touched upon the day's exercise of teaching my son
how to ride.
The lesson was that the process pattern we established for
the overall activity of teaching my son how to ride a bicycle was a fractal -
its components displayed the same pattern in their own internal structure. In
fact we can use the pattern as the DNA for any process.
I tried to depict the fact that each of the component
activity phases had their own locus's using the picture shown below:
(Figure 2)
The secondary threads are not sidebars to the primary
thread, but necessary processes required for the success of the primary thread.
Lesson 8 Process
Components Deal with Different Variables
As we look at the various components (Phases) that make up
the process pattern, we find that different variables are involved in each of
these components as they address different concerns and measures related to
those concerns.
(Figure 3)
Lesson 9: Modeling
techniques are different for each of the components
Notice that the process component CONTROL is not linear but
is always monitoring the progress of the other components to determine a course
of action or to make decisions. The classic modeling technique for linear
processing such as IDEF0 and BPMN do not work very well for modeling the locus
of the CONTROL component. Rather modeling techniques such as OODA (Observe,
Orient, Decide, Act) sometimes also called PDCA are more appropriate. In our
story, when my son fell off the bike because he did not know how to get off, I
had to redirect my training strategy and add an element of dismount training to
make it all work.
On the other hand the RESOURCE Component needs lead time and
a set of linear processes to provide the supply of resources at the right time
to the right activity that is performing. In our story, I did not have the
luxury to go out and earn the money I used to pay for the helmet at Target. I
had to have cash on hand (or some other means of payment) to be able to walk
out of the store, helmet in hand!
(Figure 4)
Conclusion
In my brief story are embedded many architecture
lessons! The DoD Architecture Framework
is versatile enough for me to express the various concepts in architecture
terms. However, the simplicity of the story in the beginning of this blog is
lost in the various detailed renderings. An architecture description tries to
represent with completeness and clarity all the various aspects of structure
and behavior. The pattern that I have presented appears to be a powerful one
for process modeling. The fact that each component can be recursively modeled
using the same pattern is a powerful one because the pattern exhibits fractal
properties.
I have always been intrigued both by the completeness and
the simplicity of a IDEF0 Context Diagram both as a black box and as a fractal
structure for decomposed activities. Flows and threads tend to make a model
very complicated. At the same time flows and threads tend to be scenario and
situation specific and their usefulness in enterprise modeling is about the
same as Use Cases that are tailored snapshots.
Flows and threads also tend to "micro manage" fine grain couplings that goes against the
separation of concern approach expressed in this article.
The current craze for
using BPMN models belies the inherent simplicity of the Process Pattern as well
as the separation of concerns that delegates the internals of a Process
component to the performer.. Often we wind up with a spaghetti of carefully (and expensively) modeled BPMN flows and are struggling to place their context and define how they interlock.