Effective Product (Software) TeamsAdded to Process
I had the pleasure to interview Eduardo Ferro from Madrid-Spain
Eduardo is a software crafter with more than 20 years of experience helping organizations of different sizes to build good quality software products. Eduardo has worked in different startups and these days he is working as Platform Engineering Manager for Clarity AI.
Eduardo started the interview differentiating between a group of people versus a product team that is a cohesive unit aligned to the business’s goals. He also made another important clarification about projects versus products, whereas the second corresponds to something more organic that keeps evolving as the product enters the market, thrives, and eventually is discontinued.
Eduardo mentioned that Agile in general — and Software Craftsmanship in particular — puts more emphasis in product quality and this helps in all stages of product development. Product teams, he said, should have a passion for quality and decision-making power to enable them to deliver the right product, to the right market, and with outstanding quality.
Proxy Product Owners, according to Eduardo, should lead the product development effort but everybody in the product team should be really immersed in understanding the problem that the product is trying to solve. When saying everybody, Eduardo is implying that developers should be able to talk to the business by themselves without middlemen or proxies. He pointed out that one of the central topics in eXtreme Programming is solving the unnecessary separation between business and developers. Instead of programmers that just write code, Eduardo is advocating for having developers that understand all aspects of product development.
Speaking of XP practices, Eduardo commented that teams that are doing Scrum but not XP or similar technical practices are doom to fail. These practices should aim to craft good quality code that would allow to continuously deploy software. Eduardo sees DevOps as the the logical complement to XP practices for end-to-end product development.
Eduardo also mentioned that Test Driven Development is a great vehicle for automated unit testing, but is not the only means to reach that end. XP and DevOps should be seen as starting points and teams should keep looking for other practices that enable them to create good automated code that can be sustained over time. For Eduardo, technical excellence is not something optional — instead is a must-have element of software crafters’ professionalism.
A good product team, according to Eduardo, ends up building the right product and builds it right using solid software development practices. In other words, a good product development team knows and uses several practices for understanding a problem/opportunity, discovers a solution, and then implements that solution with good quality.
In closing, Eduardo suggested that organizations that want to start building good product teams start paying attention to metrics such as mean time to production, mean time to failure, and mean time to recovery. Optimizing these metrics could lead an organization to greater levels of Agility. Almost all organizations’ core business is supported by software, and good software and knowing how to craft it is great business differentiators.
About the Author
This is an Agile Alliance community blog post. Opinions represented are personal and belong solely to the author. They do not represent opinion or policy of Agile Alliance.