How do you make something you have done reusable to somebody else?

By
Shane Gibson
May 26, 2013

Ok I managed to not put it in the title but it comes back to the old give a man a fish vs teach a man to fish concept.
I have been struggling to work out what the best options are to impart knowledge to others in a way they can consume it, but more importantly in a way that the knowledge can actually make what they are doing faster, better or contain less risk.

The reasons I want do do this?

  • We have a talented team of people at OptimalBI but often they are on projects on their own, so the ability to leverage knowledge from others would make their lives easier, and the outcome for the customer better
  • We always leave documentation for the customer on what we have done, but often it is never used.

Lets look at that second point for a second….
When we do a project we always do documentation.  (and yes everybody hates doing it).  And most times when I visit the customer later they have never updated it, or often even read it.
Its even worse when the customers team has changed overtime, as the new people either don’t know the documents exist, or if they do they don’t read them.  So at the time when imparting that knowledge would help the new people get up-to speed faster, the documentation we have left is a failure.
So I started  down the thought process that it was the medium we were generating the documentation it in that was the problem.
From that perspective we have tried doing detailed documents, high level component style documents, wiki’s, sharepoint repositories.  Different mediums and different levels of detail but nothing really seems to make a difference.
But hey we are in the world of new media, so perhaps its the fact it is written words, maybe eLearning modules, youtube videos, step by step how to guides are the way?

But then I thought about how I learn:

  • I start watching youtube videos, or eLearning modules, and then I get bored and start doing something else while the talking head is still talking at me in the background.
  • I start reading 500 page user guides and then get bored and start skimming the words
  • I read step by step guides but as I am not actually following the steps myself I (you guessed it) get bored and start skimming (And ok so I get bored easy but so do a lot of people!)
  • I find instructor lead courses better, but only because it combines the fact I am stuck in a classroom for a day and have exercises and systems to actually do hands on.

But having to do instructor led courses every-time you want to impart knowledge is not scalable.
What about personal mentoring? Well yes it works, but again like instructor led courses, its not scalable.

Ok what about crowd-sourcing based knowledge sharing?

Think communities, bulletin boards that you can ask a question and get an answer.  They are great, but they are not immediate, which means if I can wait for a couple of days to learn how to do something better then its all good, assuming somebody answers my question!  But how often can you wait?  And more importantly they tend to be successful if you are trying to solve a specific problem, because the answer is normally quick or linear.  But  if you ask a question thats broader (say for example how do I implement SCD2 Dimensions in a data mart based on time series source data?) then the answer is far more involved and your chances of getting a response that helps is minimal)

Oh that’s what we need a methodology!

We use methodologies to help impart a process, but not really knowledge.  What they do is typically remove the ability to innovate around an issue or concept, as the methodologies typically say “do this, this way!”.  But from a knowledge point of view what we need is something that says “in this type of situation, we implemented this type of thing”.
So for me this comes back to one of my principals of successfully imparting knowledge:
“Design Patterns are an effective way of imparting knowledge”

What we need are design patterns

For me a design principle can be thought of as a template, a recipe, a framework, a set of components, building blocks, quick starts.  They are something that will get you started quicker than if you didn’t have them, but still leave you the flexibility to innovate around the specifics of your problems or challenges to solve the business problems you are trying to solve.
When I apply this concept to the way I gain knowledge, then I release that I often use “cook book” style reference books when I have a problem that I need to solve.  Two examples I have used lately are:

Why did I use them?  Well I needed to know something, I could easily find what I wanted in the book (based on its recipe style layout) and it imparted knowledge that included why I needed to do it a certain way and the how.
So second principal of successfully imparting knowledge:
“You have to impart both the why and how”
Within the Optimal team we try and use the concept of Context and Constraints for a lot of things we do, and that readily applies to the second principal as well, but that’s a subject of a different blog post.

What about blogs?

So if I extrapolate this further I often use blog articles the same way. Often a blog author has been kind enough to spend their time creating an article that provides the same style of design pattern for problems they have encountered.

Ok so if that’s the way I find it easier to gain knowledge, then we just post blogs and that’s it right, we are done burgers?
Well kinda.  The second problem is all about speed to answers.

Its all about instant gratification

By this I mean often I cant find an answer quickly.  I Google (I even Bing when I'm desperate) and I get nada!  This maybe because the content doesn’t exist or more likely because there is so much noise in google I cant find it, or I'm googling the wrong question.
It might not exist because nobody thinks its worth writing a blog or a book to share the knowledge.
We this isn’t really problem for our customers as we are doing the documentation anyway, so in this case we just need to change our documentation to be based on design patterns that impart the why and how.
For our own team we can provide time for them to create these articles for us to use internally and on our next project.
But the finding is the other problem.

Its all about search

Again we have built wiki’s, created SharePoint repositories, created knowledge bases, used dropboxes.  The problem is you can never find what you want!
Going back to how people find things these days the answer is google search right.  If you need to know something your default behavior is to go to the google search screen, type in your question and hit the old button.
All we need to do is create a repository of just the stuff we know we need, then put a smart search engine over it and it should help us if not solve the problem.  We are going to try and prototype something in Amazon AWS Cloudsearch to see if it does indeed solve the problem.
So third  principal of successfully imparting knowledge:
“search enables people to find the knowledge they need, when they need it”

Its all about right now

Which leaves me to the last problem.  What happens if there is no design pattern documented that will help us solve our problem, so there is no knowledge to impart.
Well we are stuffed really.  Nirvana would be to have a team of people on standby waiting to research, test and help create these design patterns whenever somebody needs one.  But you need massive scale to cover the overhead of this.
So for now its a case of making what is documented easily findable and in a format that easily imparts knowledge.
If people can’t find something quickly and easily then they will typically do the hard yards to work out a solution themselves.  They key is making sure they share the answer when they do work it out!
So the last principal of successfully imparting knowledge:
“if people cant find an answer they will create one, make sure they document it and make it available for the next person”
There is a new trend I have been thinking about that might end up with me adding a fifth principal in the future.  If we look at network based concepts and the fairly new technologies that are supporting them (Facebook, Twitter, LinkedIn etc.) then there could be a time when you can ask a question in a social media styled environment and immediately get an answer from somebody in your network,
We use Yammer internally as a way of constantly communicating amongst the Optimal Bunch, and so have some success when asking our person a question.  But again its all about NOW, if the team are busy and there is no response we are back to square one.  We tried extending that concept out to AskSAM as well, where we have all our customers on a trusted network using Yammer as well.  But same outcome.  So time will tell if network based solutions can bypass the immediacy issues somehow.
On a related note I stumbled across this blog the other day:
The Cereal Box (Or, How To Be The Smartest Person You Know)
Its a great article that talks all about the fact that the context of what you are looking and the way you prefer to gain knowledge, impacts your perception of the success of what you found in imparting that knowledge.
So to end with a question,  How do you prefer to gain knowledge?

Copyright © 2019 OptimalBI LTD.