Agile Development – A 30 Minute Summery

Sometime back I was asked to do a 30ish minute presentation about Agile Development for the Phoenix Linux Users Group, or PLUG for short. Getting the reminder email around noon on the day of the presentation I pulled up the slide deck I had started and, realizing that all I had was a title page, started adding content 😉
In the time since I have changed it very little and been asked for copies several times. And every time I find it harder to locate a copy – so I am now posting it here 🙂

Here is the deck – I hope you enjoy 🙂

☝️Low quality preview



If you happen to find errors please send me some notes and I will make corrections 🙂

And when you are done with that I highly recommend the following videos

A equally quick and slightly cynical explanations: https://youtu.be/jNhRX-RBs_4
Some real online training: http://scrummethodology.com/
A humorous review that should be watched every
few weeks while you are in the processes of adopting:
http://go2l.ink/agile
And some more real training 😉 https://www.atlassian.com/agile

 

 

 

Below you will find a high quality version of the slide deck – – Let me know if you use it.

Increasing ownership in your environment.

Ownership:

What is ownership

own·er·ship

/ˈōnərˌSHip/

noun

noun: ownership;

  1. the act, state, or right of possessing, or being responsible for, something.

root: Own

adjective: own;

  1. of, relating to, or belonging to oneself or itself (usually used after a possessive to emphasize the idea of ownership, interest, or relation conveyed by the possessive):

 

What ownership provides for us:

There are three pieces to that definition I wish to unpack:

  1. Possession, or reaping the benefits of that which you own.
  2. Being responsible for, and having authority over, that which you own.
  3. The implication that ownership is related to a person.

A culture of Ownership differs from a Rock Star culture in that with ownership you not only gain the personal benefit from things you produce or maintain for others, usually in the form of reputation, but you also suffer when what you produce is not of significant quality, or does not make the lives of your users better. In a Rock Star culture, you gain the benefits simply by producing something new and flashy, or worse by constantly “improving” that which you produced, even if this is at a detriment to those who use your product by adding features no one wants or constantly changing contracts simply to keep buzz flowing. Even when this reduces the stability, and/or, the usability for the product.

For an organization ownership improves quality, accountability, and momentum.

In an organization, when employees understand their responsibilities across hierarchical levels, it helps in strategizing and achieving organizational goals in a more efficient and effective manner. From an overall organizational perspective, it ensures individuals will proactively identify potential loopholes in a particular process and taking appropriate measures to prevent re-occurrence. It also increases the speed at which we can achieve changes as people are invested in learning and understanding their product as much as possible. This happens as a natural product of ownership. If a person owns a product, they are responsible for this product. If the product does well their reputation for quality products will increase, they will spend less time repairing the product, and can move quickly on improvements that customers desire. This is because they have the most experience with the product because they are the ones working with the product the most, a positive feedback cycle that increases efficiency, reliability, and momentum. Ironically accountability also increases momentum, it helps with the Fail Fast / Get Shit Done culture that has fueled the information sector over the last 30 years. Because if people know they have the authority to do something, and the responsibility to fix it if things don’t work out, they move faster and provide better support for their users. This also benefits managers and project planers, as the owners can more accurately estimate the costs of a project related to the product. In addition, the costs will generally be lower due to the higher familiarity and increased desire for reliability. Thereby, ownership is one of the key steps towards effective leadership and management.

Ownership also provides benefits to the individuals as well. In the competitive environment of information technology, all individuals need to project their skills, talent, and attributes not only to help them stand out, but move the company forward.

  1. Ownership serves as a key factor in accelerating the growth and development of an individual.
    1. It strengthens the employee-employer relationship and also instills a sense of mutual trust and confidence within the workplace.
    2. It also helps to build relationships within functions, departments in the organizational hierarchy.
  2. Employees become more productive and action-oriented.
    1. Problems are fixed faster by those who have the most knowledge on the product.
    2. Finding and solving these problems is done more proactively since they will be ultimately responsible.
    3. This in turn fosters personal growth in the skill set required for quality.
  3. Distributing ownership of things across a team.
    1. This increases team bandwidth as fewer projects suffer from a single gate keeper.
    2. Increases the number of failure domains reducing impact when people leave a team.
    3. No one is blocked by “Rock Stars” who are seeking to carve out a fiefdom but other wise do not have strong expertise on the product.

 

When we put this together we see the clear benefits. All organizations have a subset of resources (people) who do not believe in taking any extra initiative apart from their usual work responsibilities. For them, it’s just completing the log-in hours sitting in their own comfort zone. Likewise, a lack of ownership increases the number of people who feel this way as they do not feel empowered to act. So, when we increase ownership we impact employees in the following ways:

  1. Motivation levels increase and become more aligned with the organizational goals and objectives.
  2. Employees no longer lose out in competition with a more aggressive and vocal pool of resources who love taking the spotlight.

This increases the talent of all resources and increases the productivity of underutilized resources for the betterment of the organization as a whole.

Furthermore, ownership provides the authority and responsibility to act, which, brings us to the controversial third part of that definition I wanted to talk about. Who owns something.

All of the benefits described only work if the “thing” [project, product, program, feature, etc.] is owned by a person or very, very, small group of people. If the thing in question is owned by a large team or department this will not work. To demonstrate this I ask, if you were suffering a heart attack and needed someone to call for an ambulance, would you prefer to be in a small room with just 1 or 2 other people, or in large open space with a hundred other people who can hear your cry for assistance? The naive approached is to assume that the more people around the more likely you are that any one of them will help. But this is not the case due to the diffusion of responsibility. In fact, you are significantly more likely to get help more quickly in a room of just one other person than in a stadium of tens of thousands of people. This is because no one is sure if they should be helping, or will they be in the way, or what happens if they do the wrong thing? How will this affect them? After all, there are so many people around, certainly someone else will help. However, if there is only one person in the room, they know they must act, and quickly, or you may die.
To bring that around to ownership, when a person knows they are responsible for the outcome of their work, only then will their goals align with that of the company. As they personally feel the cost of producing poor products and simultaneously feel empowered to produce quality products now, when they, the person most knowledgeable about the product/service in question, see benefit to doing so.
On the other hand, in a “Rock Star” culture the emphasis is forcing the creation and adoption of the new, then quickly divorcing yourself from that which you created in the past as those who use it suffer with ever changing contracts, poor performance, buggy implementation, or simply the requirement to use the product that does not meet their needs.

Even if no one is a Rock Star, you still cannot sustain core knowledge across a large team. This is because the effort to properly communicate this knowledge increases at a rate of N*(N-1)/2. Similarly, as the number of projects your team manage increase, the amount of effort an employee would need to invest increases at the same alarming rate.
As an analogy to explain this think of medical professionals. A brain surgeons and heart surgeons both know a ton of advanced medicine. Both will be on the hospitals surgical team.  However, if your are going in for heart surgery which one do you want to work on you? Sure, if it is an emergency and the heart surgeon isn’t available, at worst you would call in the brain surgeon – but it is reasonable to expect sub-standard results!

The traditional Agile way is to decrease the size of the teams, but this increases the burden on managers and creates silos. These silos block closely related knowledge and foster duplication of work, or worse actively block architectural changes. However, in a culture of ownership you are responsible for meeting the needs of your customers and fixing what you built regardless of the team size.

 

Management Frameworks

It should be no surprise, given the benefits, then that nearly all the popular management frameworks emphasize ownership. Be it ITIL, COBIT, ISO 20000, or even Agile. However, each does this in different ways.

COBIT really focuses on owner ship for compliance and accountability, but otherwise aligns with what I am trying to present here, every “thing” has an owner. And by owner, I mean a person is responsible.

ITIL has a broader base over its many sections but here ownership is usually defined by who holds the knowledge related to the particular piece of the puzzle. But as I have mentioned, knowledge and ownership, i.e. accountability, responsibility, and authority, create a positive feedback loop.

Unfortunately, Agile is weak on ownership, having only two owners, neither of which are individual contributors. The product owner is responsible for the business objectives, for the cost benefit analysis of what is done when. The scrum master is responsible for ensuring the product owner’s desires are achievable by the team. The problem is when you have a large, diverse, team that is responsible for many ongoing concerns, there is little room for responsibility, accountability, or authority in the hands of the individual contributors under the Scrum framework. This actually can slow down progress, as an individual contributor may see an issue, but at best they have the authority to create a ticket to be groomed at some time, that may or may not be put into a sprint, and may or may not be assigned to them, at some point in the future when they have lost most of the context anyway. Probably after a problem has already occurred because only then is the cost of not doing it most visible.
In addition, when you have a half dozen people on your team’s poker meeting is a nonsensical if only one or two of them have ever touched the product who’s repair or new feature the scrum master is looking to scope. This wastes time and decreases engagement which leads to other unhealthy practices, like skipping poker and planning all together. 
It is for these, and numerous other reasons, I propose a simple addition to help elevate the malaise that can develop in the face of these stagnant processes with a complementary framework to solve the ownership problem in Agile Scrum.

 

Ownership Implantation: The Rule of Two

“Always two are the sith lord, a master and an apprentice” This philosophy is not only good for rapidly taking over a galaxy from a superior opponent, it is a recipe for happier, more productive, and more engaged employees.

I have spent the last while extolling the virtue of ownership, but what happens when someone no longer wants to own a product, they want growth, they want change, or worse, they want to leave the company and take their knowledge with them? This is why you need multiple owners. Typically, a master and an apprentice. The rankings are somewhat important for the simple reason that, when everyone feels they are the smartest person in the room, nothing gets done. And also, the buck must stop with a single person. But this too can rapidly fester if certain rules are not put into place.

  1. Every thing (project, service, application, etc.) that requires work at any point should have two, or potentially three, subject matter experts (SME); a Master (primary) and an Apprentice (secondary). This is all ongoing concerns, not just new projects. So that program the team built and is occasionally used but has no active work ALSO needs owners. We cannot have feral, zombie projects if this is going to work.
    The exceptions to this is
    1. Any “thing” so basic that any generally qualified individual off the street should be able to deploy some “thing” with less than 20 minutes of focused training.
    2. We are not looking to automate or improve the process in any way.
    3. No one has any passion for this thing.
    4. The thing that needs work is not an ongoing concern, which is rare but does pop up from time to time.
  2. A manager should be able to ask any question regarding that project to either SME and get an answer. If the secondary on the project cannot answer the question the primary is not handling their responsibility and should consider having fewer projects.
  3. Project ownership should be evenly distributed. No one person can have more than 1.25 the average projects. Also, no one should have less than 0.75 the of the team average. This forces people to focus on their passions and for masters to train their apprentices, so they can move on. In addition to preventing people from being spread too thin it prevents gate keeping. Remember the whole point of this is to increase ownership, and ownership means autonomy and self-authority and this cannot flourish if one person owns everything. Ideally every person should have 2N/E things they own, either as a primary owner, or secondary owner, where N is number of projects and E is the number of people on a team. Preferably with a mix of highly active products/services and less active ones. And while some variation is allowed, and even necessary, it should be contained within the prescribe boundaries.
  4. People choose their projects based on passion.
    In practice this is only partially true. People will gravitate to projects they desire to learn from and projects that spark their passions. However, it is likely that any given project will have more than two people who want to work on it. It is up to the manager to take desires into account, along with skill sets, and business requirements, when solidifying the owners of each thing. But no one should be forced, perhaps incentivized, but never forced to work with someone, or on something, they do not desire to be part of.
  5. Mobility is also required. An apprentice should be able to switch projects as often as they desire in order to maximize their learning, or simply find a teacher they can learn from or a project that are passionate about. Unfortunately, a master can only move once an apprentice is ready to take over that project.
  6. A third person should be added to a project when the master is ready to give up their role to the apprentice, during which time the third person becomes an added apprentice.
  7. A master / apprentice (primary/secondary) pair cannot be static. Regardless if you are primary or secondary on a project you form a group of two people. Assuming a person works on multiple projects, which inevitably they will, this group should not be the only group a person belongs to. We want to avoid silos and have a natural flow of good practices and techniques, so a person should have multiple masters or apprentices spread across multiple projects.
  8. Every quarter someone (not everyone but someone) on the team MUST give up their role as master or apprentice on at least one project and move. It is likely people will choose to do this as new and interesting concerns are added to the product mix.
  9. A person may be master on some projects and apprentice on others. After the initial round of ownership, a person will always start as an apprentice to the existing project master.
  10. Meta project teams like unifying architecture, security, compliance, coding standards, etc. should have three equally ranked people to establish quorum. Each should be available for regular consultation for the design of other projects. These kinds of “things” produce nothing but documentation and help other people with their projects.

With these simple rules we can have every project owned in a healthy and productive way. And increasing ownership increases employee satisfaction, produce multiple subject matter experts per project, which increases project quality, and decreases time/cost of adding features or maintaining products.
It also has the side benefit of forcing managers to keep an inventory of supported “things” and how much time they consume. This allows us to focus on stable improvements, not chasing the shiny squirrel.