Quite often I find software companies trying to figure out the Essential set of practices that can be rolled out to all the teams in the company. They also try to set these practices as a baseline against which all teams will be measured. Now, this might appear to be a perfectly logical way to manage software teams, but in reality, this does not work. In most cases, I’ve seen this cause more harm than good.
IMHO, practices are very context specific, some practices are needed in some context and at certain point in time on the project. Teams need to be agile about choose practices based on their needs. Its very scary for me to see teams using the same set of practices throughout the project and throughout the company. Its a serious concern when team don’t consider
- the people on the team,
- their social interactions with others inside/outside the team,
- constraints under which they are operating,
- stage of the product development,
- business and market conditions
It pushes the team towards mediocracy. Also looses the real potential of what the team and the product can achieve.
It boils down to “People and Interaction OVER Processes and Tools”.