Showing posts with label space. Show all posts
Showing posts with label space. Show all posts

September 22, 2012

Space Theories

I once created an agile space that my teams could choose to use. They had decent cubes they could also use. (Decent cubes -- an oxymoron?) Anyway, when the space was created it got used lots. Over time, it got used less. Late one night I pondered why and came up these thoughts. I'm posting it just for fun. Consider your space in light of these thoughts.

The Distance Theory


The likelihood of a team voluntarily using an agile space...

  • is indirectly proportional to their proximity to each other.
Teammates are unlikely to use the shared space if their cubes are only three steps apart.
  • is directly proportional to the sum of the distances between the cubes of the team members.
The more scattered the members are, the more likely they are to meet in a common location. Therefore, the likelihood of a team using the space may be proportional to the team size. This rule holds as long as that aforementioned sum of the distances is greater than the sum of the distances from the cubes to the agile space.
  • is directly proportional to their proximity to it relative to their proximity to each other.
No one will use an agile space that is much further away than whichever cube is most central.

The Equipment Theory


The likelihood of an individual voluntarily using an agile space...

  • is directly proportional to the computer speed and display size of the team computers relative to that of the computers in their cubes.
Equip the agile space with the most powerful PCs and beautiful monitors, and keep it that way.

The People Theory


The likelihood of a team voluntarily using an agile space...

  • is directly proportional to likelihood that the team-lead (or some core, key individual(s)) can usually be found the lab.
Social aspects and the exchange of info/ideas matter.
  • is directly proportional to the cohesiveness of their tasks.
Programmers working on disjoint tasks are less likely to use a shared space.
  • is indirectly proportional to the number of teams using that space.
I can easily listen in or tune out discussions between my team members. Discussions between members of other teams are not easily tuned out. (Cognitive dissonance.)

The Environment Theory


The likelihood of an individual voluntarily using an agile space...

  • is directly proportional to the positiveness of daylight.
Daylight is a positive and negative factor.
  • Daylight good.
  • Glare bad.
  • Looking at distant objects good. Reduces eye strain.
  • Heat bad.
  • Working shades are good.
  • Dysfunctional shades are bad.

June 18, 2010

Pair Programming, the Breaststroke

I’ve been working on my swimming for a few years. When I first started attempting the butterfly stroke, I found it very difficult. It required a lot of strength and technique that I did not have. I was lucky to make half a lap. Test Driven Design is like that. If you haven’t been shown some techniques and aren’t real strong with refactoring, with useful design patterns and with SOLID design principles, TDD is difficult to pick up.

In each case, you need a good coach. While struggling with my butterfly, I watched a few videos and read up on it in an attempt to improve my technique. But it’s just not ‘there’. And it never will be. My TDD skill is the same way. Underdeveloped. No amount of reading will get me where I would need to be with either topic if I depended on programming or swimming for a living. Hence the need for a coach. A coach will examine what you are doing and supply what you are missing or overlooking. A coach will help you build technique and strength.


Other strokes are easily done. Take the breaststroke for example. Anyone can do it. It’s not that strenuous. For years, I did the breaststroke only for fun or to cool-down or to swim to the bottom of the pool. It wasn’t for “serious exercise.” I never saw any benefit as a fitness routine. But then a swimming coach happened to stop by my house and commented on my stroke. I was doing it wrong. My strokes were too long and slow. Wow, what a difference a little technique makes. I couldn’t see my mistakes without a coach. Now, with a more effective pull, I’m quickly winded and building strength.

Pair Programming is like that. There are so many little things in this technique that can render it ineffective. What do most people do with an ineffective development practice? Typically, they drop it. At worst they keep doing it the same useless way, or they quit and then disparage it publicly. But at best, they get someone to improve their technique. Hence the need for a coach. I can watch a pair for a few minutes and usually give them half a dozen improvements right off. Chairs, posture, distance, and desk. Surface, keyboards, monitors and mice. Smells, habits, distractions and dirt. Communication, collaboration, cordiality, and care. Promiscuous, driving, navigating and alignment. A coach will examine what you are doing and supply what you are missing or overlooking. A coach will help you build technique and strength.

April 6, 2010

Pair Programming is Infectious

Those who are proficient at it say pair programming makes them faster and more thorough with their testing and refactoring. It improves their design skills and the quality of the application. Real good promiscuous pairing quickly spreads best practices, rhinoviruses, knowledge, influenza, bacteria, techniques, tips and tricks throughout the team. Not all things are good in an environment that excels at spreading things.

Thank goodness I'm seeing more and more team members actually go home at the first concern of getting sick, and managers in support of this. A cold can decimate an entire team.

Sharing a keyboard and mouse can help those new to pairing get the hang of it through the explicit "you drive" keyboard push. But once beyond that stage, use two keyboards and mice. They’re cheap.

You can keep plenty of alcohol based hand sanitizer and wipes around; a box of tissues on every desk and signs in the restroom encouraging hand washing. I'm starting to see restrooms with small paper towel dispensers by the door for the express purpose of giving you something to use when opening the door. One team I’ve seen sprays their keyboards and other surfaces with Lysol once or twice per week.

From the Chateau Grand Traverse men's room, Old Mission Peninsula

Eating well and getting exercise is commended in the places I've been.

But beyond those things, how can we convince our teammates to stop picking their nose? "I don't pick my nose!" they say. Ok, rubbing your nose. Biting your cuticles. Chewing on your pen. Whatever it is, keep your hands and other objects away from your face.

I guess sneezing into your hands is better than into open air and onto the desk, but go wash your hands afterwards. "Oh, bless you! A sneeze like that deserves a hand-washing."

I've been thinking about this a lot, to the point that empty beverage containers lying around creep me out. "Whose is this? Should I throw it away? Do I want to touch it?"

To combat these bad habits and their contagion in my teams I'm trying every approach I can come up with. I use humor when I can and the direct approach when it's all I can think of. And by the way, throw your used tissues away, will ya?

March 10, 2010

Pair Programming Stinks

What smells in your environment and what you can do about it.

Someone on your team has a keen sense of smell. Let’s call him Martin. Martin is annoyed by the smell of popcorn, can't stand scented deodorant and loathes air fresheners. Febreeze is sheer torture. He buys unscented laundry detergent. Only certain dryer sheets will do. Perfume gives him a headache. Baby powder makes his eyes itch, as does some hand soap. He is allergic to newsprint. Wintergreen to him is air pollution. Juicy Fruit and smelly feet make him nauseous. He can’t concentrate in the presence of these distractions.

Someone on your team smells. Let’s call him Andy, or maybe we’ll call her Andi. It’s his shoes. It’s her perfume. A little cologne. He smokes. She smells like the coffee shop she stopped by before work. His jacket smells like the bar he went to for lunch or the curry they have at home. The poor girl has halitosis and periodontal disease. Andy will wear the same shirt a few times between washings. Andy’s got gas.

Of course he can't smell this. He is used to it by now. He has, after all, been living with the smell for twenty years. It started gradually, innocently enough. It stnunk up on him. No one has ever told her to lay off the perfume. No one has told him about his smell. If he is aware, he doesn’t know how to fix it.

Few people have all of Andi’s smells or Martin’s sensitivity, but their conditions do exist in many forms and to varying degrees. It likely affects someone on your team. In a pair programming environment, these things hinder effectiveness. This isn’t just an unfortunate personal problem for Andy or Martin. It's part of your team; it’s now your problem. We who are leaders must address this issue. The benefits of pair programming are worth the effort.

Here are some tips you can share with your whole team:

  • Many smells are caused by genuine medical conditions that require a doctor’s or dentist’s attention. Make an appointment.

TOP

  • Use and share breath mints, but this should not be the 1st and only thing done for your breath. Sugarless gum can be effective since it stimulates saliva production more so than mints, and saliva combats bad breath. But remember that not everyone likes wintergreen and Juicy Fruit. Stick with cinnamon and mint.
  • Chewing on a sprig of mint works as does a simple drop of lemon juice.
  • Drink more water.
  • Don’t be embarrassed to brush your teeth at work. Be a trend setter. Also brush your tongue.
  • Flossing every day is mandatory for those on a pair programming team. Brushing your teeth is important, but the smell is coming from the rotting gunk that only floss will remove.
  • Many companies provide a mouth wash dispenser in the restrooms. If yours doesn’t, you could ask them to or provide your own. However, the ADA says that most mouth washes do not have a lasting effect and recommends the other solutions as more effective.

TO BOTTOM

  • Wear different shoes, ones that breathe better. Try shoes that you can slip off for a few minutes every hour to air out before the smell starts. But consider this carefully because removing your shoes could make matters worse.
  • Air out your shoes over a vent each night -- be creative. Rotate your shoes. Don't wear any one pair of shoes more than twice per week.
  • Change your socks during the day. Take a fresh pair with you each day or leave a few fresh pairs at work. But don’t leave the used ones lying around.
  • Buy new socks. Try wool socks. Throw away the nylon socks. Try a thicker pair of socks. Start wearing socks if you normally don't.
  • Stop wearing socks if you normally do. That is, try flip flops or sandals to avoid the whole sock/shoe airing out problem.
  • Use an odor absorbing insole.
  • Wash your feet with antibacterial soap every morning. Completely dry your feet after showering, particularly between your toes. Use a hair dryer. This has the added benefit of preventing athlete’s foot.
  • Use foot powder on your feet. Use foot powder in your shoes. For those who have never used it, it might not have occurred to you that you can sprinkle some powder in your shoe, shake it around, put your toes in the shoe, sprinkle powder on your toes, put your foot in the shoe, and wiggle it around before putting on your socks. That really gets a good coating on everything. But note that this could backfire. You could end up smelling too much like foot powder. You want just enough to tackle one odor without introducing another. Try different brands. The sprays weren’t effective for me.

AND IN BETWEEN

  • Wear deodorant, but preferably unscented.
  • Wear a clean t-shirt under your golf shirt every day. Under ideal conditions you may be able to wear a pair of pants a couple times between washings, but make sure you keep count.
  • Gas. Yeah. I’m just going to refer you to the National Institutes of Health.

Before you dismiss this as stuff everyone already knows, remember that we programmers are a peculiar lot. I’m not so proud to think that I don’t need to be reminded of these things.

ADDRESS IT

Set a good example. Let it be known that you are trying to turn over a new leaf. Get it out in the open.

Decide whether you can address this collectively. If there are many scent wearing individuals, consider an email to the organization asking everyone to refrain from wearing cologne and scented hand lotion. “Please keep smells as neutral as possible to help those with allergies.” It would help to switch to hypoallergenic hand soap in the wash room at the same time.

Otherwise, confront the issue with Andi one-on-one. Be direct and speak in a kind and helpful way. Most people are glad to know. The conversation may be uncomfortable for both of you, but just as he will thank you for pointing out food stuck in his teeth or something stuck to her dress, he will eventually appreciate your sincere desire to help.

Of course, the repugnance might not be a person at all, but an old chair or the carpet. I’ve seen a small leak in the restroom impact the offices on the other side of the wall. I’ve seen messy eaters leave spilt food on the carpet. Get down on your knees and smell. Wait until everyone is out of the office if you must; get someone from facilities to do it if you can. But if you are a leader in the organization, the environment is your responsibility.

SMELL YA LATER

Someone on your team has a keen sense of smell. Someone on your team smells. If you aren't the first person, think about it. You may be the second.