Skip to main content

Simulations are tools for fun.

If you want to learn a new skill, create a safe simulated environment in which to practice.  I feel this is a lost technique for most technologist.  Perhaps it is too easy for us to just start writing some new module in a new language just because we wish to learn.  We think that we will just solve the real world (work) problem at the same time.   I learned of this case recently.

A developer used their work environment to learn a new skill.   In this case the programmer decided to learn design patterns.  So to do this he started applying every design pattern he could to the application he was working upon.  Now, if you imagine this is a beginner at the technique of pattern application then you may imagine that he may have gotten a bit carried away.  And that is what I've heard happened.  Now the code has nice fancy patterns, some quite complex and many are used just to experiment with the pattern.  This happens to be code that is sold to clients, and the over exuberant use of patterns have made the code worse, and harder to maintain.  Quite the opposite of the intent of design patterns.  In fact had the programmer learned his subject well, he might have found that he was applying the 'cargo cult programming' anti-pattern.

What interest me is why this happened.  Why did the programmer feel the need to learn patterns.  Why did he apply them to the clients code base (application) while he was learning?  Why did he not have a 'safe' sandbox to learn and play within.  Why did the company allow this behavior - perhaps they encouraged it?

I think many of these root cause issues come down to a human need to learn, and that learning needs to take place in the appropriate place and context.  In this example case the developer had a context (the work environment and the companies application code).  But, clearly, this was not an appropriate place to learn this skill set.

What would happen if the developer had a sandbox that he could apply those skills he wished to learn and they after a few experiments with design patterns he would take that new knowledge to the actual work?  This is a concept used in so many other industries, yet in an industry where creating virtual worlds and models are our forte, we don't use them for our own learning.  We learn on our clients new application.  A common behavior pattern is to learn the next skill needed by gold platting the current application.

Why not have a simulation-lab where this type of learning may take place?

My sister-in-law is in town to do a sailing level II course (she is skipping the level I - so that she can get certified to go on a training cruise in a few months)  She has never really sailed.  She has studied the books, knows all the equipment names, parts of the sail boat, she can talk like a pirate.  But, there is some part of sailing that is experience.  Knowing which way the wind is blowing just by the pressure effects on the hairs on your body.  And the spacial relationships of the sail, boat, and wind - not to mention the difference in apparent wind, true wind, apparent velocity, etc.   Being expected to captain a boat for the first time can be a nerve wrecking experience.  Why not simulate this experience.

My wife created a mock up sail boat, a small model.  A cardboard boat and a mast with a plastic sail.  A little fan provides the all important wind.   Switch it on and the simulation is underway - the learning begins.  Sailing - like Scrum - is an empirical game.  In sailing one measures the wind and always adjust to the wind's force and direction.  Everything is relative to the wind.  They spend the afternoon learning to sail in the simulation of the apartment.  When the model doesn't provide the proper scale for the next lesson, a bit of refactoring on the mock up leads to the swiffer mop becoming the mast and the coffee table becoming the boat.  This time the model is complete with main sail and jib.  Now the simulation has taken on a complex relationship and there is no risk of capsizing or running aground.

When learning becomes experiential and fun humans retain more.  We don't just learn in our heads,  We use the whole body to process and store information.  Remember the reference to body hairs.  Yes, those tiny little hairs are how we know the direction and force of the wind.  We have to learn to process the signals they are sending and map that sensory information onto the model of how a sail boat converts wind into propulsion.  When a person has done this a few time, even if it is in a living room, they know how to sail.

So why are we in the high-tech industry not creating simulation labs?  Why don't we have a Matrix Construct, where we down load an application that needs some refactoring and a few patterns applied.  This simulation would not be the clients application code.  But a reusable learning environment.  If we value learning, and we better, because in the 21st century the modes of wealth creation changes - it is not how much you can produce, it is how much you can learn, and apply that knowledge.
1 comment

Most Popular on Agile Complexification Inverter

Software Development terms applied to Home Construction

Let's Invert the typically wrong headed view of Software Development project management as a construction project.  We can map it the other way just to see if it works... to have some fun, to explore the meaning of phrases we toss around quite frequently.

Normally Project Management terms come from a construction domain.  We are going to apply the lexicon of modern software to the construction of a home.  We will follow the construction project and meet some of the people doing the work.

This is a very small (8 homes from $600,000 skyward) program in my 30-40 year old neighborhood.

About 6 months ago I saw the programs landing page go up.  It gives casual observers and some of the stakeholders a general idea of the intent of the program.  And most importantly who to contact for additional information if you happen to be interested in their products.

The Refuge program has 8 product projects and has them running independently.  Yet much of their DevOps infrastructure has already b…

Where is Shakespeare When We Need Him?

We are desperately searching for a term for people that connotes the best of human kind.  The creative, sensing, combinatorial synergistic, empathic solutioning persons that have yet to been labeled with a role name that works.

Some of the old terms:
Staff, Workforce, Human Resource, My Team, Army, Company

Shakespeare created 1700 words in his time.  He mutated verbs to nouns, and vice-a-versa, transformed verbs into adjectives, and formed words from whole cloth never before heard.  This skill is rare, but there is a poet that can create the term we need in the twenty-first century.

What should this term define?

21st Century Human Resource; the generalizing specialist.

Yes, but what more?  What less?

Suggest your poetry in the comments, let us see if we cannot do 1/1700 as well as The Bard.

By-the-way; who create the phrase "coin a word"?

A TED Play List - How do you create new words
Erin McKeanGo ahead, make up new words! In this fun, short talk from TEDYouth, lexicographer Er…

a little feedback please...

some feedback please...
How do you like the new look and feel of our site?
  ___)  nah (I like the old one better - bring it back)
  _X_)  yeah (much cleaner and easy to navigate)

powered by Typeform
See Also:

One Dark and Stormy during a Hurricane

I'm from the Carolina's where legend has it that our family commonly just hunkered down in the home on the coast and waterways than to head for inland shelter. Now that's from the old school days of barely improved (read paved) roads. They counted a storms severity by how high on the back porch steps (about 15 - top to ground) the water reached.  I don't recommend this action in todays world of long range forecast and transportation options.

I do recommend a drink or two in a hotel bar, far far away.

This is the week that Harvey came ashore in Texas.  I live on a hill in the little old town of Grapevine outside Dallas and Fort Worth.  And thank you all for letting me know that a storm is coming... I didn't get out and walk Malibu before the rain hit, so I grabbed a hat and we went anyway.  Much nicer walk with the drizzle, I'd say.

I'll raise a glass to you - if you were not smart enough to do the responsible thing, at the last responsible moment.

I do re…

Innovation in the Automobile Industry

In the 1900s the automobile industry was the most important and innovation industry in the USA.  But one could question if this was good for our society in the long run.  And one could question if they actually innovated.

In the early 1900s there were few automobiles, very little infrastructure created to support the industry.  For example the road system was still designed for horse drawn wagons and the wagon wheel (remember a steal rim and wooden compression spoke wheel).  The future US Highways, or the 1950s Interstate Highway System at the cost of $425 billion were decades and many innovations away. There was no gas service station, there were however horse stables, farriers, and blacksmiths in each town along the roads.  There was no real "road map", there was no road naming system, like was created in 1926 - the United States Numbered Highway System.

The industry employees millions of people, and was a large factor in the economy of the USA.  It created or was created b…