United Kingdom: +44 (0)208 088 8978

What actually is software coaching?

We're hiring Software Developers

Click here to find out more

In my previous post on coaching, I gave some high level benefits that you can expect to receive from coaching. From this, I'm hopeful that you gained at least an implicit insight into what it might involve, but it's worth talking about it a little more as it often does get misunderstood (particularly as it's not especially common in the industry).

Tactical and strategic goals

Something that, as humans, we all suffer from is the desire to achieve immediate gains - things that provide us with an immediate positive feedback cycle. This is by evolutionary design and simply human nature, but in today's world this can also stop us building value in our teams and organisations. In other words, it's in our nature to focus on short-term gains - that affect you positively today - as opposed to performing a task or habit that might cost you today but will benefit you positively tomorrow. Look at this simple matrix below:

Often what we see are customers of ours looking for help in the first quadrant i.e. important and urgent issues. Think about this for a minute. What do your daily tasks look like? How much is based on servicing your immediate needs - typically short term, tactical issues. Whilst fixing these issues give an immediate "boost", they usually don't address underlying issues.

Shifting focus step-by-step

We encourage customers to instead focus on investing time to address elements that will deliver true value to your team over the medium-term: items that are generally located in the second quadrant (important, but not urgent). As an example, how many times have you read up on a blog or new technology and thought to yourself "Yes, that'd be nice to do - but I just don't have the time!"? That's what I'm referring to.

Here are some examples of IT issues, and some possible tactical and strategic solutions:

Problem Tactical Fix Non-Urgent / Strategic
Bug report received Track down the bug and fix it Learn to work with types; Write effective unit tests
Our team is too slow to meet deadlines Outsource development / hire contractors Can you upskill your internal team?
My app is slow Find the bottlneck and fix it Learn about Benchmark .NET; put in place continuous metrics
Something is wrong with my Azure service Get an external expert to help out Learn about Azure diagnostics, app insights and logging strategies
The business are constantly stressing us! Do what they say to get them off your back Understand what your business's core needs are and how to improve the relationship to a win-win
We can't learn because we're constantly firefighting Don't learn new things Learn how to put a strategic delivery process in place

Solving the items on the right side of the table will help ensure that ones on the left don't occur as much, or if they do, are easier to migitate against.

How do I start?

These sorts of questions can appear to be difficult - and potentially expensive - decisions to make. The good thing is, you don't have to do everything at once. Instead, you can gradually phase this in and decide how much time you wish to invest in long-term goals as opposed to tactical tasks.

For example, you may decide to spend just 15 minutes a day on a long term goal; assuming an 8 hour day, this equates to allocating 3% of your week towards that goal. Let's say you want to ramp this up to 10% - no problem; that means 45 minutes a day (or roughly half a day a week). Using a numbers-based approach like this can allow you to make decisions without emotion, and then judge whether you're sticking to them - and what the benefit is - over time.

How does a software coach help?

Since our team are dedicated towards F#, .NET and Azure, we of course are able to help with immediate tactical needs as required - for example, you may be blocked on a specific element of SAFE Stack or need to know how to get the best out of Azure Search. However, this isn't where we want to spend the majority of our time, so we'll also aim to put in place a strategy for you to invest in yourself over the medium and long term. When starting coaching a new customer we put in place a few commitments that the team sign up to and work towards:

  1. Together, we build a three-month plan with high- and low-level goals at the start of every quarter and have the customer commit to it. This plan is reviewed and refined on a regular basis.
  2. We have you commit towards reserving an amount of time towards strategic learning and improvement on an ongoing basis; if necessary we'll help you schedule your time to do this.
  3. We allocate a "budget" of time which we split on tactical fixing and strategic improvement.

In short, a coach is not a short-term goal or fix (although the benefits can usually be seen within the first sessions) but a commitment to building and investing in an internal capability.

How can I find out more?

If you're interested in finding more about how software coaching can help you, feel free to drop us an email either directly or through our Coaching form.

Look forward to hearing from you!