I'm a young software developer that wants to create a solid team with my friends, does anyone know about how to create a solid team according to your experience?
You should keep in mind that "to create a team" is not a one-time action, it's a process. You should worry much more about how "to keep a team alive". There are two things you should be focused on: vision (already mentioned by Geo) and motivation of your team members. In other words: what you want and what they want. Once they are effectively aligned you are on track.
This blog post may help on the motivation problem: What Motivates Me as a Programmer
I've heard once that you shouldn't mix business with pleasure. In other words, if you want a solid team, you need to select the best people for the job. If you're limiting your search space to only your friends, then you're limiting yourself to local optima instead of global optima. This means that, unless your friends are the best of the best, then you're not going to necessarily have a solid team.
With that said, you can still have a
dedicated team of your friends. The plus side is they probably won't stab you in the back, and you will have rapport with them. There may be more unity in the team because of your friendship.
However, it's absolutely imperative that you have a contract. A contract is a beautiful way to resolve disputes. Contracts can instantly sooth the flames of a fire that could otherwise get immediately out of control and cause not only your team to dissolve but your friendship as well.
Finally, as Geo pointed out, having a vision and a goal is important as well. Good luck!
UPDATE: Here are some helpful articles on starting a business with friends that emphasize some of the points I was making as well as adding a few others:
- Business With Friends
- How To Do Business With Friends
- Starting a Business With a Friend
- Advantages and Disadvantages of Starting a Business With a Friend
I don't want to discourage you too much. These types of partnerships can work. But I also think many people jump into these types of partnerships without a full grasp of all of the challenges and pitfalls that can easily be avoided by making sure there is a plan in place and an avenue for resolving disputes.
If these things are taken care of, the business can be profitable and extensible. But without a plan, the chances of success aren't good. I worked with some contractors where 4 of them were friends. Halfway through, my client said she could only get in touch with one of them and work slowed to a crawl. Apparently, the 4 of them all got into a big fight and refused to work together anymore. The one guy remaining only knew a little PHP, so my client went through other avenues and dropped those guys.
Eko, have a vision. Everyone want to accomplish something, if you have a group of friends and you want to create a solid team, you need sell them the idea. Also, make sure you acknowledge their strengths and your weaknesses, by establishing clear roles for each member of the team.
With a vision (where you want to get) and roles (who should do what). Now the only thing left is the what, and you are set.
Being friends is a great start. To build a team, though, you need to have
- a shared vision
- a leader to keep things moving
- consistency in completing work and shipping product.
Without these things, you can quickly become a bunch of guys who talked about starting a rock-band in their garage, but never quite put it together to make an album : )
I don't think its a great idea to do this with friends for a start - it often ends up badly. Best to start a new team with people that fill the skill set you require with responsabilities and roles set out clearly from the off.
This will be no mean feat as you need to find such people that are willing to carry you (as you say you are a young software developer - suggesting not much experience). You might find it better to get more experience, especially using the contract market - move about a bit sector wise, make contacts and learn the ropes on the business side (after all as a private dev team you will need to pitch for contracts against other mature teams).
It is not an easy task - been there several times and each time ended up going alone in the end in each case. It's a lot to carry, dev work and the business side on top - add management to that and its crippling (and not overly financially beneficial either as a lone contractor can top a part dividend of a team anyway - and pay a lot less tax into the bargain).