In one of the places I worked, as a programmer, we used to have a lot of meetings. We used Agile and worked in sprints, which meant we had to see the whole team at least once a week (some meetings were for deciding the points allocated to each task, while others to discuss requirements). The requirements meetings were the funniest, and, to be honest, the most tiring.
You don’t know how people minds really work until you show them a workflow, and ask them what it represents. I guarantee, you will be baffled. We all were, almost each and every time. The product manager understood one thing, the UI engineer a completely different one and the backend programmer something completely unrelated to the first two. Just understanding what we’re talking about was a nightmare.
The scrum master (the guy overseeing this entire Agile project) had to keep everything in balance, so his job consisted basically in talking endlessly to people. At the end of some really long days of just talking, I remember him saying, with the shadow of a smile and with a very tired look: “I’m done with people, I’m going back to coding”.
As empathetic as I was with my scrum master, I had to disagree on a very important point. People are people, and coding is coding. We all love, especially if we’re geeks, the predictability and the clarity of code. Compared with that, the chaos of human behavior is simply unbearable.
And yet, we really have to deal with it, and we have to deal with it differently. Here’s what worked for me – keep in mind I’m still biased towards coding, though.
Sometimes we just have to put up with the uncertain reactions of people and act accordingly. They’re simply not as predictable as coding, that’s their nature. They have emotions and not all people are able to understand or manage those emotions. So, it’s a safer bet to just expect the unexpected. To accept this randomness as part of the package and try to deal with it as gently as possible.
That doesn’t mean we should remain in toxic situations forever. If parts of our life are seriously undermined by the unpredictability of some people, we can simply increase the distance. Or, following a WhatsApp tip, we can just “mute” them for a while. Or for longer, if that’s the case.
Bug Fixing Doesn’t Work On Humans, But Talking Sometimes Does
People don’t have “bugs”, like in code, hence, they can’t be “fixed”. They have emotions and, most likely, acquired toxic behaviors. Alas, there isn’t some magic breakpoint you can use, run some tests, inspect some variables and, boom, find the cause and fix the human. Disclaimer: if you’re a psychologist and your job is to fix humans, that’s exactly what you do, on a daily basis, but I’m not talking about you here, I’m talking about the remaining 99.99% of the population, folks who just don’t know this shit.
So, if you’re just a regular guy, you can’t fix people. But you can talk to them. Talking to people, from a space of openness and vulnerability, sometimes does wonders. It’s hard, though, for us, geeks, to talk to people.
Context Changes Everything
As a coder, if you write a feature and a test for that feature, you expect the test to work ok ad infinitum (provided you don’t change anything in that feature). Well, humans behave differently. They may have acquired a certain feature, but if you want to test that feature, it won’t work the same ad infinitum. It will change based on their current emotional state, what they had for lunch, the amount of caffein in their latte, their horoscope, what their mother told them when they were 3 and a gazillion of other variables.
So, try to work more on the context, and less on the human. Try to build some predictability around the context, to understand what stimuli trigger what response and maintain that part more or less stable. You’d be surprised how the human will react. Not entirely predictable, but way more manageable.
Caution should be taken here (using the paragraph above, the one about talking) so you will not end up manipulating the human, like forcing him to do something against his will. Just try to be transparent. If it doesn’t work, well, at least you tried. Better luck next time.
In all honesty, this post about how to manage people, from a geek perspective, was a bit tiring for me. So, I will leave you re-reading it, while I’m going back to, you guessed, coding.