Wednesday, 24 March 2010
Today is Ada Lovelace Day. It is a day to highlight the accomplishments of women in technology. In particular, to shine a light on a woman who has influenced your life personally.
This post is being written on the day it is due because I had to think about it a lot. It certainly isn't hard to find someone to name and praise because I know so many fabulous females in computing. A shared post on five different geek girls crossed my mind but in the end, I knew it had to be about one person who truly deserved the dedication.
The last 12 months has been an amazing journey and like all good adventures, you encounter interesting characters along the way. Some stay around for a while and others are just meant to come in for a spell and help character development. This is one of those players.
Her name is Lindsay Ratcliffe.
There have been many amazing high-achieving women in my career who have taken me under their wing and taught me how to improve as a professional. Lindsay taught me to improve as a person and let all the benefits of that seep in to other parts of my life, including the professional side.
She did this by supporting everyone around her, in her working environment. It was not a motherly thing or done in a condescending way. She has a magic that makes you feel OK to be who you are. By showing respect and consideration to others, she empowers them.
At ThoughtWorks, there are many impressive alpha-females who you can't help but be affected by. The majority of the time, that was in a positive way. Unfortunately like most women in the workplace, they compete against each other. I see men compete a lot but also find ways to work together. I see women compete with men and also work well with them. I don't often see women at the top of their game work well with other women, a lot of the time. Things are changing but they are also staying the same.
When my star shone brightest in the last year, people flocked to my side to bask in the radiance. When it faded to a sputter, only the secure women stayed around. Lindsay simply brought her glow in to back me up. She was kind, inspiring, brilliant and wise when everything around me was falling apart.
She taught me to be kind to myself and not be my own worst critic, as perfectionists often are. She told me that you don't have to be invincible but just need to appear that way. She insisted I stop lying to myself and fix the issues I had in life. She dragged herself out when 8 months pregnant and made sure I survived the hardest days.
I won't use words like selfless and others that are used to describe women. Instead I like to think of her as solid, wise, at peace with herself, smart, charming and organised. She also lives up to what she says she believes.
Since meeting Lindsay, I have not wanted to be her. That was my normal reaction to people I respected and was in awe of. Instead, I want to be me but would love to make others feel the way she makes people feel. Make it ok for people to be who they are, at least around me. Respect everyone for their magic and talent. Celebrate and rejoice at how good life is and be at peace with myself.
I don't want to be her. I want to be just like Lindsay Ratcliffe, while completely being me.
Saturday, 20 March 2010
One in ten.
That's how many managers I have worked with who have made me better at my job just by working for them. There were three things about them that made me a better employee...
They are direct
If they wanted something from me then they asked me clearly and explained the reasons why. That could include doing things to gain brownie points with clients; for political reasons inside an organisation; for urgency; or for winning or losing a battle that needed to be won or lost.
Most developers are not political animals. In fact, trying to make us that works the other way. We don't have the same drives as the fox in the work place. Gaining power and status doesn't attract us to the work we do. Developers who like that usually end up as managers or start calling themselves Architects. No, software engineers chose to work in this profession because creating something from nothing is what we enjoy doing. Bringing order to chaos. Finding patterns in a mess of requirements. Deconstructing an unfathomable problem domain and rebuilding it in technology.
Don't get me wrong, we aren't stupid or disconnected from the games played in the workplace. Most of us would rather be but we are aware the these dynamics exist and that no matter how illogical it is, we are affected by them. We often see them as an necessary evil that must be dealt with to get stuff out of our way so that real stuff can be achieved.
With that in mind, when the political manoeuvrings draw us in we would rather you just tell us what you need us to do to make them go away. I have had many a management type ask me what it is ok to tell the team. My answer is almost always the same: tell them the truth.
Manipulation to get us to do what you want is only going to come across as condescending and kinda stupid (on the part of the manager). We are grown ups. Be straight up with why and how and unless it's illegal or completely immoral then you will find that we are on your side and do want to help make things happen.
They remove blockers
What I do well, is build things. In my world it involves talking to a framework on top of an operating system, running on hardware in a controlled little utopia that (in the best case) helps someone do their job better or be serviced at a higher level. People talk of efficiency and cost-benefit and rapid delivery and usability. That's a lot of blah blah blah to me most of the time. I want what I produce to make a positive difference in the world. When I walk off this client site, it should be in a better state than when I arrived. Be that for the workers internally or customers and external agents. Whoever uses the system should be benefiting from the man(a) hours I put in to it.
Those hours are the hours I bill the client that add up to the how much the project costs and how long it takes. I'm a cog in a complex system of other cogs including other software developers, managers, analysts, business people, users, testers, and dozens of others who care about getting the project out the door. What I need from a manager is to not know what all the other cogs are going through, except in summary. I need to work with a person who can hear me when I identify something that is slowing my progress and use whatever means they have to remove that blocker.
The best managers I have every worked with removed those blockers systematically and efficiently. They heard the pain points we were experiencing and took them seriously. They did not pacify with promises of actions but instead did all they could to get us moving again or at least explain what was holding us up. Information will set you free. Keeping information flowing in to a team and out of it, then on to whoever else needs it or can use it to keep us moving forward is the key to being a good manager or leader of a team.
People who pacify the team and cushion the message to the client are only prolonging the moment until the truth bites and the pain bubbles up to the surface. It's just like patting someone with a dislocated shoulder on the head and saying "I know it hurts. I'll get something for that right away" and then walking in to the next room and telling the doctor that all the screaming is just the person in the other room, having a pillow fight with a bunch of teenage girls. It doesn't help anyone do their job.
Solve the problem by removing the blocker and keeping the lines of communication open.
They are part of the team
This is the controversial one. The one that I have argued with many technical leads and managers about. They say that to lead, you can not be part of the group. That leading means living outside the organism that follows you on the leash. It means appearing infallible to those above and those below.
A very respected project manager at a recent company I worked at gave me feedback at the end of a project that summed up to this: You can not lead a team and be part of that team because no one will do what you say. She was on her way to becoming a big manager in that company. Management loved her because she was one of them. Of course, she wasn't one of us. One of the consultants that went out there and did the actual work. Nobody trusted her. We all liked her and said she was very organised and did her job well but we didn't want to follow her anywhere. She knew how to be a good project manager but she was never a leader.
A leader doesn't need the authority of another person to lead a group, they need the authority of the group. I did tell her this and she scoffed at it. Interestingly enough, within a month of getting a good promotion she was out drinking with the troops and doing all she could to become one of them. Why? Because bossing someone around only gets you so far. People have to know you understand them and have their best interests at heart or they won't follow you anywhere.
The big thing a manager needs is to be part of the team. Not necessarily mates who go out boozing it up together but someone who suffers their pain and celebrates their triumphs. Someone who knows what coffees they drink or that they don't drink coffee at all. Of course they have to be organised and structured and good with clients but people always forget how important it is to be good with your team as well.
In the end, most of this can be summarised by one important skill... communication.
Tell your team what you want in a clear and direct way with the real reasons behind the request. Listen to the team about what is causing them to slow down and remove those blockers or talk to someone else who can. Get to know your team and let them get to know you. You have to spend a lot of your time with these people so they might as well know why your least favourite alcohol is tequila or that the client drives you nuts too.