In my last two posts I laid out a case for empowering software teams to succeed by leveraging their humanity. The point is, by connecting and relating to one another in a personal way, teams can accomplish much more than disconnected, uncaring teams.
So how do we get from here to there? Here are a few practices I’ve observed that have a dramatic impact on a team’s success:
• Daily, in-person accessibility between the development team and the business. Agile practitioners call this “co-location”, and the business person or persons, “product owners”. Some of the major impediments I have seen project teams struggle with could have been mitigated by having a business user on hand to answer simple questions. This challenge can manifest itself in many ways. If a team has an unclear understanding of a requirement, a co-located product owner could clarify the question in a hurry. If a developer comes up with a unique way of solving a problem that would be valuable to the client but would change the requirements, a product owner could weigh the risks and benefits and make a decision. If developers go down the wrong track in building a feature, a product owner can set them straight before too much time has elapsed.
• Co-located testers and infrastructure teams as well. Everyone involved with a project can benefit by being present with the other members of a team. Testers get the benefit of a better understanding of the product by interacting with the business people, and they can communicate their bugs and questions in a clear, personal manner.
• A regular session where the team reflects on its performance and discusses opportunities to improve. On one agile team I was a part of recently, we called these “retrospectives” and these informal meetings helped to identify best practices and pitfalls to be aware of. We learned about sections of the application that others were working on, and we developed a personal connection with one another and with the product we were building.
Developing a complex software application is difficult enough without all the communication hassles clients seem to be so intent at throwing at development teams. Having clear communication and a team with a shared vision and culture provides the team with many of the tolls it needs to realize its full potential and build amazing products for its clients. For more insight into how to build software with a human touch, read the Agile Manifesto.