Testing In Production and Observability

Saturday, 1 February 2020


Test (Expect, Alert,  Degrade, Observe) In Production

Are you are looking to ship new code to your users faster, and want to know how to manage the resulting testing in Production?

I was hit with the same challenge when I joined Tes Global a few years ago, where I need to shift from an 'automate, inspect and ship' process to a continual release method that required a level of testing in Production.

As I've worked through this I've been blogging on their engineering site about my exploration of Micro-service monitoring, Testing in Production and Observability.


Set Live Expectations on your Micro-services
Testing in Production means setting Expectations of correctness onto your live system.

Are your Micro-services collaborating correctly?
How to test the collaboration between you Micro-services is happening correctly in Production.

Production monitoring and team work
Make your alerts accurate, exceptional conditions that your team can act on fast.

Building Reactive, reporting systems
Make your system resilient by using Graceful Degradation and monitoring to not let down your users when broken code is shipped.


Mentoring conversations

Friday, 3 January 2020

At @tes_engineering mentoring is essential to how we work and grow.

Mentoring can vary a lot; often the key duties are:
  • 👂  Be a person to speak to and listen
  • 👐  Offer Tes Engineering support and comfort
  • 🧭  Help people navigate the organisation 
  • 🏋🏻‍♀️  Help people grow capability
  • 🎆  Celebrate success!
There is also massive value from being a mentor. You get to
  • 📤  Share your experience
  • 🏗️  See people grow and see how people grow
  • 👁️‍  Gain insight and empathy 🗨️

Mentor chats

Mentoring revolves around having frequent chats with the person you are mentoring. It might be a free style catch up, or follow a questioning structure. Maybe the right conversation needs structure to help with growth. Without a chat there will be no mentoring - it all starts there.

Conversations are dynamic. Mentors aim to choose a good format and adapt to suit the situation and the mentee's needs.  There are a couple of formats I've found really useful to lean on to get a chat going and to build shared knowledge and rapport.

Catch up style

Catch ups are great to keep remote and timezone distributed people in the loop
  • 🎁 Share what’s going on in your world / team
  • 🐢 See where the conversation takes you
  • 👂 Keep listening

Ask 4 questions

The 4 questions structure is great to help someone gain a different perspective and talk things through. It's my go-to choice.
  • ⚕️ 1. How are you?
  • 👍 2. What’s good?
  • 👎 3. What’s not so good?
  • 🧩 4. Is there something we have not talked about that we should?

Focus on growth and skills acquisition

Growth and skills based conversations are best when supported by goals or a direction.
We have engineering skills maps and 6 monthly reviews to help our people think how they would like to grow. Mentors then can assist in finding ways forward.
  • 🗺️ Look at progression and acquisition
  • 🛣️ Ask them about how to progress a step
  • 🚧 Discuss blockers
  • 🎊 Throw in a good challenge
I've found this style also works well for on-boarding and assisting new joiners learn about their role and how things function.

Why do I like these?

A key to helping someone grow at work is helping them feel safe and happy. No one learns much for long without these. Mentoring conversations should start by helping someone into this position.

Image

Beyond that, you, as a mentor need to build rapport and trust, so you can be told and tell critical information that might otherwise go unsaid.

Active Listening is a great way to do this, as well as a way to learn and guide without dominating a conversation.

Image
(credit to ccl.org)

There's a lot more to the power and value of mentoring, and there is a lot of depth in way you can use conversations to support guide and grow. Hopefully these patterns will get you started.

Flexing to the demands of your team / Coaching for growth

Tuesday, 1 January 2019


Its about adapting your style to get the best out of your people to help them engage and to learn - to gain new skills and competence. Adapt to the growth of your team.

Take time to look at how and what your team are learning. Adjust your style to support and to amplify the right things.

"adapt to growth" - lansberg

ask or tell, the arena of working out how much to direct and how much to let them discover for themselves

The Coaching Spectrum

There's a spectrum of choices of how to engage in coaching coversations


The coaching spectrum guides my choice of how to interact with someone learning. It gives a perspective in the choices to make when approach learning with a team, but also puts new demands on me to be able to adjust my style to the situation. It helps me plan how I will interact, rather than reviewing why something isn't working.


The spectrum offers of series of choices: from the formal directive manner to aiding understanding. Consider the spectrum being from a Sergeant major style orders to a more Zen approach to renewal and learning.

Being directive is solving people’s problems for them. Its allows people to gain context and basic learning; for example training and shadowing. Helping understanding might involve sharing the articulation of the goals and planning or guiding them towards selecting their own 'good enough' solution.

Mentoring exists in the middle. As a mentor you are both bringing your understanding and some conversational skills to bear on the situation by offering advice and asking probing questions. But your skin isn't in the game, in the end it’s for the mentee to decide.

Selecting a style

I work to choose my style to suit the situation and the person: should I tell them what to do, or let them discover for themselves. I consider what can be gained when I make choice: time available, context, and learning potential

In a situation that needs tight risk management or control, or working with a group of beginners, a 'Push' coach-lead style can help focus on initial learning, progression, giving structure. Whereas a skilled team will feel stifled, frustrated and need freedom to advance and become autonomous learners.

The Pull end of the spectrum is where coaches get the most value, but you sacrifice direction and control. Peter Hill, a coaching expert who popularised the model, has this to say:

"There is no doubt that the most effective end of the spectrum to work at is the non-directive as you are working with the client’s own map and reality... However, having said that it is probably the most difficult end to work at"

Flexing to the demands of your team

Working across the spectrum requites different skills. The more instructive/directive side needs knowledge of the job or domain to guide and get trust. In the less directive 'Pull' space, you'ld be asking questions of the person, so using rich reflection skills and awareness to avoid slipping into instructional ways. There is value in being able to pick the interaction style that is right for a team and its members.

Being aware of your default styles and stretching your skills can help you be able to pick the right one.

I instinctively work towards the 'Pull' space, and I see a lot of value in producing not just a result, but also the ability to reproduce it. This can be my downfall as sometimes people don't have context for wide decision-making, and need a safety net and structure to aid their learning. Other times people would like me to state an opinion and get the job done. I have to assess and adjust, and have come to understand that sometimes people do welcome being instructed in what they need to do, whist they safely gain the experience and perspective that I have.

Navigating the Coaching Spectrum

I’ve found the Coaching Spectrum powerful when thinking how I might navigate along it as part of a learning plan.

Whilst at a client I had a requirement to work with a team and a Tech Lead for 8 weeks. My aim was to leave them a legacy of thinking and practices. I wanted to inspire them to work in new ways, not to make them reliant on a coach.



Knowing that I needed to be interacting differently at the end of my time there I built up a plan of interactions that challenged me to transition from 'Push' to Pull - transferring the leadership of the team, and aiming for the team to own their own problem solving rather than just doing.

Can you get your team from zero to hero?


Talk about release?

It’s often easier to direct than to wait and to question, missing the small failures that spark learning. The coaching spectrum highlights that there are critical times to be firm and direct, but for a learning team you also need to built towards giving room to fail.

Next I want to look at how I like to structure the building blocks of learning, and the value of pulling it into context by learning by doing.


This was the fifth part of a series on Leading and Guiding Groups.

Adjusting Your Interaction Style

Tuesday, 23 December 2014

In a dynamic environment a team needs to be continually learning. A team that isn’t learning well risks making ill-informed choices, waiting to fail.

Take time to look at how and what your team is learning and help them focus on the right things. Adjust your style to support, amplify and adapt to the growth of your team.

Learning in a team environment

Whilst learning happens naturally whilst doing, it’s worth asking: what's your team learning and is the team learning well? With this information you choose to can engage with the team and help them with their skill acquisition and knowledge sharing.


There’s a simple participation model of skill learning I like to use: 'See one, Share one, Lead one' (adapted from the medical school learning model). Key for me is it’s hands-on nature and how it helps to generate conversations through questions, guidance and feedback. Conversations engage people in learning. Either as an expert or a facilitator, your conversations have a huge effect on the learning that happens.

Leading and Delegating

Wednesday, 15 October 2014

A team that relies on its leader rather than learning to run itself is a team that's likely to fail. 

Building self reliance in your teams means they can work independently. In order to do that sometimes you need to build will and sometimes build skill.

The leader's choice: Facilitate or Direct

We have a choice when leading. Support the team and their abilities to get the job done, or to direct, using our experience to guide the team.

Sometimes there is the need is for direction and focus, declaring the goal and how we'll get there. At others, the capabilities to get the job done are there in the team, all that's needed is support or a little structure.

“Facilitate where they can, lead where they can’t.” is guide that keeps me on the straight and narrow. It helps me to make a key assessment and a decision: do I get out of the way or do I show them what needs to be done.

Of course it's not always that clear cut. It takes time to get to know where a group has great capabilities and give them the space to act. Even harder is to look deeper into the relationship and work out how to grow that independence.