Software teams

This is my first post from the board of an airplane but I believe there is a first for everything. Today I want to talk about software teams, how should they work in a productive manner, how to measure team success and a little bit about conflicts.

I have been working inside two software teams so far for the last 3 years or so, as well as working with tons of other teams.  I have seen good habits, bad habits, things that could’ve been improved, things that worked and things that didn’t.
Obviously a great software team needs a great leader, because with a good leadership you go nowhere. Please refer to this article that details a lit bit more on this subject. In order to know which direction a team is heading, you need a strong leader. In the odd case where one is missing, everyone can contribute to a vision, however there will be cases where an agreement can’t be reached easily, therefore it’s mandatory to have strong leader.

But hey, what is a strong leader without strong team members? A great team leader is not enough to make up for everything a team is. Not by a long shot. Everyone needs to contribute in their own ways: to do the actual work, build the actual products, services, apps etc. But the interactions between individual team members, including the team leader are complex and is enough to have small misalignments here and there and things can fall apart pretty quickly.

You need several ingredients to make a team successful: communication, intelligence (smart people), awareness of others, team players, and even chemistry.
I listed communication first although I do generally believe in elitism, meaning brain power. However no amount of brain power can solve problems if there is no communication between people, it can actually make things a lot worse. I have met people who have had interesting ideas but they were to afraid to share with anyone else and that was definitely a missed opportunity for everyone, not just for the individual.

Note! Do not confuse people who have interesting ideas with people who have random thoughts and they want to run them by others to gauge their reactions, to get feedback or just to be heard. Those kind of people are not that interesting from my perspective.
It’s also important that those people are in an environment they feel comfortable sharing, being appreciated, not having to justify themselves all the time, basically by being in a healthy environment.
Communication is also the key to other things, because after some time and knowing each other,  you don’t even have to say it because they already know what are you thinking and will act accordingly.

Now, you really need some bright people other team. The kind of people that are not afraid of new challenges, that are open to new approaches. This is not a requirement for a successful team but it is for me. I don’t really see the point in being a team where I’d be the only one to think about things and have no partner of discussion. I have been fortunate enough to always have smart people around me, to share my ideas, hear their ideas and although sometimes things got a little rough there wasn’t something we couldn’t work out, after all we are bright people. It also requires bright people to recognise what are the challenges that are worth solving, because after all we don’t want to reinvent the wheel and at the same time we need to provide real business value. There is also another side to this story. If you want to progress, you need smart people around to constantly challenge you, take you out of your comfort zone and show you brand new horizons, otherwise you can be stuck in some ancient ways and wake up one day to realise you’re obsolete.

With the globalisation, there is now a different perspective to teams. There are people coming from different cultures, with different religions and totally different values than yours. You need to be open minded, flexible and understanding and all of these. If you don’t you may read one gesture as offensive or that one person is not interested which may only be because he or she is shy. In that case you need to encourage them to speak up and help them overcome this trait.

In a software team you definitely need team players. You can’t have a bunch of individualists who are competing with each other to win some sorts of cookies. You need people who can help others grow, that can teach others what they know, that are willing to listen for feedback as well as work on it if necessary. Some people see me as a strong individualist but those who have known me better know exactly it’s not at all like that. Yes, I like to work on my own, but I also enjoy working with other people, especially if they are bright. I want to see how others are thinking, what kind of ideas do they have and so on, as long as those are making sense. I also like to share what I know with others, grow other people so that they may return the favour one day.
If you have in the team only individualists, the results for sure won’t be great, especially if they don’t communicate because they may end up doing different things, sometimes it may overlap and at the end you may have something that you don’t know if it’s going to work or not. Plus the morale will be really low.

Let’s talk about conflict. Conflict is everywhere unless you live in a bubble called utopia. But as long as people care for each other and have respect for each other’s time and energy there shouldn’t be anything unsolvable. I, myself was part of one quite recently and it took me a really long time to realise that actually I am not that angry on the person I had a conflict with. We all do mistakes and we need to find the power to forgive and we should step back and watch ourselves and see if this is really what we want. Unfortunately there will be people who will encourage such behaviours or even take advantage of these situations for their own personal gains.
Those people I pity because they have nothing left but to rely on such actions. Watch out for such people as they are nothing but destructive!

Chemistry is something that you have or you don’t have with people and there is nothing you can do about it. Obviously you can live and work without it quite easily but when you do have it, it’s just great. Things are moving so much faster, easier and frictionless. That’s because the mindset is very similar and you share the same goals.

In the end it’s up to everyone us to make a great team, even if we are “mere” contributors and we should take the time and put the effort in it because after all it’s not just a job. It’s at least eight hours a day of our daily lives and should be a joy not a pain. And ultimately if you can’t make it work, don’t waste your time, find something that brings you joy.

The ugly truth

The truth is always a risky business. Nobody likes an ugly truth but that’s mainly because they don’t know how to take criticism constructively. Most people like to surround themselves with people who tell them how great they are, how they’ve done a great job and be in a bubble of positivity. The problem is that in most cases, the bubble eventually bursts but it’s too late because the damage is already done. Life is difficult, not an unicorn bubble so I don’t quite understand why people want to create such bubble around themselves.
On one hand I understand why people are afraid to say the ugly truth. They are worried how their boss is going to react to it, will it affect their career, how their colleagues will perceive them, so instead they choose the easy way out, saying everything works great. Unfortunately reality has always a way of showing up and always but always wins.
It’s also a matter of taking responsibility. Obviously when you are presenting a situation that’s not the most favourable in the world and especially if you are the only one, people may frown upon you but they’ll realise sooner or later you were right to raise those concerns. If you are really unlucky this may even affect your career but at least you have stood up for yourself and for what you believed in and that’s going to help you sleep a lot easier and have no regrets later.

By not saying the ugly truth you are doing more damage than you imagine, you’re essentially doing this:

  • Not helping people taking better decisions
  • Not helping people grow
  • Not helping to steer the path in the right direction

It’s really unfortunate that most people do not provide the true feedback at the proper time. Over long periods of times this can lead to disasters, like in the case of Yahoo!, although an oversimplified example here.
It is one of my core beliefs that feedback should be provided and even if the situation is rough offer to help but never hide the garbage under the carpet because as I was saying above it has a way of coming back. The alternative is far, far worse on longer term, although shorter term may sound much better.

Saying the ugly truth is obviously not an easy feat otherwise everyone would be doing it. You need to find the proper time to convey it, use the proper language and also offer your expertise in order to make things better. I really believe in improvement and change by the Law of Process.
If you are in a situation where you’re not appreciated for this, do not despair, you did the right thing.
I believe it’s the responsibility of each and one of us to say the ugly truth, no matter the consequences.

I would never ever surround myself with people who do not have the courage to say the ugly truth. Stay #tru!

Making a mark

Making a mark is so important in our lives, be it in our personal lives, in our circle of friends, at school, at the workplace or if you’re thinking big, the entire human race. We all want to be appreciated for who we truly are, but inside we are afraid, that who we are might not be liked by others so we choose to wear likeable masks.

There are people who know exactly what they want to achieve in life from a relatively young age but most of us are struggling with that all their life. Sometimes parents are pushing kids in a certain direction but they end up being unhappy, sad and really not being present in their lives. When it comes to career choices that’s even more depressing. I have seen many examples where people spend years were spent in education systems but without really being present because they never enjoy what they learn and they end up doing a job they don’t really like. And the worst part of we spend at least 8 hours/day, 5 days a week doing it. So why are we doing it? Sometimes it’s because complacency, comfort or because we lack a better alternative or do we?

I think everyone is born with potential, but the key is in practice. Do you think being a virtuoso pianist is an easy feat? No, it’s thousands upon thousands of work behind it. How much time have you ever spent working on something? Is it hard? Yes, of course it is, nothing that’s worth doing is easy. Can you do it? Absolutely.
It is really important to keep trying. I know some of you feel, that if you failed once, or twice or even thrice, your world is going to end. I can assure you that’s not the case and in fact the worst that you can do is, to stop trying. You have an idea, a dream, fight until you make it happen or die trying! If you already figured out what is that you are good at, what is your dream all you have to do is to pursue it and make your mark. And yes it will be hard and at times it will require sacrifices.

You may ask yourself how do you figure out what is your purpose? I don’t really think there is a recipe for that. If you are one of the lucky ones that discovered from a young age what you want to do then congratulations, you have a head start. But if you are not then you have to try things out and seek out advice and feedback.
I believe everyone has strengths and weaknesses, some are great communicators, some are great at dealing with people, some are great thinkers, some have a great eye for design. Always focus on your strengths and improve on your weaknesses. Once you figured out what works for you stick with it and start making an impression.

I believe that living without regrets is the best way you can do it. You don’t want to wake up one day asking yourself the question “What if…?” Remember you’re only going to be happy if you are doing what you like and what feels right for you.

Stay true to yourself and be #amazing!

 

Leadership or the lack thereof

Leadership is a skill. It is not something that can be granted, appointed or awarded by others. It is not something that is tied to a position or a role and as any other skill it can be mastered in time. What is truly worrisome is that most people confuse authority with leadership. They couldn’t be more wrong.

Leadership is a really important skill but not everyone can master it. It’s important because it acts as a multiplier since it affects people around not just a single individual (self) compared to many other skills which are self oriented. The opposite applies as well: when people with no or low leadership skills are in position of power, the potential of the whole organisation is severely diminished.
Some people are natural born leaders which makes the transition much easier through the life but it can also be learned and trained. Unfortunately many people don’t realise this and are moving or are being moved into roles that do not suit them at all and make more damage than help.
Speaking of tech, in my opinion a software engineer can be remain just a software engineer throughout his or hers life, as exceptional as they might be. They don’t necessarily have to move up either because they lack this one crucial skill or by simply the fact they may not wish to.

Leaders are easy to spot. Below are a couple of signs that might help you to recognize them but don’t confuse them with authority:

  • When they talk, people listen.
  • Their advice is always sought after.
  • They have influence but not through a mandate.
  • They have a vision for their life, the project and their environment.
  • People around respect them.
  • They have great intuition that helps guiding them, reading other people and anticipate trends and problems.
  • They naturally draw other people into their position.
  • They help other people to grow.
  • They recognize and appreciate the importance of autonomy and freedom.

If you recognize yourself in the signs above then you are leader and keep working on it. It will only get better and your effectiveness and success will only be higher. If you don’t recognize yourself in the above signs but you want to be one, there is no need to panic as it can be learned. You should, however, panic if you are in a leadership position already.

Great leaders never surround themselves with people less able than them.  This may seem counterintuitive but it’s not as there is no direct correlation between leadership skills and coding skills let’s say. One can be a great leader without software engineering skills, those are usual high level leaders. Usually it’s a mix between leadership skills and software engineering skills. On rare occasions you can spot great software engineering skills as well as leadership skills and that’s what you call a rockstar. Unfortunately those people might get lost if the organisation they find themselves in, have weak leader.

You may now ask yourself: “How do I learn to be a leader?” That’s a topic for a future post!

Politics in technology

Politics: The activities associated with the governance of a country or area, especially the debate between parties having power.

This is not an article on software development as you might expect but rather touches on some of the subtleties that are affecting from as high as technology choices to as low as implementation details. Politics is not something that is particular to one individual or to an individual company, it can be found from the smallest startup to the biggest corporation. The difference is scale: while startups don’t really have the time to think about politics and they are pretty much limited to personal preferences, corporations, due to their rigid structure, have loads of it. There are companies that are better or worse at this or even within the same company, there are departments doing a better job at fighting it than others.

Why is it important?

Because it influences in a decisive way the way teams work as well as how the technology is supposed to work. Architecture can be switched or twisted in order to serve the interests of a person or another. I am not saying that we are not all subjective and we don’t have our own preferences, but politics are the extreme.
More often than not, it’s because of power, be it in the form of a promotion, influence, importance within organisation or just plain ego, proving the other people wrong.
I have been always a promoter of using the right tool for solving the right problem and try to understand everyone’s arguments for a particular solution however politics severely interferers with this reasoning. When people play politics their arguments are not “reasonable” but rather “I say so” or “I decided so”. Those, in a technology world, are not acceptable arguments as they do not have any logical sense and most of the time decisions like this are going to backfire and when they do the same people would neither acknowledge this nor take responsibility.
Another important example where politics are playing a huge role is when multiple teams are working together on a project. Some of the technologists would choose to, either omit critical details to reach to a good solution, or choose a solution that would hurt the other party just so that neither would be getting the glory.

Why people are playing politics in technology?

Personal reasons, most of the time. It’s either because they want themselves to get better but not by being better but rather but making everyone else look bad, or because they don’t like someone in particular or because they do like someone, or because they want to be liked by everyone. It can also be done out of fear, misunderstanding as well as stupidity.

What can you do in such situations?

It really depends from situation to situation: if it’s directed against you, is it the interest of someone in a particular project, is it at organisation level and so on.
Most of the time you’d have to join them, expand your influence and get in the game but always stay true to yourself. Always remind why are you doing it, it’s because of your personal interest, is because you believe in certain values and technology and progress shouldn’t be stopped because someone “said so”.
If you see it’s not working or the people you are working with don’t see reason, leave! It is not worth while wasting your time with people that value politics more than technology.

DISCLAIMER: I am pretty sure politics are everywhere and probably are part of the normal software developments process, but the situations I am referring to in the post above are not normal.

Simple Share Buttons