Are We Learning Anything Yet?

tweetthisbutton1 Jaime Rodriguez : WPF in Line of Business, Why and where...

Sharing information and developing the team’s collective IQ is about more than just sending emails, it’s about building the teams connections and simulating virtual pairs. In this article I explore what this means and discuss some of why it’s important. I also explain one of the tools (Shareaholic) which I use to make sharing information easier.

Don Robins pointed this article out to me and I thought it was interesting. If you’re interested in WPF you should read it.  This article suggests that Markus Egger and Stephen Anderson are on the right track in the post “Form Does Not Follow Function, They Dance Together.”

However, sharing the article was not my only purpose with posting it here. I wanted to show the use of a tool called Shareaholic. I posted this article to this WordPress blog with one click via Shareaholic and I wanted to point that out and talk a little about sharing.

Shareaholic is a Firefox extension that allows you to post, email, or twit your current web page automatically via a toolbar icon allowing you to share information easily. I’m finding it very useful and it addresses one of the primary complaints with sharing information - that it takes too long - I don’t have time. Shareaholic is a fine tool and I use it, but there are dozens of these add-ons and toolbar extensions (Diigo, GoogleToolbar, YahooToolbar, Billions of twitter ones, etc.). I’m suggesting you take a look and find one you like. Shareaholic supports posting to 60 services so I find it useful for posting to GMail, Blogger, Twitter, Amazon(wishlist), WordPress, etc. etc.

When working as a team you have an unique opportunity to learn at the speed of the group, however neural networking studies have shown that this learning is directly proportional to the number of active connections along the net. Think use it or lose it as a good model for both brain and team intelligence.

If you work on a team but keep your discoveries to yourself, I’m going to have to challenge your commitment to team learning. You are simply not helping the team learn if you aren’t sharing. Learning as a team is one of the primary purposes of having a team (tackling problems bigger than one person can handle is obviously one of the others). However, when it comes to sharing just sending the email or copying the article or sharing a link is just the beginning. Grasshopper/Neo/”Luke Skywalker” - before you can “take the pebble from my hand”/”control the matrix”/”feel the force” you first have to be made aware of the existence of the skill to be mastered. In terms of your team, you need to be aware that the team represents a network that constitutes a learning machine - a brain - and that the team has an IQ and as a contributor to that IQ you need to master the skill of sharing to be effective.

I don’t have a “blind folded karate demo”/”blue pill, red pill choice”/”targeting of a death star exhaust tube without the aid of your targeting computer” to convince you that there is a mystical network of information which your team shares and which you should exploit and tap into, but there is. Call it “shaolin spiritual power”/”control of the matrix”/”the force” or the collective IQ of your team. Call it whatever you want, just be aware that it exists and you should try to encourage it’s development. (Or as Yoda would say, “There is no try, only do.” Five points to you who already had that quote in your head when you read it.)

Ok, it may not be as mystical as ancient Chinese philosophy or as freaky as a matrix powered by human batteries or as universal as the force but the collective knowledge of your team is something to be nurtured and developed. It’s also something which is rarely acknowledged in the context of information sharing. The common philosophy is that building team knowledge is good when you can get it but few teams practice it as a skill. They don’t tap into “Master Po”/Morpheus/Yoda for things as remedial as sending an email or referencing an article or web link. But we need these master skills. We need a Po/Morpheus/Yoda to point out that we’re doing a poor job. My emails to these characters have gone unanswered so in this post I’m going to try and convince you to spend some time in your “Chinese monastery”/”simulated reality sparing room”/”planet Dagobah bog” or where ever you go to master your skills and contemplate what it means to effectively share information.

“But I don’t have time to read all the stuff people share!” I hear you shout at your screen. Sure, which is why it’s important that people put pertinent subject lines and context information in their emails, twits, and posts. You need the connection but you also need the indexing. It may be enough that your teammates know you sent a message about WPF’s place in Line of Business applications or architectural layering strategies. The idea is not to read every article or master every skill, but as a team you want to know as much as possible about what the others know, and you want them to know what you know. This is the nature of neural nets. The connections, more than the content, represent the learning. A link sent without comments is like a book in the library with no writing on the binding. It may be full of information but who’s going to pick it up and read it?

A good guideline might be to think of your subject lines and preamble about the info you’re sharing as the team information index. Your subject and context information should provide enough so that your recipients could use their email or web search engines to find the email later. An empty email with a single link just doesn’t work for this. Once missed or passed over and archived, it will never be found again. Information sharing is a team activity and doing it well is a team skill.

The best time to learn something is when you need to use it. However, team sharing does not work that way. Unless the entire team is working simultaneously on the same problem, team members are going to make and share discoveries which are very important to the team but only marginally important to what the other team members are doing at the moment. To optimize teamwork we can try to be more timely with our sharing. But it should be obvious that the bulk of what we share is going to be of maximum interest to our teammates at some other time and that this is out of our control. The next best thing is to share our information in a way that makes recognizing why the information is important and in what context. This makes remembering and searching for it later most effective.

One of the reasons why Agile and XP have such a strong emphasis on pairing is that we are so terrible at sharing. There are other benefits too. Two minds pondering a problem are better than one and the dynamics of the discussion brings solutions to the surface that you might not find on your own, but I feel an under appreciated benefit of pairing is the exposure of the problem domain to the two developers where each person’s index of solutions can be run against the problem. If we shared more effectively I believe we would get some of the benefits of pairing without the need to be paired. This should be seen to have a scaling factor. Pairs can only happen one at a time (how’s that for poetic license?), but having a collection of common knowledge can happen simultaneously throughout your entire team. It’s scales to the degree to which your communication network is effective. It should be just as easy for a team of 5 to share information as it is a team of 5000. Once a solution is shared effectively all 5000 people have access to the solution.

We certainly see this effect in the evolution of our industry. Ten years ago people were sharing the idea of the N-Tier architecture. It was experimental and even “risky.” It was “too complicated” and “too expensive.” Today, it’s a given and few teams would attempt a complex application without three logical layers and at least two physical tiers. Our collective knowledge has increased to the point that the most common discussions about creating N-Tier solutions is not whether they are possible or needed but which flavor are we going to apply. Ten years ago I had one of my team leaders say, “I don’t know if this object oriented fad is going to survive.” Today, it’s hard to name an environment that doesn’t fit some flavor of the object paradigm. Today developers, as a collective, find it easy, obvious, and natural to think in objects.

Now, back to that email…

When I send an email I find myself focusing on the content. It’s extremely difficult for me to remember to include context and summary information. This difficulty seems to be fairly common if my inbox is any indication. Sharing and remembering to include summary, index, and context information appears to be a competitive skill on which our teams need to focus. I’m arguing here that learning teams are constrained by their ability to create connections (talking, email, presentations, social networking, scrums, alerts) and by the individual team members ability to effectively index the information as it’s being shared. It’s also important that we do this without constantly interrupting the flow of our team members. This is one of the reasons why email is such a popular mechanism. But the short comings in summary, index and context information make processing information shared via email time consuming and error prone.

I can’t tell you the number of times a team member has expressed a need for a technique or solution and I’ve said or been told, “I sent you an email about that several weeks ago. Don’t you read my emails?” Why did the communique leave the team member in the dark about having a solution to their problem in their inbox? What can we do to reduce this? One thing I’ve tried to do lately is to include context markers in my subject lines.

Subject line context markers are very common on listservers but I’m starting to see individual developers use them more. My recent emails have included markers such as:

  • [FYI]
  • [Documentation]
  • [Coding]
  • [HowTo]
  • [Tip]
  • [Pattern]
  • [BestPractice]

These help the recipient index the information and should be a part of how teams triage email. One idea I’m toying with suggesting to our team that we develop special purpose tags for ideas that bolster the teams IQ. One of the challenges with project work is there can be a lot of emails flying around. We need the ability to quickly separate the messages of an FYI nature from messages containing HowTo information from information which was hard earned. Who hasn’t wanted to create this tag: [HeyIWorkedMyDamnAssOffToFigureThisOutSoPayAttentionToThisInformationAndItWillSaveYouTheHellI'veBeenThroughTheLastThreeDays]

I’ve sat with a huge stack of magazines going through every issue because I knew that I had seen an article on how to do something months ago and now I need to do exactly that thing. In many cases I hadn’t even read the article. I had seen the headline or read the teaser and that was enough - I knew it was in there somewhere. It was this index of knowledge that allowed me to go through the stack and find the article. The Internet and Google help a lot with this problem but I don’t want to suggest that Google can replace team work and team learning. Everyone has access to Google, the real competitive advantage for a team is how well they can communicate and how effectively they learn from this communication.

By now everyone has seen the Google Wave presentation. I found it very exciting. Who knows whether Wave will take off, it’s too soon to tell, but regardless of whether it’s a success or not I believe it fired people up with the possibility that the communications they’re having right now are not as rich as they could be. There is no new technology in Wave. It runs in the browser, it uses mundane servers and a few fancy browser tricks but by and large it’s being built with tools we’ve had for years. But what is new is the idea that sharing in all it’s various forms should be treated as one big conversation - one big learning machine. You throw an idea pebble in the social pond and watch the waves ripple out and connect with other waves forming new ideas and sparking new waves. The big idea here are the connections, the waves themselves, not the content. It’s my belief that we often miss the content because we’re not doing a good enough job of packaging the information. We simply cannot effectively triage the information being shared. And the tools make it difficult for us to share the information we discover.

The tools lack a consistent way of adding context and summary information. Do you use Gmail and tag your messages? If you forward your message do your recipients receive your tags? No. This may be a privacy concern for some but the idea of sharing the context information is a valuable one and right now it has to be cludged into the content. Why isn’t this a natural ability of email?

We don’t need, and shouldn’t wait on, Google Wave to become better communicators. My observation is that people are so focused and excited to share that they forget to summarize and tag the information. They want me (or you) to see the link, video, or text so much that they click send without realizing the lost opportunity. When we click send we feel a sense of community. We are proud of ourselves for sharing with our friends and teammates - how many of us realize that at that moment we are undermining our success and missing a great opportunity?

Once discovered, a solution may have been so hard earned or so exciting that we rush to install or implement it. We can’t be bothered to take the time and communicate our learning with the team. While this problem is as old as communication itself, I believe that tools like Shareaholic can lower the barrier enough that team members who were reluctant to share will have no excuse not to share.

Another factor is that it’s too much work to add the summary, context and index information. Hey, you should shut up and just be glad I shared with you! And I would agree that when it comes to sharing of legitimate information (not jokes, spams, etc.). Any email is probably better than nothing - but just barely. If we’re going to take the time and send the email shouldn’t we also make that information more effective? This is where tools like shareaholic come in. By automating the cutting and pasting of the link, the subject text and sometimes the context information it frees the time for us to add a comment or context information which can be crucial to the assimilation and application of the information. And being able to triage and assimilate the information is the only way the team can grow it’s collective IQ.

There are thousands of teams doing software development in the world today. The most effective teams will be those that can learn. One of the skills required for a learning team is how to effectively share information. Help your team to learn by adding the summary, context and index information to make your communications and your team smarter.

Scott Hurlbert