Helping the Gnomes that Code

Some emphasize that product development begins with writing code and that effort transforms into a win. The lingering question for this type of three-part development model is “What is Phase 2?”

What is Phase 2?

Some emphasize that product development begins with writing code and that effort transforms into a win. The lingering question for this type of three-part development model is “What is Phase 2?”

What is Valued by Gnomes that Code?

Many managers track business metrics and project metrics during Phase 2 to forecast the potential to win.

What is valued by gnomes that code?

Gnomes associate winning with factors that include autonomy, mastery, and purpose. Dan Pink wrote about what motivates individuals in his book Drive.

Gnomes can develop autonomy, mastery, and purpose in an environment when there is a moderate amount of volatility, randomness, disorder, and stressors. Gnomes can benefit in a development environment that is characterized by a moderate amount of adventure, risk, and uncertainty. Taleb called this type of environment antifragile.

Development Options

Taleb wrote ‘The option is an agent of antifragility.’ An agent obtains results.

An appropriately designed network continuously synthesizes development options that provide the potential to take action that may result in a favorable gain. When an attractive gain may be realized, options are exercised.

Development options:

  • Include tasks that are likely to improve the antifragility of the network during a project
  • Are a response to the question ‘what should the network embrace now to improve the potential to win in the future?’
  • Are continuously synthesized and exercised during a project within the development network to refine the focus and direction of efforts to generate a win
  • Are consistent with the concept of safe-to-fail experiments that have an asymmetric payoff function (large potential gain, small potential loss)
  • Are exercised, evolve, or expire

The capabilities of the network impact the attractiveness of the development options that are generated.

To the extent that options are exercised and provide feedback, confidence in their attractiveness tends to increase.

Multiple options can be active simultaneously to provide multiple opportunities to win within the network’s current capabilities and within the project’s current constraints.

Precursors to Development Options

Analysis is a precursor of synthesis. Analysis is a problem solving approach that divides the whole into its constituent parts. Synthesis is a process of connection.

A synthesis approach enables one to imagine how several capabilities may work together to produce the desired result. Validation may follow from a combination of decision, action, interaction, and more observations.

John Boyd represented these items in his OODA Loop sketch in his final briefing titled “The Essence of Winning and Losing” in 1995. I have expanded Boyd’s notation to represent the interactions of individuals and their efforts during a project.

A series of OODA loops with hierarchy

John Boyd’s OODA Loop sketch notation can be expanded to represent the interactions of individuals and their efforts during a project. This illustration includes the representation of simultaneous efforts within a hierarchy and the pursuit of two options simultaneously.

The following notation represents synthesizing options and exercising options throughout a development project.

Synthesizing and exercising options during new product development

Synthesizing many options and exercising attractive development options should occur rapidly throughout a project. ‘Synthesize options’ includes imagining solutions and documenting them. The cloud filled sky background of the ‘exercise option’ portion of this graphic represents the interaction of prototypes with the environment (which includes customers).

Designing to Improve the Capability to Synthesize and Exercise Attractive Development Options

Optionality can be improved by design. Concepts that can be employed in a development environment to help gnomes that code improve their capability to synthesize and exercise attractive development options include:

  • Requisite variety
  • Pair Development
  • Disintermediation
  • Recursion

When the network has requisite variety, the network has to potential to recognize all problems and to activate appropriate responses.

Requisite variety

Requisite variety addresses the importance of having proficient practitioners with a diversity of capabilities that can be mobilized in a dynamic network. The table indicates that this environment has requisite variety because the number and type of responses represented is greater than or equal to the number and type of problems represented.

Requisite variety is associated with mobilizing a network of contributors with diverse specialties and multiple perspectives. To be successful, individuals may require additional training, access to individuals with unique expertise, and new ways to cooperate.

During the project, individuals engage and disengage to maintain requisite variety and avoid the paralysis associated with excessive variety.

Pair Development facilitates the synthesis of options to develop a self-correcting focus and direction informed by the analyses of multiple perspectives.

Pair development is implemented by facilitating the interaction of individuals of different disciplines (such as a coder and a market specialist). Pair development may include activities such as dialog and sketching.

Pair development with gnomes

Pair development provides an opportunity for interaction through activities such as dialog and sketching to transform orientations. The result of pair development should be a synthesis of options, not a summary of previous activities.

Pair development provides benefits beyond distributed cognition. The purpose of pair development is not cross-training. The result of pair development should not be a summary of previous activities.

Disintermediation efforts may involve removing layers of management or removing other barriers. Disintermediation efforts may have objectives such as:

  • Improving agility
  • Rapid recognition of problems
  • Rapid implementation of solutions
  • Faster cycle times

Achieving these objectives may require the re-design of the network to facilitate communication, cooperation, collaboration, and harmony among individuals.

Achieving these objectives may require evolving the way that individuals experience the interactions of customers with prototypes (or other experiments related to the product being developed). Direct observations that promote full-fidelity interactions are preferable to mediation approaches such as presenting individuals with reports that summarize activities.

Recursion is a solution or technique in which large problems are solved by reducing them to smaller problems of the same form.

Recursion is a solution or technique in which large problems are solved by reducing them to smaller problems of the same form.

Recursion is a solution or technique in which large problems are solved by reducing them to smaller problems of the same form. A recursion approach works best in a development network with requisite variety that observes the interactions of multiple potential customers with evolving, functional, holistic prototypes.

The network’s perceptions of large problems shape the focus and direction (schwerpunkt) of the project. When developing a new product, the large problems include the customer’s experience with the product.

Large problems are evaluated by the interactions of people with products during activities such as buying, setup, use, maintenance, and troubleshooting. The large problems include the customer’s perceived value of the new product in comparison to alternatives.  The large problems may be evaluated in terms of the delight produced using the product to accomplish a task.

Recursion approach to new product development

A recursion approach provides multiple channels of feedback to a development network with requisite variety that evaluates multiple opportunities to win. Customers interacting with prototypes is represented in the upper-right corner. Four snapshot of the development network are represented during the project.

A recursion approach provides multiple channels of feedback to evaluate multiple opportunities to win.

A recursion approach works best in a development network with requisite variety that observes the interactions of multiple potential customers with evolving, functional, holistic prototypes. The interactions provide multiple opportunities to detect mismatches and develop corrections.

Mismatches: the difference between the phenomena that is observed and the conceptual description of that situation

A recursion approach provides validation that is beyond the results available from surveys. Prototypes are evaluated beyond their functionality. A recursion approach includes evaluating how one user describes a solution to another user.

A recursion approach is used to validate the attractiveness of development options.

When practicing recursion approaches, individuals that tend to identify themselves as independent specialists shift to identifying themselves as contributors to development options. Their perspectives change. They engage in efforts to solve the large problems.

Transitioning from Coding to Winning

Gnomes know how to write code.

To transition from writing code to winning, gnomes benefit from concepts such as requisite variety, pair development, disintermediation, and recursion contribute to improving the capability to synthesize and exercise development options rapidly in an antifragile development environment.

This enables gnomes that code to become winners that code.

The gnomes synthesize and exercise options.

During Phase 2, the capability to synthesize many options and exercise attractive development options rapidly enables a properly prepared network of individual contributors to realize non-linear gains that are not possible by alternate development approaches such as ones that focus on managing mandates. This enables gnomes that code to transition to winners that code.

 

Diversity in Expressing Wins

Ultimately, gnomes that code express their wins through actions that are consistent with motivating factors such as autonomy, mastery, and purpose. Gnomes that code may express their wins to their peers through recurring actions such as pushing files to their Git repository or answering questions on StackOverflow. These types of actions improve their development experience.

When the gnomes that code win, their success propagates. Customers express their wins by actions such as posting product reviews that described how the products enable them to be successful. Managers achieve their desired business objectives and project objectives. Managers may express their wins through actions such as presentations and publication on innovation. They may be rewarded with stock options.

Individuals in different roles express their wins to their peers through unique actions

Individuals in different roles express their wins to their peers through unique actions. Gnomes that code may express their wins through actions such as pushing files to their Git repo or answering questions on StackOverflow. Customers may express their wins by actions such as posting product reviews that describe how products enable them to be successful. Managers may express their wins through actions such as presentations and publications on innovation.


Notes:

The “What is Phase 2?” question was included in the “Gnomes” episode of South Park, Season 2. 16 December 1998. That episode provided an inspiration for this post.

The Law of Requisite Variety was formulated by W. Ross Ashby.

This post included material from my book Developing Winners.

Podcast[Requires iTunes or Apple Quicktime. Duration 9:24 minutes:seconds]

Reductionism and Recursion in New Product Development

Which approach to new product development will produce better results? Reductionism or Recursion?

Reductionism

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

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 vision and version in new product development

The interplay of vision and version in new product development

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.

Podcast

 

Reductionism and Recursion in New Product Development (10 Minutes, 15.5 MBytes)