Notes on seeking wisdom and crafting software

Evolution of a team

It appears there is a pattern to evolution in a team or in a career. We give it names such as apprentice, intern, expert or a master. I read an interesting article on defining a feature team and a product team. Please take a look at product vs feature teams.

Here’s a little doodle on a lossy interpretation of key ideas superimposed with my (biased) experiences ;)

team maturity

Outer most layer (clockwise) calls out the risks that a cross functional team attempts to address with various roles. Mechanics are the details of how value is generated and the risks are mitigated. Evolution essentially is along the X axis across dimensions of maturity, ambiguity and most importantly ownership. The vertical Y axis covers a loop of activities (top down) and feedback (bottom up).

There are three stages of evolution for a team.

Delivery team works with instructions. You are told what to do. Deliver on that. Focus on output (not the outcome). E.g. 30 issues closed etc. Product manager is often responsible for project management. Engineering writes code to fix tickets. Feedback is mostly received as more issues.

Feature team is somewhat forward looking. You are give a set of feature lists. Sometimes they are already prioritized or you’re asked to prioritize. You must seek the customer here, to understand what to prioritize. Designer role covers the visual aspects and sometimes interaction too. Engineering starts thinking about extensibility in addition to functional aspects. Feedback may be observed or interpreted. E.g. performance issues are most common in X component.

Product team is where you want to be. You are given a market. Create value and earn a good business in exchange. You have to go beyond seeking, you must engage and develop the customers. Your knowledge is based on deep understanding of the customer, market and business. You must do customer research before jumping onto interaction or visual elements. Engineering onboards on the Day one to cover feasibility aspects. Feedback is proactively designed, e.g. with extensive instrumentation around key metrics.

Stakes are high. You own defining the value and working with customers. Every day is about bringing clarity around high ambiguity.

Isn’t there a similar pattern to the evolution of our individual careers too? Start from the college hire stage, you’re told what to do. Execute and ship. Next you’re given a a set of longer term features, prioritize and drive them. And finally, all you may have is the environment, do whatever is necessary to generate value for the customer.

Empowerment.