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

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…

Elements of an Effective Scrum Task Board

What are the individual elements that make a Scrum task board effective for the team and the leadership of the team?  There are a few basic elements that are quite obvious when you have seen a few good Scrum boards... but there are some other elements that appear to elude even the most servant of leaders of Scrum teams.

In general I'm referring to a physical Scrum board.  Although software applications will replicated may of the elements of a good Scrum board there will be affordances that are not easily replicated.  And software applications offer features not easily implemented in the physical domain also.

Scrum Info Radiator Checklist (PDF) Basic Elements
Board Framework - columns and rows laid out in bold colors (blue tape works well)
Attributes:  space for the total number of stickies that will need to belong in each cell of the matrix;  lines that are not easy eroded, but are also easy to replace;  see Orientation.

Columns (or Rows) - labeled
    To Do
    Work In P…

Situational Leadership II Model & Theory

Have you ever been in a situation where you thought the technique needed to move forward was one thing, yet the person leading (your leader) assumed something else was what was needed?  Did you feel misaligned, unheard, marginalized?  Would you believe that 54% of all leaders only use ONE style of leadership - regardless of the situation?  Does that one style of leading work well for the many levels of development we see on a team?

Perhaps your team should investigate one of the most widely used leadership models in the world ("used to train over 5 million managers in the world’s most respected organizations").  And it's not just for the leaders.  The training is most effective when everyone receives the training and uses the model.  The use of a ubiquitous language on your team is a collaboration accelerator.  When everyone is using the same mental model, speaking the same vernacular hours of frustration and discussion may be curtailed, and alignment achieved, outcomes …

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…

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…