knowledge-base

Negotiation and Leadership Skill

These are hard skills to obtain. This topic cannot make you an expert overnight, the techniques introduced here are a good starting point for gaining these important skills. The reason we cover these skills is because a Software Architect must understand the political climate of the enterprise and navigate the politics.

Reason being that almost every decision will be challenged. Developers that think they know more than the architect on a particular part, other architect who think they have a better approach, or business stakeholders that consider your decision to be too expensive. Your goal is not to go to war, but to find the best outcomes for the organization.

Negotiation and Facilitation

Costs can be a deal breaker. You might need to hone your story and understanding to justify the cost. Else you might need to find alternatives that work better cost wise. Usually it is not binary a negotiation, but a conversation to find common ground and work within its boundaries. Remember, it’s always about trade-offs.

GENERAL TIP: Leave your ego at the door

Negotiating with Business Stakeholders

Negotiating with Other Architects

Between architects the seniority can be in the way (ego), competitiveness, too argumentive, and could easily get personal. Some tips to deal with such situations.

Negotiating with Developers

Don’t leverage your title as architect to tell others what to do. Work with them and gain respect. Development teams can feel disconnected from architecture or the architect. As a result they feal out of the loop with regard to decisions that impact them. This is the manifestation of the Ivory Tower Anti-Pattern.

The Software Architect as a Leader

50% about being an effective software architect is having good people skills, facilitation skills, and leadership skills. Here we cover some leadership techniques that you as an architect can leverage.

The 4 C’s of Architecture

Developers and architects love complexity. Developers are drawn to complexity like months to a flame, frequently with the same result. We have essential complexity (we have a hard problem), and we have accidental complexity (we have made a problem hard).

To avoid accidental complexity there is the 4 C’s of architecture:

These 4 factors work together to create an effective collaborator and communicator.

Be Pragmatic, Yet Visionary

Visionary

Thinking about or planning the future with imagination or wisdom. Being a visionary means applying strategic thinking to a problem.

Pragmatic

Dealing with things sensibly and realistically in a way that is based on practical rather than theoretical considerations.

Being pragmatic is taking following factors and constraints in account when creating a solution:

Putting them together

Find an appropriate balance between being pragmatic while still applying imagination and wisdom to solving problems. Business stakeholders appreciate visionary solutions that fit within a set of constraints, and developers will appreciate having a practical (rather than theoretical solution to implement).

Leading Teams By Example

Lead through example, not by title. This is the most efficient way to gather respect from others. Don’t tell what and how it must be, ask questions, ask “what do you think of…”, “have you considered”, … In coaching you help others find the questions, you don’t tell them the solution.

Use people their names when you talk to them, it bonds and is more personal.

Integrating with the Development Team

Meetings

Key of being an effective software architect is making more time for the development team, this means controlling meetings.

Others

Resources