I have had opportunities to lead in multiple contexts and capacities over the course of my life and career. These have included software consulting, co-founding software startups where I operated as CTO, planting a church, and my current role as a software architect. Along the way I realized I had been a student and practitioner of leadership for most of my life. I added academic studies to my ongoing education in leadership, completing a Master of Arts in Transformational Leadership in 2010. I remain passionate and dedicated to my primary vocation: I help make good software professionals great!
Software Leadership Distilled provides an overview of concepts and practices software organizations can adopt to help their teams and leaders to thrive. It brings my experiences and studies together with expertise gleaned from mentoring, training and works by other leaders both inside and outside the software industry.
- Humans Thrive Most as Value Creators
- People perform at their best when they understand their specific value creation responsibility and the ways they will be evaluated in fulfilling it.
- Core Values - Trust, Clarity and Empowerment
- Teams and organizations that embody the values of trust, clarity and empowerment can experience a significant boost in productivity and morale.
- Make and Keep Agreements to Build Trust
- Foster a culture that rewards building trust by making and keeping agreements.
- Provide Role Clarity
- Clarifying roles clears up a host of issues that plague organizations and teams, orienting team members directly toward their specific value creation task and freeing them to empower others.
- Build Core Teams
- A core team consists of individuals who fulfill three areas of primary responsibility: managing customer expectations, managing business expecations and managing complexity.
- Work toward emergence of the Lead Team
- The emergence of the lead team reflects the success of core teams growing and thriving throughout the organization.
- Authenticity is Not Optional
- Nothing undermines improvements to organizational culture quite like a lack of authenticity.
Don’t view people as resources, but as value creators.
Humans thrive most as value creators.
Whether they realize it or not, most people desire to understand the value they can create and the means by which they will be evaluated in doing so. A sense of ownership, accountability and empowerment for delivering on their commitments helps people to thrive.
When people do not see a direct connection between their efforts and their ability to create value, they can experience directionlessness leading to resignation, detachment, depression or other undesireable results. These outcomes reduce commitment, hamper productivity, stifle innovation, squelch determination and disrupt inter-personal dynamics.
Software leaders clarify the value creation potential of every member of their team.
Trust, clarity and empowerment
Elevating trust, clarity and empowerment as fundamental values contributes to a context in which individuals can thrive. These core values form a powerful foundation for team and organizational productivity. Teams and organizations that embody these core values can experience a significant boost in productivity and morale.
These core values must go beyond a mere rallying cry or slogan. You cannot manufacture trust. You will never “oops” your way into clarity. Without trust and clarity, the slightest sense of empowerment quickly dissipates.
Software leaders foster and facilitate an environment of trust, clarity and empowerment.
Trust grows by making and keeping agreements. — Dr. Ron Claassen (adapted)
Make and keep agreements to build trust.
Without trust all manner of dysfunctions tend to result such as hand-wringing, buck-passing and micromanagement to name a few. Healthy teams and organizations learn to make and keep agreements to build trust.
Give individuals and teams the opportunity to make agreements in keeping with their clarified role. Cultivate a culture that rewards trust building by making and keeping agreements. Begin to model this culture at every level of the organization.
Software leaders build trust by making and keeping their agreements while empowering others to do so.
It’s a lack of clarity that creates chaos and frustration. — Steve Maraboli, Life, the Truth, and Being Free1
When people find meaning and purpose in their work, they become focused and committed to delivering value. Their personal goals align with those of their team and of the organization as a whole. This cannot happen without clarity.
Provide role clarity.
Clarity enables individuals to understand and embrace their particular contribution as value creators. It provides the context for building trust by making and keeping agreements. Lack of clarity regarding responsibility for value creation leads to a host of individual and inter-personal dysfunctions in a team and organization. Clearly defined roles can provide people with a sense of meaning and purpose, especially when the role aligns well with their own talents, training, experiences and aspirations.
Role clarity provides the following:
- Comprehension of the value provided by the role
- A clearly defined area of primary responsibility
- Well defined points of connection with other roles
- A sense of responsibility, ownership and accountability
- A context in which mutual empowerment can grow
Most software professionals have a working definition of their job but remain unclear regarding their area of primary responsibility. This issue cannot be blamed on the individual, but on a lack of industry leadership. Our industry has not reached consensus on simple and clear responsibilities for key roles and perhaps it never will. To the extent they exist at all, most common role definitions suffer from inconsistency, excessive breadth, lack of clear boundaries, and a tendency to focus on bureaucratic success metrics instead of value creation.
Warning: organizations and teams that provide role clarity in an environment of trust, clarity and empowerment may tend to rapidly accelerate beyond their competitors and the expectations of the market. And they might even have fun doing it.
While each role may involve multiple responsibilities they at least require ownership and accountability for their respective area of primary responsibility.
Areas of Primary Responsibility
- Product Owner: Manage Customer Expectations
- Project Manager: Manage Business Expectations
- Architect: Manage Complexity
- QA / Test Engineering: Manage Requirements
- UX / Design: Manage the Customer Experience
- Engineer / Developer: Manage Optionality
It is crucial to note that none of these roles involve managing people.
Tasks and processes may be managed. People should never be managed. People should be led, not managed.
It is important to recognize that the area of primary responsibility matters far more than the role title. For the sake of consistency these role titles should be adopted whenever possible. This does not necessarily require a change in job title. In some teams, one person may have to bear responsibility for more than one area of primary responsibility. What matters most is clarity regarding responsibilities and expectations.
Once team members have clarity regarding their role, they gain power to shed unnecessary tasks. They begin to narrow their focus to what really matters. They creatively explore ways to increase their own value creation potential. They can begin to imagine ways to empower individuals in the roles adjacent to their own. As team members gain clarity about their value creation reponsibility, their job satisfaction tends to increase. As team members begin to empower individuals in other roles, the positive network effects can completely transform an organization.
Areas of Shared Responsibility
In addition to the areas of primary responsibility, everyone in an organization is responsible to:
- Manage Risk
- Build Trust
- Fight for Clarity
- Empower Others
Software leaders understand their own role and empower others to clarify and fulfil their respective roles as value creators.
I have people skills; I am good at dealing with people. Can’t you understand that? — Tom Smykowski, Office Space2
A core team3 consists of three individuals, each of whom take ownership in the following areas of primary responsibility:
- Manage Customer Expectations
- Manage Business Expectations
- Manage Complexity
A well functioning core team works together to ensure that business and customer expecations are managed, and that complexity is contained. A healthy core team shields engineers from the noise generated by customers, the business, and the rapidly shifting technological landscape, enabling them to focus on value creation. They work relentlessly to remove impediments to value creation such as resource leaks, context switching, red tape, “that’s how we’ve always done it” syndrome, and fear. Embedding the core team concept throughout an organization reduces unnecessary meetings, increases communication efficiency and creates mutually self-reinforcing circles of trust, clarity and empowerment. The highest performing core teams never stop working to model trust, clarity and empowerment.
Core teams can form anywhere within a software organization. Ideally over time they become embedded throughout. However, mandating rapid core team adoption across an organization can actually backfire. While the areas of primary responsibiilty provide role clarity in the abstract, individuals in these roles need training and experience to become effective in these roles. They need time to build trust by making and keeping agreements together. Rushing to form core teams that lack the necessary training, experience and trust can simply innoculate individuals against the idea. They may end up viewing the concept as just another management fad.
You cannot mandate trust. Any attempts to do so will produce the exact opposite!
Therefore, growing from the bottom up is typically the correct strategy. The best time to begin broad adoption comes when multiple core teams in the organization have experienced success and stand prepared to empower and equip other core teams. With a legacy of successes behind them, they can adopt a “show, don’t tell” approach when discussing their results. As pockets of trust, clarity and empowerment reach critical mass, the organization may be ready for broader adoption at an accelerated pace.4
Software leaders form core teams that build trust and empower each other as well as those they have opportunity to influence and lead.
The emergence of the lead team signals the success of core teams growing and thriving throughout the organization.
Over time, the growing ubiquity of core teams throughout an organization can result in emergence of a core team known as the lead team. The lead team sits at or near the top of a software organization reporting chart. Just like a core team, it is comprised of three individuals, each with their own respective area of primary responsibility. Recall that the titles matter a great deal less than the area of primary responsibility.
- CPO (Chief Product Officer) / VP of Product: Manage Customer Expectations
- CTO (Chief Technology Officer) / VP of Technology: Manage Business Expectations
- CSA (Chief Software Architect) / VP of Architecture: Manage Complexity
Role clarity is necessary but not sufficient for individuals in an organization. The lead team ensures that team members clearly understand the mission of the organization and any relevant areas of strategic focus.
Software leaders work diligently on the excellence of each core team while patiently awaiting the emergence of the lead team.
Authenticity is Not Optional
Nothing undermines a healthly culture like a lack of authenticity.
Without a demonstrable commitment to the core values throughout the organization, team members will sense the lack of authenticity and likely view it as a double standard. The core values must be embodied, not merely stated.
Performance evaluations should take the core values of trust, clarity and empowerment into account. Core teams must foster a culture of recognition and encouragement as actions aligned with the core values are observed.
Thriving teams include individuals that focus beyond their personal role and discover how they can empower team members in roles different than their own.
Software leaders cultivate an atmosphere of authenticity.
The Future of Software Leadership
I will expand on these concepts in the future both in breadth and in depth. If you’d like to learn more, you can always contact me.
Copyright © 2020 Jeff Doolittle. All rights reserved.