To know your customer you might look at the skills, tools and environments they use. You study the use cases too. That’s good. That is still quite superfiscal. Right or wrong I’m kind of obsessed with the concepts of flow state, autotelic and the psychology of development, creativity and productivity. At this point we are talking about psychology and neuroscience. Latter is easier to measure and define. Psychology is harder since it’s kind of fuzzy mostly due to complexity of human mind.
Get a grip of the concept
Developer Flow is not something you think or act on actively everyday. It’s a concept you have to understand thoroughly to be able to create optimal Developer eXperience for your product. Thus your DX team must learn it and keep it in mind in daily activities. The flow is connected to your customer paths and that is second reason to understand it. You should not try to get developers to adapt to your paths. Instead you try to adapt to their workflow as seamlessly as possible. Developer eXperience is about the process, not the result. This is also why I have a spot for it in my 360 DX model. Social sciences includes psychology in my mind.
At Platform of Trust we have included the flow state support as one of the corner stones of Developer eXperience Strategy. It’s the first one in the list. Actually top 3 items on the list are directly developer oriented. Here’s a picture from our office and I see that paper of principles every time I enter my desk.
Mihaly Csikszentmihalyi (Me-high Cheek-sent-me-high), the researcher who coined the term ‘flow’ discovered that people who experience flow tend to describe it similarly. There’s a feeling of timelessness. The task seems easy and things just “come together”.
It’s not a big surprise that one developer compared the flow to source code management stage.
Definition directly from Cziksentmihalyi’s book, ‘Flow: The psychology of optimal experience’ (2008).
A state in which people are so involved in an activity that nothing else seems to matter; the experience is so enjoyable that people will continue to do it even at great cost, for the sheer sake of doing it.
Csikszentmihalyi has written three books about flow.
Finding Flow: The psychology of engagement in everyday life (1998). Most of us have goals and aspirations we want to fulfill. This book is a guide to recognizing and understanding how we can do that by increasing our experiences of flow. By becoming completely engaged, even in the seemingly mundane, we can increase our happiness.
Flow and the foundations of Positive Psychology (2014). This is the beginning. If you really want to be “in the know” about flow theory this is the book for you. It’s geared toward academics. Topics include the Experience Sampling Model, attention, happiness, play and intrinsic rewards, motivation and creativity, flow, and positive psychology.
Flow: The Psychology of Optimal Experience (2008). This is your primer on the state of flow. Every researcher, journalist, and blogger interested in flow starts here. You’ll learn in greater detail everything covered in this post. This is an easier read than the previous one so if you’re looking for a quicker way to get to know this subject, begin here.
Characteristics of flow
Csikszentmihalyi describes eight characteristics of flow:
- Complete concentration on the task;
- Clarity of goals and reward in mind and immediate feedback;
- Transformation of time (speeding up/slowing down);
- The experience is intrinsically rewarding;
- Effortlessness and ease;
- There is a balance between challenge and skills;
- Actions and awareness are merged, losing self-conscious rumination;
- There is a feeling of control over the task.
In the flow developer moves beyond self-conscious state and that is one step towards experience of dreaming. In self-conscious state we use mental energy in status management and worry about our performance and how we are being perceived which takes away more of our cognitive resources from the task at hand. We worry about rules, expectations, competition and spend a lot of time in a sense of uncertainty about one another. We need to become independent of our social environment and do away with our need for external validation and tendency towards social comparisons. In flow we also activate the parasympathetic nervous system which is active when we sleep.
Fun fact is that according to The State of Developer Ecosystem 2019 significant amount of developers code also while sleeping
Chemistry and phases of flow
One does not simply jump into flow. It’s a process. Neuroscience has discovered what happens in our system (brains mostly) in different steps of the flow. But we can’t be in the state of flow all the time. The cycle of this optimal human experience has four phases that initially require that we step out of our comfort zone and challenge our sense of self.
- Struggle Phase (Beta brain waves, Cortisol, Norepinephrine) does not feel good as we experience tension, frustration and even stress and anxiety but it is an integral element of the flow cycle.
- Release Phase (Alpha brain waves) is when we accept the challenge by stepping away from the problem and activating the parasympathetic nervous system.
- Flow Phase (Theta and Gamma brain waves, Dopamine, Endorphins, Anandamide) comes after release and shifts us from conscious to subconscious processing discussed above.
- Recovery Phase (Delta brain waves, Serotonin, Oxytocin) is the final stage when our **brain rewires and stores the experience of flow. It is crucial to re-build and re-balance effectively if we are to retain the newly acquired skills and knowledge during this memory consolidation phase.
“Studies have shown that each time a flow state is disrupted it takes fifteen minutes to get back into flow, if you can get back at all.” (Kotler, 2014) I find that 15 minutes quite optimistic and context depending, but perhaps statistically that might be true.
Note also that disruption steels the fourth phase of flow from the developer. You might get the result built so far, but the things learned are somewhat lost. By interrupting the developer you are hindering learning as well. Loss of the feeling of being superhuman while in the flow is the reason why the developer is often really annoyed if interrupted. Who wouldn’t be? One second you are the king of hill and next second you are sitting in the same office dealing with boring or even not relevant questions pouring from the manager’s mouth.
Create rewarding dopamine factory
Dopamine is an important chemical messenger in the brain that has many functions. It’s involved in reward, motivation, memory, attention and even regulating body movements. When dopamine is released in large amounts, it creates feelings of pleasure and reward, which motivates you to repeat a specific behavior. Since dopamine contributes to feelings of pleasures and satisfaction as part of the reward system, the neurotransmitter also plays a part in addiction. Getting addicted to flow state probably isn’t a bad outcome.
Flow involves also production of endorphines - a morphine-like substance originating from within the body. Production of endorphines can also be triggered by various human activities. Vigorous aerobic exercise can stimulate the release of endorphin which contributes to a phenomenon known as a “runner’s high”, which is close to “flow” state with developers.
Since getting into flow “feels” good and you get results, it’s no wonder that developers hunt the flow state so often and eagerly.
Apply to APIs
Lets just briefly apply the above to APIs. Lets take the phases of flow and bring some touchpoints from reality to it.
At this point developer is not feeling good. There’s tension, frustration and even stress and anxiety. They fight the problem. At this point developer might be exploring the opportunities to solve the problem. Getting started is still lost and not available. You want to help the developer to cross this phase as fast as possible.
This is when you’re working hard, pushing to train, research, brainstorm – when you’re overloading the brain with information until it feels like your head is about to explode. Most people never push past this first stage far enough, why is why they constantly miss the doorway to the flow experience. I use the same process myself in academic writing and also in writing the 100 Days DX series. My mind is filled with information (I read 6-10 articles and books about some topic in parallel).
Offer easy to absorp solutions and directions to proceed. Make sure relevant material is found easily and you offer food for thought for example in form of code examples, live testing and guides as well as solution examples (sample app).
The developer might be overloading the brains during weekend. You don’t know when that happens. Thus it is fundamentally important to offer self-service tools and all material including API docs without your staff in the middle.
Developer accepts the challenge by stepping away from the problem and activating the parasympathetic nervous system. Developer kind of “let it go”. They no longer “hold the stick” too hard. Go for a walk or do something physical. This isn’t the same as watching TV or some other distraction that keeps the brain busy. It’s about relaxing the brain so the conscious mind lets the subconscious mind take over. To me going to sauna and sitting on the peer in the summer time is optimal for this. Often sleeping one night in between works for me. While dreaming I’m letting my conscious mind go. This is the moment developer might just wake up and “see the code”. At this point the developer makes the magical leap to flow.
Developer shifts from conscious to subconscious processing discussed above. You might have experienced this even though you are not a developer. I don’t have schedules for things to solve which gives me more flexibility in innovation. Developers are often working under schedules and they can’t use exactly the same approach.
This is the superman experience when inspiration takes over and where your preparation and relaxing express themselves almost magically. You come up with the best ideas, you achieve results almost effortlessly, and you often surprise yourself by your own performance. You go from your conscious mind where processing information is very slow and energy is draining, to your Subconscious mind where processing of information is very fast and very energy efficient.
If at this point your API becomes unawailable, the API documentation gives wrong advices you are close to become the destroyer of flow state. You try to adapt to their workflow as seamlessly as possible by providing right kind of API endpoints, libraries with “perfect” functions which feel familiar to the developer. If all goes well, the developer just uses the tools and APIs without friction. This is hardly ever the reality though.
Brain rewires and stores the experience of flow. After the dramatic high of performance enhancing ‘feel good’ neurochemicals then comes an equally dramatic low. You will get the emotion drop as you are not feeling superhuman as you felt just a while ago.
It is crucial to re-build and re-balance effectively if we are to retain the newly acquired skills and knowledge during this memory consolidation phase.
As you can see, understanding the workflows and ways of working is crucial for you as API provider. Don’t just think about the product, but focus on the customer.
Some more to read from 100 Days DX
- #100 - The biggest open resource on Developer eXperience so far
- #99 - Hackers - the top 1% of engineers
- #98 - Invalid Open API spec files ruins the developer experience
- #97 - Lightweight API evaluation framework
- #96 - Embracing open source community driven tools development
- #95 - Exploring the multilevel nature of API Design Guides
While you are here...
Check out Platform of Trust in which I've worked to enable best possible developer experience!