Copy
Logo

September 2022 Data Newsletter - Dependencies

article: Dependencies | news: New Website, Flight Level Days

Dependencies

Spend any time in companies building products with multiple teams and you feel the pain of coordinating those teams. I see day in and day out the uncertainty that dependencies add to forecasting work through those development networks. It makes little sense to me that we strive and argue about estimating the individual pieces of work that typically take a few days of hands-on time, and totally ignore the weeks and months of idle time in our processes where we struggle to collectively combine that work into a delivered product.

I see these problems in Agile’s doctrine regarding dependencies.

“Just cross-train teams with all the skills they need to deliver in isolation”

This quote assumes that the only type of dependency is based on a skillset that lives in another team. Something a good re-org and skill-sharing endeavor will fix. This isn’t wise. Today’s software products are assembled using many technologies. Even simple websites nowadays require HTML, CSS, JavaScript (and Typescript to make them manageable), and dozens of third-party libraries, not to mention the AWS or Azure infrastructure, logging, and analytics frameworks - shall I go on? OK, I will - training and building customer support, billing, legal for the privacy statements, translators for the content in multiple languages. You get the idea. You can’t and shouldn’t look to avoid dependencies in such a complex environment. But you shouldn’t have dependencies where they can be avoided either. I’d like to see “Cross-train the teams on the skills they need for EVERY feature that the team will build, and make sure we manage the rest of the dependencies better.”

Do

  • Cross-train team members on the skills they need for EVERY (or almost every) typical job that team does day to day (cross-skill the nurses)

  • Manage dependencies better for “sometimes we need” skills so as NOT to bloat the team with one-off work where expertise matters (keep the brain surgeons compartmented)

  • Read and share Team Topologies and Dynamic Reteaming

“Identify Dependencies During Release Planning (using red string)”

A common scaling framework that is best known for large diagrams and expensive certification training, promotes connecting work using red string where there is a hand-off dependency (see the picture above). Even if you spent considerable time identifying these dependencies - NOW WHAT! I guess they put everyone on the same page as to the hand-offs, but this does nothing about reducing them, and ignores a whole set of dependency types, like "we need something”, “we need to learn”, and “if we do this, we also need to” dependencies. If you are going to laboriously identify this narrow definition of construction-order dependency then I suggest doing the following.

Do

  • Consider construction-order dependencies, but challenge the teams’ to reduce hand-off times of partially deliverable work

  • Make sure work is prioritized in a visible way so that hand-offs are started in a value-enhancing (cost of delay reducing) order - NOT all red strings are equal, make some pink!

  • Also, probe for other dependency types, see below.

“Don’t have dependencies at all”

You need them. They change, so the best you can do is reduce the ones you had yesterday…. And, compartmenting some skills gives you economy of scale, a higher expertise level where failure must be avoided, and reliability (not everyone should have access to production servers and administrative passwords!).

How Do I Approach and Teach Dependencies?

Here are a few snapshots of my approach -

  • There are four types of dependencies, not one, and you need to consider all of them in some way -

    • Things we need others to do before we (the typical one Agile manages)

    • Things we need to learn before we start/do

    • Things we need to have before we start/do

    • Things we will also need to do if we start/do this (update training, android & iOS, etc)

  • Dependencies leave historical evidence of frequency and impact as “Blockers”

    • Blocker is “Something couldn’t be started or finished that we need today”

    • Dependency is “Something that will inhibit us from starting or finishing something we need tomorrow”

  • By capturing the Frequency and Impact (days lost) of historical blockers we can quantitatively assess which blockers (tomorrow’s dependencies) should be fixed.

  • Clear prioritization of work is necessary for other teams to start the right work

  • That our goal is to create a process that allows the work to be started in the order we NEED

    • Rather than “the only possible order is” - choosing work that AVOIDS dependencies at the expense of customer value, and means those dependencies are NEVER fixed…

  • Sometimes a little more communication at the right time is all that is necessary to halve the pain.

I stress that it’s a continual journey, not a one-and-done reorg that will improve flow in scaled organizations the most. There are no easy fixes, but there are quick wins if you know where to look.

I run instructor-led private workshops on dependency management, and also have self-paced training on this topic, reach out and let’s chat.

What are some actionable things I can do right now?

  1. Start tracking blockers. Cluster and count the days lost due to some common cause, for example, “firewall changes needed,” or “missing images/text”

  2. Start asking questions about the four types of blockers during planning. For example, “Do we know how to do this yet?” “Do we need a new VM for testing?” “If we do this for Android, do we also need to do this for iOS?”

  3. Create touchpoints between teams that commonly need help from each other; make sure they share prioritization of the epic or feature being delivered so the right work gets unblocked first.

Private and On-Demand “Got Dependencies” Workshops

Flight Levels Day

I’ll be presenting at this year’s Flight Levels Day. Flight Levels is Klaus Leopold’s contribution to the world in scaling Agile the right way - From Agile Teams to Business Agility. I’m excited to be part of this year’s program in two ways -

  1. Presenting an introduction to dependencies and launching a Flight Levels specific on-demand Dependency training

  2. Presenting a half-day workshop on Metrics

For more information, go to their website -

Flight Levels Day - My Session is on Dependencies
Flight Levels Day - Workshops - My workshop is on Metrics

New Website - On-Demand First Decision

For many years I’ve had instructor-led training on metrics, forecasting, and scaling Agile. COVID obviously changed how we deliver training, and we all “learned fast” how to do online workshops using Miro and Zoom. Having done a few dozen of each course now, my script and exercises are pretty consistent (I’ve refined the messages and content), and also my attendee count has decreased (I’ve exhausted the low-hanging fruit of friends :)).

I realized that on-demand training is better suited for my material. But I still want the monthly touch-point. So, this is my new approach -

  1. On-Demand training offers the theory and exercises at your pace, in your location. This level-sets everyone on my theory and practice.

  2. Monthly “Zoom” calls for each training allow questions, answers, and discussion. These calls will allow some instructor-led components.

  3. Joining any course makes you part of my “Data and Forecasting Community” where I can share new articles, thoughts, ideas, and lessons - AS CAN YOU. This community will be the continuing education component.

I think we need all three components to be successful, and I always felt like I deserted people after my training. This on-demand approach keeps my connection with you alive - for both our interests. Let me know your thoughts. PS. It’s going to take me a while to get everything on-demand, until then I will continue monthly and private instructor-led versions of the popular workshops.

New FocusedObjective.com website