The most important factor to great software…

… is a great team.

teampuzzleI guess everybody knows this. After all: creating software is a craft and you need good people to do that. If you ever get the chance, I suggest you visit some companies that create software. Go to a company that makes something you like and go to a company that makes something you really do not like. Then pay attention to the atmosphere and the attitude of the developers. You’ll notice a pattern: great software comes from great teams.

Now, it is obvious that people who get to work on fantastic stuff are more enthusiastic about their work than people who do the same boring work every single day until they retire. But the opposite is quite true as well: if you have a bunch of passionate software developers the quality of the product will be better.

This is somewhat of a cliché. I guess almost everyone knows this. Still, a lot of companies do not seem to act upon this. Which results in buggy software, slipping deadlines and in the end loss of sales.

Putting the right team together is a tough job. You need to answer the following questions:

  • * What kind of expertise do I need
  • * How much of each expertise do I need
  • * How can I identify this in a candidate
  • * What kind of expertise will I need in the future
  • * How do I let the team members communicate

And this is just the questions that you need to answer in a green field situation, where you get to pick the team from the start. But what if you already have a team? Or a bunch of teams? How do I make sure they can work together in a great way that brings out the best in each and every one of them? That means you also have to answer the following questions:

  • * Can team member A work with team member B (and the number of connections here is exponential to the team size!)
  • * How to make sure people aren’t stuck to doing things they know
  • * What are the hidden social links between team members?

And so on… the list goes on and on. Of course, it’s the easiest to hire a new team from scratch and let them start together without any baggage, but in practice this hardly ever happens. You usually have a team or more than one team. People within those teams usually are set in their ways and will find it hard to change.

Change, of course, is one of the hardest things for people to handle. We don’t like it. We want to stick to what we know.wissel

  • We all know it’s necessary to change tracks every now and then. A change keeps us interested and motivated. We are triggered to learn new things and are invited to explore things we haven’t looked at before. But even though we know it’s necessary, most people still shy away from change. People are used to doing certain things and doing them in a certain way and they feel little or no reason to adapt to a changing environment. They even feel that way even though they know things aren’t going as smoothly as they can. I have encountered people who constantly complain about their work environment but when I offered them a chance to change it, they simply refused. I guess it’s a matter of “better they devil you know”.  They know what’s going on right now in their lives and they do not know what happens if they allow changes into their daily routines.

The biggest challenge a good team lead, or any manager in charge of a bunch of people, has is to make sure people are challenged to embrace change. To make sure the people in the organization feel safe enough to explore the possibilities.

In the coming months I will be exploring ways to do so and I will share my experiences on this topic. Trust me, it will be a fun ride…

Tags van Technorati: ,,