Øredev 2015 Continued - Understanding and Supporting Neuro-Diversity
The ending keynote of Day 1 Øredev 2015 was a talk by Sallyann Freudenberg on Understanding and Supporting Neuro-Diversity in Software Development. How do programmers and software developers think the way they do? What are the mechanisms that allow our brains to manipulate such an intangible and complex domain?Sallyann went through a number of different aspects of this, but here are some that stood out to me:
Big picture thinking. How are processes and data organized in a 3-dimensional space? Some brains are able to better visualize this mentally - visual spatial thinkers - described by one person as “a great, bristling, multi-colored scaffolding of pipework and gadgets floating in space.” Some see it as a landscape with some pieces in view, some blurry in the distance, but still having an overall idea of how the pieces fit together. It takes a special type of mind to look at an extremely complex, almost daunting wall of code, and only see the important parts, instantly ignoring the pieces that don’t matter.
Hierarchical decomposition and opportunistic leaps:
This is a process that programmers go through every day - and I think this is an awesome way of describing it. Basically, for most of the day, you’re sitting there decomposing the code, taking it apart in your mind and putting it back together again - and every once in awhile, you see a jump to take! Oh, hey! I can go look over here at this other file, or other function, and I think that might fix it! All while keeping a three-dimensional picture of the entirety of the program in your mind. It’s a process of spending time troubleshooting certain sections, and jumping around when the opportunity arises, or when you have an epiphany.
A lot of the time you’ll see programmers sitting there looking like they are almost doing nothing - but that is the time when they are most likely doing this hierarchical decomposition in their head. This is where the problem solving really happens. It’s also a matter of stepping away sometimes - clearing your head. This can be by taking a walk, petting a dog, throwing a football - whatever takes your mind off the project temporarily. Most of the time it's when you are doing something else, when your brain isn’t focused intensely on the problem you’re trying to solve, that you actually end up having an epiphany and solving it.
Wallis (1926) described this same process (obviously not specifically for programming), and broke it down into these categories:
- Preparation - getting your mind ready to attack the problem
- Incubation - really sitting down and trying to think through the problem
- Illumination - stepping away to take your mind off, and (hopefully) having the epiphany you need
- Verification - testing to make sure the solution actually works
Another huge portion of the talk was explaining how there is an undeniable correlation (with plenty of evidence) between high-functioning autism and software development. The autistic mind works in a special way that allows for the creative, out-of-the-box kind of thinking that is necessary for programmers and other creatives. In a nutshell, Sallyann explained how, as professionals, we can better support neuro-diversity in software development by allowing for different people’s needs - part of it could be by having quiet spaces to work, having dogs around to pet, etc. Not specifically just for people on the autism spectrum, but just in general - different people have different needs as far as a work environment. One size does not fit all. I won’t expand too much on that here as this post is already getting too long, but here are some sources for that idea:
- Autism occurs more often in families of physicists, engineers and mathematicians - Baron-Cohen et al (1998)
- Mothers of autistic kids are more likely to work in highly technical occupations - Wyndham et al (2009)
- Significantly more autism in children in IT rich regions - Roelsema et al (2011)
- ASD students more likely to choose STEM subjects - Wei et al (2003)
Some main takeaways:
Things that limit creative thinking: threat, stress, time, existing neural networks, our decision-making framework. Things that help us go: laughter, novelty, dissonance, play, imaging the future.
Innovation is social. To generate breakthrough ideas, interrupt our existing patterns. Create new patterns incorporating creative thinking. Collaborate to shape and share ideas.
Don’t assume that continually busy, open plan workspaces are the best option for everybody, all the time. There has to be alternatives, mainly quiet spaces for people to work.
Follow more of my journey at Øredev 2015 on Twitter @skonatweet!
- Sallyann Freudenberg’s presentation at Øredev 2015
- Cara Turner’s Presentations - 2014