Development Team Leadership : First Steps Part 9

Bottle Neck

Identify Bottlenecks

It’s important to be able to take a top down view of your team and it’s bottlenecks, internal and external.

bottleneck.jpg
Bottle Neck

External

For example, the inputs to your sprints “should” be nailed down when planning, you might need:

  • a data model definition;
  • web service schema;
  • validation use cases;

…the list goes on.

If they consistently aren’t appearing on time, this is a bottleneck hampering your productivity.  It’s important to raise the alarm.

Internal

Internal bottlenecks are firmly in your domain.

For example:

  • you may have a particular team member more suited to a certain task based on their past experience, meaning that any task requiring a certain skill set ends up on their lap.  This is an unhealthy situation for a number of reasons, getting hit by a bus factor being the most obvious.  Share the love, set time aside for pair programming to mitigate this where possible.
  • your old build server might be underpowered for the sorts of tests it’s now expected to run, upgrade it, optimise your tests, utilise nightly runs of the longer tests, there’s any number of ways to address this.

The examples are pretty immaterial and have been used a thousand times over, the important bit is the acknowledgement and communication that the bottleneck is there, this bit is your role.

The ability to set some of your “clock cycles” to enable your team to be more productive long term is a key skill.

Friendly Neighbourhood White Board

The whiteboard is your friend.  Early on in my current role I bought a desk whiteboard, a little bigger than A3 size for a few pounds (with a pen and a wall mount, if you’re that way inclined).

People learn in different ways, but from experience, explaining a problem or solution with a few labelled boxes on a quick diagram will make all the difference.

whiteboard.jpg
White Board

Source Control : Refactoring

As your project changes you should take consideration of the structure of your source control.  This is particularly notable if considering transitioning from a monolithic architecture to a more service or micro-service oriented architecture.

You’d likely have had the entire application in a single repository, maybe even solution.  That may no longer be the case, and in this situation it’s important to consider the ability to check out each service as a distinct development environment.  I prefer not to rely on checking out several services distinctly and managing dependencies between them in this manner, it’s a little too unscientific.  Each service application’s source and dependencies should be standalone.

Inherently, it won’t just be your Source Control that will be refactored; but it’s important to take into account how you will manage depenencies reflected in your Version Control System whilst making application change.

2 thoughts on “Development Team Leadership : First Steps Part 9”

  1. I definitely agree that looking for bottlenecks is key. We’ve optimised around plenty of them in our team, although external forces are still one of the biggest problems.

    I’m not sure refactoring the repo would ever be the first step I took. What did you notice to decide that was your bottleneck?

    Like

    1. Ah, refactoring the repo was a seperate point to the bottlenecks, could maybe make that clearer!

      It’s really more of an observation that when you’re refactoring your application(s) it’s worthwhile considering the way in which it will need to be reflected in source.

      E.g. we have a raft of small components and a seperate set of common libraries that we’ve been pulling commonality into. Making the code changes was relatively straightforward, but managing the transition, and keeping the whole thing afloat has represented a few challenges, with the end goal being that each small component be both developer ready in source and deployable in isolation. We’ve needed to think about the source structure and dependencies along the way, i.e. nuget, SVN Externals, but that’s not to say that all projects would encounter this situation.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s