Skip to content

Negotiation

Practice · Chapter 15

Architects obtain buy-in and make decisions with development teams, customers, management, and stakeholders who may not initially agree — so negotiation skills are useful.

  • Negotiation settles differences, ending in an agreement acceptable to all (sometimes via compromise).
  • Success is not just the best outcome for you but a result fair to everyone — preserve relationships and avoid surprises at the final outcome.
  • It builds on other interconnected soft skills: good negotiators are good listeners, communicators, and collaborators. Strong negotiation is itself part of leadership. Skill grows with experience.
  • Quality attribute tradeoffs — negotiate with stakeholders as they realize enabling one quality attribute can hinder another.
  • Developer buy-in — persuade the team (or build consensus) on an approach or technology when viewpoints differ.
  • Management — negotiate project viability, resource allocation, timelines, and cost approvals (e.g. tool licenses).
  • Customers — participate in sales pitches, feature scope discussions, tech-stack choices, and level-of-effort/cost.

Much negotiation is informal (discussions, meetings). Formal negotiations warrant a systematic approach.

  1. Prepare — settle logistics (date, time, duration, location) and, more importantly, understand each party’s interests, viewpoints, possible compromises, and alternatives.
  2. Know your BATNA — the Best Alternative To a Negotiated Agreement is your most preferred fallback if no agreement is reached. Knowing it is essential to making a wise decision.
  3. Discuss — both parties explain their understanding, viewpoints, and goals, listening sincerely; the architect clarifies technical points; anyone may ask questions.
  4. Negotiate — aim for a win-win so both sides walk away satisfied; the architect drives toward consensus; compromises and alternative approaches may be needed.
  5. Agreement — a successful negotiation reaches a clear agreement (else more meetings follow).
  6. Implement — carry out the agreed course of action.
  • Software Architect’s Handbook (Packt, 2018), Ch.15 “Negotiation”, pp. 1112-1115.