3 ms·
I have found that what is important for a software team is having members that can work well together. It takes time to make such a team and some people can ne
by mikekchar 9y ago
I have found that what is important for a software team is having members that can work well together. It takes time to make such a team and some people can never work well together. Organisations should spend considerable effort building and maintaining effective teams. I am often surprised at how poorly this is understood.
Technology also takes time to understand and be effective with. A good team can usually work on anything and still be a good team, given that they have enough time to ramp up, though.
My personal feeling: build strong teams. Ignore technology for the most part. Put all your effort into getting people who work well together, working together. Allocate time and money into making sure that the team has time to gel and that they have the resources (tools, equipment, and working environment) that they need (hint: each team requires different resources. Think hard about what each individual team needs).
After that you have choices. Keeping a team on a single "product" eliminates ramp up time. On the other hand, it also leads to singular ways of thinking and silos. If you have a "product" that absolutely needs responsive development all the time, then consider having a "product" team.
On the other hand, not everything requires instantaneous response. A good team will usually be able to ramp up to very near full speed in about 3-4 months. For some things, that is completely reasonable. You have to consider the cost of maintaining a "product team" vs the cost of ramping up a "project team". The advantage of the "project team" is that a new team can often come in with new ideas that will improve the project. Moving project teams around from time to time can ensure that teams are exposed to other ways of thinking and this can help your organisation. The advantages and disadvantages are not necessarily obvious.