Home
Up
Services
Training
Articles
About Us
Contact Us

Honeybees and Spiders

What happens if you remove a honeybee from its hive and isolate it? It will die relatively soon, even if food is available. Honeybees are inherently social creatures and cannot live in isolation. But spiders are different. Except for 2 species in the world, spiders are not social creatures. They live alone and normally avoid each other except to mate. What happens if you force 100 spiders together into a "community"? Ah, eventually you end up with just one spider -- a very fat, well-fed spider.

Modeling is an activity for honeybees, not spiders. Modeling is a communal activity. If you try to develop your models by yourself you are doing two disservices. First, you will not benefit from the insight that others will bring to the problem at hand. Second, they will not benefit from your insight.

Because modeling is a communal activity--a group adventure in discovery--I actively listen for the "buzz" of the hive when I am teaching OO, or working with a project group. In a classroom context I can listen to the noise level of the teams developing models and get a sense of how aggressively the students are exploring their models. And I can pretty effectively predict the overall quality of their models. The more buzz there is, the more options are considered, the more interaction there is, and the models are better.

Buzzing teams usually have a single "gold standard" model that one member scribes as the whole team interacts. But when teams do not buzz, I usually find each team member doing his or her own version of the model in isolation. There is little or no interaction, and insight is limited to the brilliance (or absence thereof) of the isolated individual--in other words, spiders.

New college grads have trouble being honeybees. They just re-entered life from 4 or more years of being forced to exhibit individual achievement. If a manager does not recognize that team members are taking on a spider persona, that manager may not take steps to introduce those spiders into a honeybee hive. In software development, cross-species transformation is a good and desirable goal to pursue.

All of this means the social culture of modeling is at odds with the cultures of many organizations. Some organizations isolate project members physically: the tyranny of the "cubicle" is very pervasive. And cubicles are not a bad thing. They offer privacy, isolation from many distractions, a sense of personal space and retreat. But they do not encourage cooperation, interaction, or a sense of community and shared investment. I have had the frustration at several client sites of having the client actively and purposefully resist creating a community space for the project members, a geographically open space where the team see and hear each other and are compelled to interact. The resistance has been manifested in various guises. One client said they would not create an open development area for our project team because it would be "elitist" since no other group had such an environment. That was a particularly cynical response from a Vice-President who shared this view while I was sitting in his elegant, mahogany- and cherry-appointed corner office. Another client resisted removing the partitions between the Hermann-Miller cubicles because it would violate the Facilities Manager's conception of how the office area should be laid out. Somehow, I suspect the Facilities Manager had never developed software, and did not take into his office plan alternate geographies for the cubicles to support the what should have been the strategic goal of this client--software, not meeting an appearance specification. Others have resisted the prospect of establishing space for a hive because they just could not think outside the mental box they had grown up in, and lived in for the past two or three decades.

It is reasonable to ask what kinds of honeybees need to be in this project hive? Lots of different kinds. Just as a hive has a queen, and worker bees, and sentinel bees, so the software development hive must have different constituencies. First, it is valuable to possess a specific sub-species known as the Modeler bees. These are not required for the life of the hive, but if present, they enhance the lifestyle of the hive. These bees have the skill to capture the thinking of the project from multiple perspectives, and to communicate those perspectives in a common notation--usually UML, with additional symbolism as needed. They are also unique in having no constituency of their own, rather they are driven only the needs of the hive. Without Modeler bees you can still complete a project, but you will not have the unifying insight they bring, nor the clarity and economy of expression that can be obtained only with some level of abstract representation of the goals of the project hive: i.e., the project models.

Second, you need the Development bees who are producing the software. They need to have a collaborative process and geography since today's software is just too complex for individual understanding. Truly, we need a "community mind" to fully comprehend the problem to be solved, and the selected design approaches. Most non-Development bees think that all Development bees are alike (nerdy, weird, ...) but there are dramatic differences in this population: programmers, designers, interface specialists, etc.

Third, you need Business bees, who can bring clarity to the problem to be solved, who can explain the business drivers behind the technical implementation, and who will obtain answers for the questions that inevitably arise during a project no matter how much time and effort you expend in gathering and documenting requirements.

Fourth, you need Customer Bees -- or someone who represents the customer and end users. After all, the end users are the ones who will use what you are building and if you don't meet their expectations and goals, then your development has been a failure. And the customer is the one paying for your development, so you better make sure you understand any constraints or expectations the customer may have.

Fifth, you need Quality Assurance Bees and Documentation Bees. They may not be continual residents in your hive, but they need to visit on a regular, planned basis.

All of these Bees must return to the hive regularly. I advocate hive meetings. These are much more than status meetings; these are life-support gatherings. Each group of bees, or representatives of each group, meet every few days (or daily) to take the pulse of the project, to determine if one of the groups needs additional support, or if the life-signs of the project are showing a terminal prognosis. Sometimes the hive is found to be fouled, and it must be cleaned of misunderstandings, animosity, rivalry, or jealousy. Sometimes the bees find that one group needs help and the other bees pro-actively engage their services to assist, knowing that if one group falters or dies, the whole hive is in jeopardy.

Software -- and especially software modeling -- is a communal activity. If your organization is run by spiders directing other spiders, try some genetic engineering. Transform your project from a set of webs and into a dynamic hive. Listen for the buzz: it is the sound of life on your project.

 

 

Copyright ©2008 Evanetics, Inc. All Rights Reserved.  www.evanetics.com