Business intelligence development often moves at a slow pace. For any given project, a developer will spend weeks and sometimes months with stakeholders to determine requirements. That means a lot of meetings, emails, and slack conversations, all of which are meant to move stakeholders towards a consensus on what they want.
That seems to be the opposite of what a developer should be doing. But there’s one part of the process that makes it all worth it – the part where they actually get to build the dang thing.
For me, there’s usually a routine to that. I block four to five hours off on my calendar, sit down with a cup of coffee, and zone out to Final Fantasy music as I write SQL, program R, or build a Tableau dashboard to fulfill the requirements.
And I feel great while doing it. I become completely immersed in what I'm doing and thoughts about deadlines, relationships, or the future completely vanish for those four hours.
Psychologists call this state of mind flow.
What Is Flow and How Can BI Developers Experience It?
Flow is where you get to put all your focus and energy into a single task. That task could be running, wood working, painting, or programming.
According to Stephen P. Robbin's book, The Truth About Managing People, flow actually improves a person's happiness and people are most likely to experience flow when they're at work.
The concept of flow was developed by a psychologist named Mihaly Csikszentmihalyi. (Don't worry. I can’t pronounce his name either). He found three things caused flow in the workplace:
Balance between opportunity and capacity
So how do you get clear goals? Simple! You gather thorough requirements. Requirements clearly defines the outcome of a project and ensures realistic expectations for a developer's skill level. Requirements also catches ahead of time any surprises or issues that would derail development. That means the developer is less likely to have to stop development to get additional clarification or to build work-a-rounds.
The balance between opportunity and capacity relates to the skill level. Does the developer feel sufficiently challenged? Do they reach a happy medium between being under or overwhelmed? For example, most Tableau developers wouldn't find a dashboard with a single graph or two challenging. But a dashboard with several LODs and set actions would be more likely to put them in a flow state.
Immediate feedback means receiving quicker responses to the work you produce. So this could be that you built a calculation and can quickly verify whether it worked or not. Then you can make corrections or improve it. Or it might also be that you are given praise or constructive criticism from your stakeholders, which prompts even more action.
What Can Managers Do to Improve Flow on Their Team?
Managers should encourage their employees to block time on their calendars when the project is ready for development. That way they have fewer interruptions from meetings and can enter a flow state.
Managers should also encourage their employees to find a distraction free environment. If they keep having walk-ups from colleagues, tell them to go work in a coffee shop, cafeteria, library, or remotely when it comes time to build a project. I’m not a fan of 100% remote work because so much of business intelligence needs that in-person communication to be effective. But for those days where you have a lot of work due and need to reduce distractions? Remote work is perfect!
Managers can also cancel unnecessary meetings. Managers tend to create a lot of meetings because it makes them feel like they’re accomplishing something. This can annoy employees because it often creates more distractions. It’s hard to get into the rhythm of work if you have three, thirty minute meetings spaced out over a three hour period. You basically have three hours of no work because the human brain cannot focus on anything with such short windows.
Another thing managers can do is recognize what collaboration is beneficial and what isn’t. Managers are used to relying on collaboration to accomplish their own key initiatives and they're used to doing this in meetings and one-on-one discussions. Because of this, they start to think their employees operate the same way.
But most experienced employees want a little space, especially when it comes to programming or dashboard development. That's where they're most likely to enter a flow state and interjecting your opinions midway can drive them insane. It probably won’t improve the quality of output either. But requirements gathering and quality checking are perfect places to collaborate. Those stages work best through meetings and in-person communication.
There is some responsibility though on the employees to create this environment for themselves. Telling a manager “I really need a heads down day to focus on this project” is something they should feel comfortable saying. Blocking time on their own calendar to prevent meeting creep is also their responsibility. Last, but not least, learning to say no to meetings or asking if they can be rescheduled is also an important skill to develop.