avatar

Elaheh Nazari

Posted on 6th January 2021

Management 3.0: Leading Agile Clojure Developers, Developing Agile Leaders

news-paper Agile | Management | News | Software Development |

By Jurgen Appelo

Six Views of Management 3.0

Energize People

Empower Teams

Align Constraints

Develop Competence

Grow Structure

Improve Everything

The human brain is in a way that looks for causality and it is useful for prediction and planning. What causality talks about is a kind of linear thinking with a cause-effect relationship. But not always everything can be that simple. These complexities can result in horrible mistakes. 

Reductionism (understanding a system by breaking it down into small parts) is a good approach in these situations though mostly when it’s a scientific problem. The holistic view is a better approach for other types of problems.

Agile movement dated back to the early 90s where the bureaucratic procedure didn’t let successful delivery for software developers. Some people held a conference to elaborate on the agile manifesto. It was perceived as a reaction to formal old-fashioned procedures, unnecessary documentation, and a waste of time and budget. But only a few people noticed the meaning of this manifesto.

There are 8 dimensions to the structure of the fundamentals of Agile:

  1. People: People are unique individuals and cannot be replaced. Agile counts on motivated ones who are self-organizing their work with accountability. 
  2. Functionality: “The best products are built when customers are directly involved with the teams that create them.” The needs are obvious and can be selected for immediate implementation.
  3. Quality: There are techniques to support high-quality successful products, Test-Driven Development, code reviews, refactoring, etc.
  4. Tools: there are two types of tools; a. Tools that replace boring, repetitive tasks (e.g. daily builds and automated tests) b. Tools that radiate information to support a collaborative environment (e.g. task boards)
  5. Time: There are time-boxed intervals like sprints or iterations which are to deliver project results. These intervals let customers benefit from the implementations as early as possible. Also, the development team should always try to maintain its speed to allow predictable future shipments.
  6. Value: Never forget that value is something of the most importance. Using short loops of feedback and delivery cycles can maximize the value of software development.
  7. Process: Minimal planning, daily 1 on 1 communication, measurement of progress through working assessment, and regular feedback upon performance are important parts of Agile thinking.
  8. Conflict: There are situations where Agilists do not agree on some parts of a certain concept. The important thing is to be among people who enjoy challenges rather than just arguing.

It is good to mention that Toyota improvement procedures inspired Lean software development. Although Lean is more about management upon the improvement of the development process, in many ways it overlaps with Agile. On the other hand, the Software Craftsmanship movement adds some principles to Agile: well-crafted software, steadily adding value, the community of professionals, and productive partnerships with the customers. The old methods are trying to keep the pace. PMI developed an Agile body of knowledge, CMMI is somehow complementary to Agile while the Unified Process is trying to combine the classical and the agile approaches, from Rational Unified Process toward simplified versions like Agile Unified Process and Open Unified Process.

The problems in front of Agile are mainly managerial issues, and lack of understanding of roles in an Agile organization.

Complex Systems Theory

Complexity science is a multidisciplinary approach into systems, which builds on earlier achievements in the field of general system theory, cybernetics, dynamic system theory, game theory, and evolutionary theory.

Finding in complexity science can be used in social systems like development teams.

03fig02

You can analyze systems from two dimensions: structure and behavior. The structure can be simple or complicated, making it easier or more difficult to understand. The behavior can be ordered (fully predictable), complex (somewhat predictable, but with surprises), or chaotic (very unpredictable).

One important finding is that complexity (an indication of predictability) is different from complicatedness (an indication of understandability). Another finding is that many complex systems can adapt to changing environments, in which case we call them complex adaptive systems (CAS). 

Social complexity is the study of social groups as complex adaptive systems.

The Information-Innovation System

The software development teams are complex adaptive systems that change information to innovation. Although innovation as a term means the uniqueness of software code fits the definition.

Innovation is a major advantage for organizations. It can be broken down into five cogs that transform information into innovation.

  • Knowledge, which is the power for innovation and is built continuously by the collected input of education, learning, and experience
  • Creativity, which transforms knowledge to value, consists of ideas that are original and useful and can be discovered through a five-step process: preparation, incubation, intimation, illumination, verification
  • Motivation, which gives a reason to dedicate energy and time
  • Diversity, which is important to create stability and flexibility in an organization
  • Personality, which is “the result of virtues” like trust, respect, honesty, and depends on many things.

People are the only ones who can change information into innovation so they are important. But there is another reason why people are important and it has to do with the Law of Requisite which says that “a system can be controlled by another system only when the other system is as complex or more complex than the first one.” So the control mechanism of any project should depend on people, not on tools.

Energize People

You can energize and encourage people through 4 of the 5 cogs: creativity, motivation, diversity, and personality.

Creativity

There are 3 types of creativity:

  1. Preconventional creativity, found in very young children and toddlers, when you try things because you do not know about the conventional constraints
  2. Conventional creativity, found children between 7 to 11 years old, when you try the things that are not violating the constraints
  3. Postconventional creativity, found in older children and in adults, when you try things regardless of the constraints you are aware of.

Managing a creative environment means:

  • To ensure safety, so people feel ok to share crazy and strange ideas
  • To allow playing games, to challenge people minds and practice talents
  • To nurture variation, as routines are killing creativity
  • To create visibility, to stimulate visual thinking, and sharing understanding
  • To encourage people to discover their limits, allow them to get out of their comfort zone to bring in a creative state of mine

Creative techniques have several categories:

  • Process — techniques that explain a process to generate creative solutions, usually through the repetition of several steps, while using other techniques for each step like Creative Problem Solving and Productive Thinking Model.
  • Problem definition — techniques that deal with problem analysis and reconsideration to make it more understandable like Chunking, 5W1H, and Boundary Examination.
  • Idea generation — techniques that stimulate finding as many solutions as possible to a certain problem like Brainstorming and Talking Pictures
  • Idea selection — techniques that are focused on the selection of the best solution from the identified ones like Anonymous Voting, Consensus Mapping, and Sticking Dots.
Motivation

There are two types of motivation that a manager can choose to bring up within a team: 

Extrinsic motivation is a reward offered for achieving a certain goal, and the reward is completely external to the goal. This type of motivation is based on Theory X; “people prefer not to work and some incentive must be provided to them to convince them to make an effort.” This is a linear way of understanding human behavior, assuming that reward A leads directly to result in B.

Intrinsic motivation is a reward that is encapsulated in the results achieved by the team. The team will find motivation within the work and achievements. This is based on Theory Y; “people enjoy their physical and mental duties, based on their innate desire to do well.” The linear understanding is eliminated: reward A is exactly the expected result B. Intrinsic motivation is always to be preferred over extrinsic ones.

Demotivation is based on the Herzberg (Motivator-Hygiene) Theory; “hygiene factors might not motivate people through their existence, but strongly demotivate them through their absence.” In other words, removing demotivators does not lead to stronger motivations automatically.

To determine what should be encapsulated in intrinsic motivation, one should understand the Self-determination Theory, which differentiates the three main intrinsic needs: competence, autonomy, and relatedness. A set of 10 desires can be considered motivating for any team member:

  1. Feeling competent
  2. Feeling accepted
  3. Curiosity
  4. Honor (loyalty to a group formed using self-defined rules)
  5. Idealism (purpose)
  6. Independence (autonomy)
  7. Order (the need for minimal rules and policies)
  8. Power (ability to influence others and the environment)
  9. Social contacts (relatedness)
  10. Status (feeling important inside the organization)

A personal list of things that motivates and demotivates a person (A motivational balance sheet) should be used to explain how to create intrinsic motivation.

Diversity

Diversity is the ability to establish different kinds of connections with team members which should be also considered along with the competencies of a newcomer.

Personality

The personality of a team is the result of the interactions between each personality. There should be enough diversity in terms of personality to make the team stable, flexible, and resilient, but there must be enough common ground to provide cohesiveness and ability to resolve conflicts.

Individual personality can be assessed through different tests and tools like the Big Five Factors of Personality. It can be achieved through some steps:

  • the manager takes the test
  • the manager shares the test results with the team
  • team members are privately taking the test and share results with the manager
  • team members share test results with each other (optional)

Also a set of “team common values” must be defined. This can be achieved through a DIY Value Kit:

  • Print the Big List of 50 Virtues and give a copy to each member (Agile, Scrum, or Lean principles are included and highlighted)
  • Tell each of them that they must select between 3 and 7 values that are the most important for them
  • It can also be done with stakeholders and customers outside the team
  • Compare the selected virtues
  • Discuss mutual expectations until reaching a common list of 3 to 7 virtues
  • Display those virtues everywhere possible

The Basics of Self-Organization

Self-organization happens in a context and must happen toward values. In software development, the value is defined by the customer, so there should be fewer debates about the opportunity or morality of the result.

06fig01

Self-organization is a form of acceptable anarchy. Anarchy is defined as the lack of order and formal authority, which is partly true, as a self-organizing system does not rely on predefined rules or external management. Still, to some people anarchy leads to the chaos which is not the goal of self-organization. When there is a certain degree of complexity, self-organization must bring as much order as possible while it is still efficient. So the similarity between self-organization and anarchy is limited to the absence of formal authorities.

Self-organization should trigger emergence. Also, each component of a system should be ignorant of all behaviors of the entire system or it makes all other parts useless as it knows the entire system.

Empowerment is another concept that is necessary for a self-organizing system. Instead of controlling and deciding, the manager should grow and strengthen the system.

Empower Teams

There is a difference between a manager and a boss. Managers should support team members to succeed but not to work for them. This support helps with risk-taking, personal growth, and cultural changes for the team. And it results in easing management of a complex system.

Choose the right maturity level of the members according to their experience and expertise. Bring everyone to the high empowerment level, but not by skipping stages.

Pick the right authority level depending on the importance of each task:

  • Tell= Decide and tell them, 
  • Sell= Decide and sell to them, 
  • Consult= Ask opinion then decide, 
  • Agree= Jointly decide, 
  • Advise= Share your opinion and let them decide, 
  • Inquire= Let them decide then ask questions, 
  • Delegate= Just let them decide

Other than choosing the right maturity and authority level, assign teams or individuals to each task.

The delegation checklist
  1. Is the risk factor of delegating this work adequately addressed?
  2. Have you considered and selected the right level of authority?
  3. Have you considered the question of delegating to individuals or teams?
  4. Have you considered the best order of delegating this work versus other work?
  5. Is what you are delegating a discrete chunk of work?
  6. Do people have the skills to do this particular kind of work?
  7. Do people have the right format for the work products to use?
  8. Do people have the tools necessary to be successful?
  9. Do people know what the results should look like?
  10. Have you set the boundary conditions for the work (e.g. budget, time, resources, quality)?
  11. Do people know when the work is due?
  12. Do people know what progress looks like?
  13. Do people know how often to report to you on progress (adhering to interim milestones)?
  14. Is someone available (you or another person) to coach or mentor people in case they need help?

Trust and respect are fundamental to empowerment. Without them, empowerment doesn’t work.

There are 5 actions to build trustful and respectable relationships:

  1. Trust the team, and give members a good chance to prove themselves.
  2. Earn the trust of the team, by doing what you tell.
  3. Help team members to trust each other by encouraging communication and commitment. Make sure people have the proper tools to communicate. When commitments are not reachable, make sure the responsible ones are communicating it early and fully.
  4. Trust yourself
  5. Respect people, ask for feedback.
  6. Be respected, give feedback.

Leading and Ruling on Purpose

There should be boundaries in a self-organizing system and managers should lead the teams, not rule them over. 

Type of LeadershipDescriptionApplied by
Administrative (governance)Power of authority: ruling peopleManagers
EmergingPower of attraction: Leading peopleAnyone
EnablingAllowing nonmanagers to leadManagers

When there is a social system neither of the stakeholders can automatically promote their own goal as the goal of the project. “The team does not exist exclusively to satisfy the Product Owner” or the customer or you!

There can be three types of purpose in a self-organizing team: 

The intrinsic purpose is innate to the team; 

The extrinsic purpose is assigned by the manager; 

The autonomous purpose is assumed by the team itself.

How to Align Constraints

Give the team members a shared organizational goal. Or let’s say, communicate it so everyone comes to the same understanding of the vision and mission of the project. Also, let your team define a goal for themselves. It can be different from the goal of the organization. They deserve this freedom of having another shared goal.

But these goals are not connected to rewards but leads the team in their work.

For the team’s goal try to have a clear boundary list of what they can do themselves and to what level they are allowed to do activities. Here, the managers should protect each member and the shared resources from the external environment.

Rulemaking Craft

Other than goals some rules should be developed. In a self-organizing complex system, entrust the team with rulemaking. But there should not be too many rules or there will be “feelings of false security and a tendency for risk compensation”.

Develop Competence

How to develop competence

Competence is a personal responsibility and if anyone in the team is not able to develop competency then there are seven approaches to developing competence in an organization or else there will be consequences for the stakeholders:

  • Self: self-discipline and development is one’s initiative to adopt certain behaviors like not answering calls at certain times.
  • Coach: training and coaching a person to develop specific skills and behaviors, like not being lousy with customers.
  • Tests: a test is to prove to an authority that a person showed the necessary skills and willingness to be assigned with certain tasks.
  • Tools: signs, to-do lists, notification alarms can be used to remind people what they need to do and their tasks.
  • Peers: teammates can influence other ones in the group to change their behaviors to suit the norms of the group.
  • Supervisors: supervising from time to time is to make sure that people are doing their jobs properly on behalf of the management.
  • Manager: leading and governing the team to set good examples and judging people if they do against the interest of the organization is a big part of the manager’s job.

 The management part of competence development consists of some responsibilities like having 1:1 meetings, using certain performance metrics, etc.

Communication on Structure

Normally instead of communication, it is miscommunication that happens in organizations, because the first one needs feedback between people, which does not happen properly. 

The optimization of communication requires connectivity to be tuned. It also needs competition and cooperation to go hand in hand. One result of optimal communication can be an autocatalytic (or a hyperproductive) team.

From fractals, one can understand that scale fixed structures are efficient and need just a few rules. Also growing many small groups is better than growing one big system because one big system has greater problems in tough challenges and is more vulnerable. A group of many small systems is more adaptable than a group of a few big systems.

Grow Structure

Organizational structure is most adaptable when teams work as value units, considering other teams as their customers to whom they must deliver value.

ٌWhen there is demand, you can construct a new team until the demand between other teams evaporates. Also, different levels of management can help an organization if they add value. 

Communication between teams can happen either via managers or via the teams. For optimal communication, managers should have the least number of secrets and make all information visible to their members.

The Landscape of Change

An environment is dependent on the systems inside it. Introducing a new product will change its environment as well as the requirements for the product. Changes can be negative or positive, but since people think of changes as a negative thing you have to improve the changes continuously. 

Ultimately, every product is doomed to fail, and success can be defined as postponement of that failure for as long as possible.

Continuous improvement of projects needs adaptation, exploration, and anticipation in a never-ending loop. You have to improve to not fall behind in the market. When changing is not an option, some parameters should be modified in the environment to the teams or organizations become unstable and want to change. When a project consists of loose parts including people, tools, and, practices, it is easier to configure changes in a certain environment without disturbing the rest of the project.

Improve Everything

Software teams are nonlinear complex systems that for improving you should dance with the team, doing small steps, big pivots, etc. to find the correct landscape. One way to find the landscape is to purposefully change the environment to find a better optimal performance. There are three strategies to get this performance, though it should be continuous:

Experimenting by changing individual practices

Mixing collections of the best practices from previous top performers

Learning from others who broadcast their best practices to whom it may concern

You should consider that as different models fail through time, Management 3.0 will fail in the future, but every model has features that can be useful even in the future. 

In a complex world, nothing is simple. And in the end, there’s just one simple truth: It depends.

Bibliography:

Management 3.0: Leading Agile Developers, Developing Agile Leaders

Download for Management 3.0

You can also get additional interesting information about this content. With our newsletter, you will get an efficient set of tools to learn a lot about topics focused on services & digital product building. Read more.