Which approach to new product development will produce better results? Reductionism or Recursion?
According to Wikipedia:
“Reductionism is a philosophical position which holds that a complex system is nothing but the sum of its parts, and that an account of it can be reduced to accounts of individual constituents.”
In new product development, reductionism is rationalized as breaking development tasks into manageable pieces. Typical artifacts are seen in organizational charts or the roles assigned to individuals. For example:
- Coders or Testers
- Designers or Developers
- Marketers or Sales
- Project Managers or Product Managers
- Front End of Innovation or Development
One of the potential advantages of reductionism is that it may provide focus to specialty efforts. Another potential advantage is that is may facilitate the interchangeability of resources (for example, one tester can be replaced by another tester with the equivalent qualifications).
Potential disadvantages of reductionism approaches include:
- Degrades communication across functional groups
- Acceptance of a hand-off mentality. This occurs when one functional area ‘finishes their job’ and presents their deliverables to the next group.
- Increases the amount of explicit documentation
- Sub-optimization. Too much effort may be devoted to certain tasks while others items do not receive sufficient attention.
- Too much emphasis attributed to reaching milestones. Not enough emphasis on value creation.
Recursion involves solving problems of the same form. In new product development, typical primary problems include:
- Solving a customer’s problem. This is also described as providing a solution for the job the customer is trying to accomplish.
- Increasing the organization’s revenue and/or profits
- Positioning the organization for success in the future
- Increasing the motivation of the development network. Dan Pink described this using the qualities of autonomy, mastery, and purpose. I describe this as improving the Development Experience [DX]
Recursion in the Development Network
For a recursion approach to flourish, an individual relates their short-term efforts (such as hourly, daily, or weekly efforts) to solve one or more of the primary problems listed in the previous section. For example:
- Are their current efforts improving the ability of a customer to solve their problem? Has the learning increased so that individual contributors can determine if they are closer to solving the customer’s problem today than they were yesterday?
- Are these efforts valuable to the customer? Are these efforts too bureaucratic?
- Will the development efforts for the next project produce better results than the current project? Are the development capabilities being enhanced for future projects?
- Will the contributors to the development network feel a sense of accomplishment? Will the predominant feelings relate to burn-out and frustration?
An environment that enables recursion to flourish ensures that individuals embrace opportunities to contribute to value creation during the current project and future projects.
Alistair Cockburn described this type of approach as a series of cooperative games. He stated:
“Software development is a series of resource-limited, goal-directed cooperative games of invention and communication. The primary goal of each game is the production and deployment of a software system; the residue of the game is a set of markers to assist the players of the next game. People use markers and props to remind, inspire and inform each other in getting to the next move in the game. The next game is an alteration of the system or the creation of a neighboring system. Each game therefore has as a secondary goal to create an advantageous position for the next game. Since each game is resource-limited, the primary and secondary goals compete for resources.”
Clinton Keith described it this way:
“For a cross-discipline team that is measured by value added to a working game, the role of an artist shifts to that of a ‘game developer’ who specializes in art. An artist doesn’t simply create an asset for someone else to put in the game and make fun. The artist participates in the creation of an experience, where art has an equal value. By having a voice in the discussion about what is being created, the artist elevates the value of what they create and minimizes the cost of creating it.”
From the book “Agile Game Development with Scrum” by Clinton Keith (@ClintonKeith) page 227. Published in 2010.
Contrasting Recursion and Iteration
Iteration is repeating. Often, it involves executing the same process with new items from a long list of potential tasks.
In Scrum, Sprint is the term for an iteration. In Scrum, the duration of a typical Sprint is in the range of one to four weeks. During a Sprint, development is devoted to completing selected items from a backlog of items.
Common metrics for a series of Sprints may highlight factors related to the speed of execution. This may include items such as burn-down rate.
One of the potential problems with an iteration mindset is that the number of product features that are completed is associated with a proxy for the value produced by the project.
Which is Better?
Which approach provides better value from a project? Is it a reductionist approach or a recursion approach?
A tyrannical approach does not produce better project value. Debating over a development question that includes the word ‘or’ is not likely to improve qualities such as autonomy, mastery, and purpose.
Better value will be produced with the proper combination of reductionism and recursion. Some individuals excel as reductionists. However, the potential for project success can not be achieved when the reductionist viewpoint is the only viewpoint that is tolerated.
Maximizing the potential for project success requires that one or more of the primary problems is being solved. Solving these primary problems is best accomplished with the inclusion of a recursion approach. This requires more than assigning someone to a role such as Product Owner.
I have found that that potential to maximize success in new product development improves when there is a critical mass of individual contributors that embrace a recursive approach to development. This diversity in the development network improves the potential for harmonious plans, decisions, and actions throughout development. It improves the potential for the self-correcting analysis of feedback.
Vision and Version
The interplay of reductionism and recursion is similar to the interplay of vision and version in new product development. These approaches facilitate implicit coordination within a diverse group of individual contributors throughout development that will produce better outcomes than alternatives that enforce handoffs and explicit coordination during development.
With a synergistic approach, the customer’s problem is more likely to be solved. The Development Experience [DX] of the individual contributors is more likely to improve from one project to the next.
Reductionism and Recursion in New Product Development (10 Minutes, 15.5 MBytes)
This is very true for OO languages. Functional language interpreters/compilers usually support tail call optimization, which does not eat up the stack. Unfortunately, as far as I know, TCO is not scheduled to be implemented natively in JVM, so FLs running on Java need to do some tricks to work around this problem – and they mostly do it by turning recursive calls into iterations. Great post by the way, thanks!
Asking questions are really fastidious thing if you are not understanding anything completely, however this post presents nice understanding even.|
[url=http://www.demigraphics.com/]Michael Kors Outlet[/url]