liveBook · Manning

Polarity

As explained in Collaborative Software Design: How to facilitate domain modeling decisions

A polarity is a tension between two opposing but interdependent positions, values, or forces that must be managed over time rather than permanently resolved by choosing one side.

A polarity is an ongoing tension between two seemingly opposite positions that are complementary and interdependent. Unlike a problem with a best answer and endpoint, it cannot be settled by permanently choosing one side. It calls for both/and management: use each side when its benefits are needed, while avoiding the costs of staying there too long. section 10.1 section 10.1.2

In collaborative work, polarities often masquerade as conflicts: start coding or continue modeling, seek stability or embrace change, prioritize short-term delivery or long-term goals. Treating such a tension as an either/or debate can intensify conflict, because advocates of each pole see its benefits and fear the other pole’s downsides. section 10.1.1 section 10.1.4

Recognize and manage a polarity with the group:

  • Ask whether the difficulty is ongoing, lacks a clear endpoint, and requires both sides. If so, manage it rather than solve it. section 10.1.2
  • Make the tension explicit, validate it with participants, and decide together whether examining it now adds value. section 10.1.3
  • Map the upsides and downsides of both poles to create a shared, complete view rather than a contest over who is right. section 10.2
  • Agree on observable, context-specific signals that show a group has stayed in one pole too long, then define actions that move it toward the other. section 10.2.2

Collaborative modeling versus coding

A team may argue over whether to implement now or keep modeling. Coding tests feasibility in production; modeling can prevent expensive refactoring. Map the positive and negative effects of each, then agree on signals. For example, code needing many explanatory comments can signal a return to detailed modeling; discussion focused mainly on technical aspects can signal time to implement. section 12.3.1

Facilitation matters because a polarity is also social. Use neutral observation, a climate report, or polarized sensemaking questions to surface different perspectives. Bring minority views in early, avoid imposing a permanent answer, and turn the group’s discoveries into shared agreements about when to shift poles. section 10.3.2 section 10.7

Table 10.1 Distinction between problems and polarities (view table figure)

Problems to Solve

Polarities to Manage

  • Are not ongoing
  • Have a right (or best) answer
  • Have a clear endpoint
  • Are ongoing
  • Are unsolvable
  • No clear endpoint
  • Alternative solutions are independent.
  • Both sides are interdependent and complementary.

Alternative solutions are opposites:

  • Should we go to restaurant A or B?
  • Should we invest thousands of euros into this technology?
  • Should we add an architect to the team?
  • Are we going to buy a new coffee machine?

Sides are seemingly opposite, but aren’t:

  • Short term AND Long term
  • Individual AND Team
  • Innovation AND Efficiency
  • Stability AND Change

Compare solvable problems with ongoing, interdependent polarities before deciding whether the group needs an answer or a way to alternate between poles. section 10.1.2

How Collaborative Software Design: How to facilitate domain modeling decisions covers it

How deep it goes
Defines polarities, distinguishes them from solvable problems, and details mapping, signals, actions, and facilitation responses.
Examples
Uses rest versus activity, short term versus long term, Deep versus Wide, and collaborative modeling versus coding.
What it assumes
Assumes participation in collaborative group work and teaches polarity recognition and mapping from first principles.
What you can do after
Practice/perform polarity mapping by identifying poles, effects, signals, and actions with a group.
How it connects
Connects polarities with collaborative modeling, conflict, sensemaking, climate reports, EventStorming, and coding.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Collaborative Software Design: How to facilitate domain modeling decisions. The section links point to the parts of the book it draws on.