Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Neuro-diversity in the Work Place

Neuro-diversity in the Work Place

This item in japanese

Dr. Sallyann Freudenberg talked about neuro-diversity in the work place at QCon London. Programming is a complex creative task, and Freudenberg explored a number of the techniques that programmers in general use to help them achieve it. Examples include:

1. Chunking which lets us cheat the 7 (+/-2) rule which says that we can hold between 5 and 9 items in our short term memory. "Instead of putting a thing in each of the slots it's like we're putting a pointer in each of the slots," Freudenberg remarked. For example, there has been quite a lot of work done with chess including a study by Chase and Simon, which has shown that an expert chess player will store a reference like "The Siberian trap" in each short term memory slot and know what that means.

"The reason that we know for sure that this is what happens, is that if you get a chess board, and all the pieces that you would usually play chess with but you put them completely randomly on the board so that it doesn’t resemble something that would happen in the real world, then experts and novices can only remember the same number of pieces."

Programmers use similar tricks with, for example, a sorting algorithm.

2. Beacons. Brookes in 1983 did some research around beacons in software engineering, and found that when you have a piece of code with an aesthetic quality - the variables are amazingly named, everything is elegant and well thought through - what the system does shines out of the screen.

3. Schema: Françoise Détienne looked at this in her book "Software Design - Cognitive Aspects" and suggested that a programmer uses a set of data structures that represents a generic concept stored in memory. So for example (from the book):

Code without highlighting

As a programmer you see it like this:
Code with highlighting

4. Hierarchical Decomposition: Essentially means that you start working on a problem in a hierarchical manner, and then jump over in a more opportunist manner. In other words it's a blend of two approaches.

5. Tacit Knowledge: "I think of this as compiled knowledge we've lost the source code for," Freudenberg remarked. This is knowledge we've built up through experience, and it's notoriously hard to pass on.

6. Mental Imaginary: Marian Petre and Alan Blackwell have done some work looking at Mental Imagery in Program Design and Visual Programming. They would ask designers to work on a problem and describe what they were doing, prompting them when they went quiet. Engineers would say thing like "It's like describing all the dimensions of a problem in 2D, and in the third dimension you're putting closeness to a solution." Another described some sort of dynamic mental simulation, a "machine in the mind". One expert described it as a "great, bristling, multi-coloured scaffolding of pipework and gadgets floating in space".  Many on the autstic specturm, including  Dr. Temple Grandin, are strongly visual thinkers.

Wallis, back in 1926, came up with four things that are involved in the creative process. Preparation, incubation, illumination and verification. Things that inhibit creative thinking include stress, threat, time pressures, as well as more intractable problems like our existing neural networks. Things that can help include novelty, dissonance, laughter and play (the subject of another QCon presentation, by Portia Tang).

From here, Freudenberg moved on to talk more about autism, a subject in which she has become increasingly interested following her son's diagnosis with the condition a year ago. After showing a clip of Dr. Grandin speaking at Google where she remarks, "If you could eliminate the autism trait completely you wouldn't have any new employees," Freudenberg cited a number of studies that suggest a strong correlation between programming and other STEM disciplines and autism spectrum disorders:

  1. "Autism occurs more often in families of physicists, engineers, and mathematicians." Baron-Cohen et al in Autism, 1998, p.296-301
  2. "Autism spectrum disorders in relation to parental occupation in technical fields." Windham et al - Official Journal for the International Society for Autism Research, 2009 Aug;2(4), p.183-91
  3. Roelfsema et al (2001) found significantly more autism in children in IT rich regions

The autistic brain tends to be very specialised. Autistic people tend to be really intensely interested in their specialist subject with an almost encyclopedic knowledge of it and are often "photographic" thinkers (i.e. with Eidetic memory). However they face significant challenges, the most common being language and communication, social and emotional problems (so for example struggling with the unstructured part of the day, with collaboration, or with eye contact), and flexibility of thought, so perhaps difficulty with changes in routine, or with literal thinking.

There are some simple things that can help make an environement more autism-friendly:

  • Talking token: Something that makes it really clear when it is each person's turn to talk - for example a small juggling ball or similar that gets thrown around the group. When you have the token it is your turn to talk.
  • Regular stand-up meetings: Same time, same place, structured with the same 3 questions every day.
  • Personas, ie having a specific imaginary customer in mind, can be a useful technique to help developers understand that they are not developing the software for themselves.

Sensory Processing Disorder often comes along with autism or ADHD, but may not do, and equally sensory processing problems can exist in isolation. Freudenberg described it as an "imbalance to the sensitivity to the environment you are in". You may be over or under sensitive to any of the senses - hearing, smell, taste, sight, touch, proprioceptive system (awareness of where your body is in space), and vestibular system (balance via your inner ear).

"We all are diverse in how sensitive we are to these different senses, and in my view we would do well to create workspaces that allow that diversity," said Freudenberg.

So to give you an example, my son was taken to the headmaster's office; not because he'd been naughty but for an assessment. He couldn't work because the clock had a red second hand that was "screaming at him" the whole time. Other people like a buzz: I can't work without music or some noise going on. Open plan spaces are great for collaboration, but we can't assume that providing only a space like this is going to suit everyone in our workplace. We need to provide options for people. We need to provide quiet spaces that people can take themselves off to when they need to. We need to offer alternatives. We need to provide a safe and forgiving environment for people without singling individuals out…. I quite like tea-driven development for this (an idea from Ivan Moore). Make a cup of tea, away from the problem space, and think about the problem. Then drink the tea and talk about the problem, then pair-program together to fix the problem.

I also think we would do well to provide people with a way of dealing with their sensory problems, or whatever it is, in a way that can be considered very normal. For example, it would be great if we would realise that it is much easier for someone to say, "I'm just going to make a cup of tea," than it is for them to say "I just need to move around a bit to re-establish my body's position in space". Or it is much easier for someone to stroke the office dog then to say, "I'm under-sensitive to touch, and I need to re-establish my system of touch so that I can continue typing".

Freudenberg's presentation is currently available to attendees in early access. It will be published on InfoQ in due course. The slides are available now.

Rate this Article