Anne’s Top Tips for Enablement – Lessons from being an Agile Coach

Often at ThoughtWorks we will be asked to help train and up-skill the client’s team members whilst we co-deliver projects. We call this enablement.  These are some lessons that I learnt whilst being an agile coach and from having 1:1 coaching sessions with clients, that are worth thinking about if find yourself on the “consulting” or “coaching” side of a relationship.

Tip #1: Understand the expectations from the start

What kind of engagement is it?

Think about what kind of situation you are in.  Are you there to  “just deliver x”? Are you working closely with a client team?  Are you there in more of a coaching or consulting capability? It could be something anywhere along that spectrum. Wherever you land on that spectrum there will always be some degree of influencing, education and support of the client needed.  You will need to bring people along with you, whether it’s a single stakeholder or a team of developers, this to me, is enablement.

Pick technologies and techniques that the client can support

More often than not, we will be leaving behind some software or hardware that we are expecting the client to be able to maintain or support to some degree.  Really think about this when picking technologies, designing your software, and evolving your process.   How different is this to what the client has done before?  What are their core skills in, and what’s reasonable progress from that?  Often the newest, coolest techniques are not going to be easily learnable in the time that we have with them. Think about your choices and don’t leave them with something they won’t be able to look after. Do the right thing by the client.

Talk about it often

At an account level, make sure you talk about what degree of enablement you are expecting, ensure that it’s planned in from the start, and check that you are progressing, revisit decisions and assumptions regularly.

Tip #2: Put yourself in their shoes

Work on courage and confidence

People’s confidence can often take a huge hit when they are transitioning to a new skill set. For example between waterfall and agile or from one technology to another. Until the person can work out how to adapt their current skills to meet the needed skills, they can often feel like they have no skills at all, they might feel they no longer have anything to bring the table and that they are the only ones feeling like this. Multiply this phenomenon by the fact that it’s not just one new thing thing they are experiencing, it could be their whole working environment, how they collaborate, how they contribute, the people round them and it can spiral quickly.  It is really hard to stay confident and courageous with all this going on.  At the beginning focus on doing everything you can to help people grow in confidence and courage, so that they can throw themselves into learning.

Consider learning agility

Learning Agility, the ability to learn, adapt, and apply ourselves in constantly morphing conditions, is something that as consultants, is a required skill. In some larger, more traditional environments, this is not something that employees have a chance to practice and develop often, so their learning agility levels might be quite low. This doesn’t mean they can’t learn, but that the process might be a lot slower that someone who is more practiced. It’s quite a different mindset, so think about how reasonable it is that we expect someone with lower learning agility to “just pick up” tens of new tools and practices at a fast pace. Really think about how patient you are being, slow down, cover basics and practice fundamentals often. It takes time to develop the skills of learning, but helping people build these skills can make such a radical difference in the future.

Show your vulnerability

It can be very intimidating to learn from an “expert”, someone might feel like this “expert” can do no wrong, that they never make mistakes, that they are always confident, that you don’t have anything to add.  Try sharing stories of times that you have struggled to pick things up, or situations you have felt scared in. We all feel unconfident at times, admit that to them, you’ll see a massive difference. Make sure to ASK for their input don’t just expect them to speak up without encouragement.

Make sure you cover the basics

Don’t forget to cover the basics, explain the dynamics and responsibilities when pairing, cover basic TDD and red, green, refactor, go into the finer details of how to write stories and plan work. Always remember to explain WHY. Keep repeating this basics, when you are new to anything it takes a lot of mileage and repetition until you start to understand the nuances.

Tip #3: Get to know the people you are working with

Build rapport

Rapport is one of the most important things when coaching. There needs to be trust and respect between both parties.  You might want to ask how they got into what they do, what their experience is at the company, find out what they do for fun, look for common ground.

Talk about goals and aspirations

Take time to ask and listen about what their goals and aspirations are, you are more likely to find you have a motivated pair if you can help find them opportunities that they would enjoy. One idea that someone had which I thought was great, at the start of pairing or at the start of the day the pair should talk about what learning or knowledge they want to gain out of the activity. This will help you work out when to take more time over particular concepts, and when it’s ok to go at a higher level of understanding.

Value them and their skills

It doesn’t matter what experience or background people have, everyone has skills to offer, everyone will bring different perspectives. Your clients will have the best domain knowledge, and they know their own systems better than anyone. They are software professionals, probably with a lot of experience. Value and embrace this diversity in thinking.

Open the feedback conversation

It’s important to create an environment where feedback is encouraged and accepted. This might not be something that currently exists, it is our job to create that space. Make it a place where they are comfortable enough to be able to feedback to you about how they learn and what helps them.

Conclusion

I hope that you have been able to take away some tips that you can apply in your next enablement situation.  Please reach out to those around you and ask for help, and make sure the team is talking about enablement and how it is progressing. Developing the empathetic skills I’ve talked about above will make a huge difference in creating a successful enablement situation.

Speaking Event – The Science of Diversity

Myself and two of my colleagues will be talking about the science of diversity and whether diverse teams are better than non diverse teams….
If you are in London please come along! http://www.thoughtworks.com/events/science-diversity
——————————————————
ThoughtWorks would like to invite you to meet with us at an upcoming event. Please share!
 
ThoughtWorks deliver software to people with ambitious missions and we’re looking for talented techies to join us. We value diversity and on 18th November we are hosting an evening with our CTO Rebecca Parsons who will be taking a scientific and technical approach to answer the question ‘are diverse teams better?’ 
 
There will also be an opportunity to network and find out about careers with ThoughtWorks. 
You can register here – we look forward to meeting you!
Please contact Katie kpartridge@thoughtworks.com @katielisa52 for more details.Inline images 1

Beginnings of an Agile Coach

So, I’ve not blogged in a while…  I’ve been at a new client since January as an Agile Coach, it’s been quite the learning curve,  leaving me little mental space left for blogging!  To celebrate my return I have got a new blog theme. Pretty!

Agile Coach?! What is one of those?

Teacher, Instructor, Coach, Trainer, Encourager, Enabler, Questioner, Confidente, Counselor, Advocate,  Life Coach…. (Not sure all of those are words) in all things Agile. Helping the team achieve the best that they can and create and deploy high quality software as quickly as possible.

Most ThoughtWorks projects have some inherent enablement as part of their remit. Projects where we deliver software alongside the client normally involved an enablement piece, teaching and mentoring them as we both deliver software together. Showing the client how to do TDD, continuous integration etc. The main point here though is that we normally are the ones setting up and driving the process that the team follows, and sometimes show whilst ‘doing’ when all else fails.

The enablement part had always come quite naturally to me, I’m fairly reasonable at communicating, people tend to naturally follow me,  I’ve been working in Agile environments for 5 years now and my ski instructing background gives me a leg up on the teaching aspect.

For a while now I had been asking to go on a pure coaching/enablement gig thinking that I’d be quite good at it, and how different could it be?!

Very. Turns out, when you don’t have full control over everything, as well as the ability to jump in a ‘just do it’, it’s not so easy any more! As with any new project it always takes me a while to settle in and really feel confident about what I’m doing. It’s been a very steep learning curve, but I can happily report that I’m now really enjoying it.

What advice would I have given myself  back at the start of this enagagement?

Learning about Learning

I’ve spent quite a bit of time learning about the ways that people learn. Funnily enough this is where a lot of the things that I learnt whilst learning to be a ski instructor were very familiar. Acknowledging that different people learn in very different ways and that you, as a coach, have to adapt your techniques and approaches to suit each kind of learner.

I also spent a lot of time learning about the Dreyfus Model, which is a model that talks about how individuals acquire skills and the different techniques that work best for people depending on where they sit on the Dreyfus Scale http://www.learninggeneralist.com/2009/08/using-dreyfus-model-to-engage-people-in.html

I still have tonnes more to learn about learning, but I find it fascinating. I think it’s something that you really need to invest in if you want to become a great coach.

Being coached on how to Coach

I was lucky enough to be working with a small group of very experienced consultants. Not only could they share their ideas and war stories with me, but I felt comfortable getting feedback from them. They made an effort to be approachable and open, so I always felt like I could go and ask them questions, and validate the ideas I had and the approaches that I wanted to take.  It’s important to have that supportive group as you are starting out. Unfortunately I don’t think that anyone can teach you how to be a coach, so it’s really a question fo getting regular feedback, failing fast and going with your instinct.

We all have own style

Following on from the point above. It’s important to recognise that we all have our own styles of coaching and teaching. What works for one person in a situation may not work for another person in the same situation. When you are starting out it’s very easy to watch other, successful coaches and think, “Wow they are amazing at XYZ when they do ABC, therefore if I do the same I will be successful too”. Not true in most cases. Every time I tried to emulate someone else I was never as effective as if I just went with what I would naturally do. For example one of my colleagues is great at asking very probing, thoughtful questions to people to get them to think about what they are doing and the affect that it has. I thought, ah brilliant, downloaded a bunch of  “consulty” type questions and tried them out on the next person I spoke to. I was so busy trying to remember the right questions in the right situations that I wasn’t even listening to what they responded with, I also sounded distinctly un-genuine. Turns out that when I stick to my normal mannor of talking to someone and asking they things, I achieve the same outcome but in a different way.

Pace

Things will move a lot slower than you are used to in a delivery situation. People take time to learn and change, and this shouldn’t be rushed. Step back, take a breath and let things happen in their own time. The sooner you come to terms with this the more enjoyable the experience will be.

It also may feel like things are a lot slower because you are not the one thats physically doing the work anymore (writing code, doing analysis etc.). That lack of control will seem like things are going slower, but they are probably not that different.

Don’t get overwhelmed

When  you are first in an Agile Coaching environment you will like see infractions of what you think is “proper Agile” everywhere you turn. Especially if it’s a new team and they are brand new to Agile. You might feel like there is so much to work on that you don’t know where to start. Recognise that you can only do one thing at a time, and some things may be easier to work on than others. Try and find the thing that is causing the team the most pain and start from there. We also found that trying to work on something that they are already ‘doing’ will be harder than introducing something that is brand new that will really help them. You are much less likely to get a defensive reaction.

I found just keeping track of the behaviours I was seeing, coming up with things that I thought might help, and then reveiwing them daily with some of my colleagues really helped. It’s also worth thinking about  whether or not a task is worth the effort that it requires. The image below is a Impact/Effort Analysis chart that you could use. Rate the potential exercise/piece of work on this scale and think about which order to then tackle things in.

Effort/Impact Analysis

Reflections on my last gig…

I have just rolled off of my project of the last 8/9 months, and thought it was a good point to reflect on my time there.

Once again I had an awesome time. I learnt a lot, met some great people, made some good friends, watched people grow, and most importantly contributed to a great product. There were a lot of highlights, too many to name them all, but here are 5 I picked out.

Non-hostile atmosphere.

The whole team was respectful of each others ideas and skills, open to change and new ideas and a lot of fun. One of the first projects where change has not been outright resisted and refused. As consultants I can see that it’s natural that our presence on a team can cause hostility, but we’re here to help, honest! This lead to a much more productive and more pleasant working environment, allowing people to try new things and bring their ideas to the table.

From the moment that I got there I felt like there was space for my ideas and people were ready to listen to them and give them a go. Wonderful feeling.

It sounds like a small thing but its really not. When a team is willing to change the way it thinks and embrace new ideas, everyone can contribute to that success, it’s not just the persistent, rebellious people (which is often the role that ThoughtWorkers have to take) who can make change happen but there is space and support for everyone to have ideas and change the way things happen.

Feature Leading. Our tech lead was comfortable letting some of us lead a few of the features, which was great. I got to look after the online sales feature we added and an emailing piece. It wasn’t so much as an official thing but more an organic thing. As well as being involved in writing the code, I helped with analysis, spent a lot of time talking to the teams that we were integrating with, kept an eye on and helped out with testing and deployment and generally provided a consistent technical vision for the whole feature. It’s great experience for people who are moving towards becoming a tech lead, without the pressure and responsibility for being the actual tech lead. I found it really energising to have such focus on one feature.

Coaching / Mentoring.

I went to a leadership academy event recently where one of the speakers said that you are not a great leader unless you have pulled people up with you. That has really stuck with me. What kind of leader can you claim to be, if you haven’t helped other people learn and grow?

The client had a female developer on their team who had never met another female developer before she met me. She is also very talented and passionate about technology with some great potential. I spent a lot of time with her coaching and mentoring, and this relationship will outlast the client engagement. I get a massive amount of satisfaction helping others reach their goals and look at the world in different ways. Also being able to provide the support that people need to grow.

I also tried quite hard to make sure that I was giving “in place feedback” i.e. immediate feedback in a situation, mostly whilst pairing etc. One of the other TW Developers on the team commented that he heard me doing this often and learnt a lot from just listening. Need to do this more though. Especially when there are more “heated” pairing situations.

A positive attitude can go a long way.

Generally I’m a pretty positive person, and I got a lot of feedback about how this changed the whole atmosphere of the team. It only takes one consistently negative person on the team to start bringing the entire mood down. Remember this and try and look at situations positively and with energy.

There is more to being a developer than just writing code for the story you’ve been given.

As a developer, you are responsible for getting features that help the people using them into the hands of the people using them. It is your job to push back if you think requirements don’t make sense. It is your job to ensure that the software you are producing is of a good quality. You should not just be coding whatever you are told to without questioning anything. So as well as writing code, be part of the requirements definition, the testing, the conversations with stakeholders, with the people that are deploying your code if it isn’t you. Software that is not in the hands of the users and being used is useless.

As well as advocating the above, I spent some of my time on the team championing and facilitating the retrospectives, launching lunch and learns, being part of the inception, and countless other things that weren’t strictly in the remit of a typical “developer”. For me this is normal as they are things that I enjoy, but I don’t think this was the kind of developer that many of the client devs had met before! I hope that it has influenced them a bit.

Technical highlights

No-SQL datastores (Dynamo DB)

JavaScript testing (Jasmine)

JavaScript frameworks (KnockoutJS)

E-Commerce

In process browser testing (Plasma)

Feature driven development (Starting with high level feature tests and build down)

Analysis of logs (Stash)

Releases every week with blue/green deployments

Our tech stack:

Written in:

C# .Net, Javascript (KnockoutJS, JQuery), Razor, MVC4

Dependancy Injected with:

Unity

Package Managed by:

NuGet

Tested with:

Moq, Plasma, Selenium Webdriver, NUnit, JMeter

Data Stored in:

SQL Server 2012, Dynamo DB

Deployed on:

Amazon EC2, IIS,

ORM Layer:

Linq to SQL, Dapper

Deployed and Built using:

DBDeploy, MSBuild, Team City

Monitored with:

Stash

Coded using:

Resharper, Visual Studio 2012

…..and probably others that I can’t remember off the top of my head.

GHC 2012: The Grace Hopper Celebration of Women in Computing 2012

This years Grace Hopper Celebration of women in computing was held in Baltimore, in the US.

I once again got the chance to go and it’s always an amazing event. This year was the biggest ever at nearly 3700 attendees, made up from students, academia, industry and some military.

It was a very busy year for ThoughtWorks there too, each year our presence gets bigger and this year we did a tonne of interviews and assessments. Hopefully we’ll find some great women.

As always the dance party was my favorite part. Not just because I love dancing, which I do, but because it epitomises everything great about this event. The exhibiting has finished so we can all relax, the organizers can relax, you have well over a thousand people dancing like no one is watching, celebrating being who they are. So many smiles, many new friends have been made. And just a great electric, energized, and optimistic atmosphere. I love hearing first time attendees overflowing with excitement and drive as they tell me what an amazing experience it was for them.

I didn’t get to attend as many sessions as I would of liked but I did manage Nora Denzel’s keynote and a sessions called How to Influence Without Authority. See follow up blog posts.

Next year will be in Minneapolis, and I’ll be taking a break from the conference as i’ll be busy getting married over that time!

Moving again…

Today is my first day back in the London ThoughtWorks office since I started here nearly 4 years ago. I have just transferred back here from the Chicago ThoughtWorks office.

It’s pretty crazy being back in the UK. I’ve been away for over 3 years now, and much longer since I lived in England proper. It took me a few days to figure out which way to look while crossing the road, how to use chip and pin payment and that left over coins actually are worth something so I should figure out what they all are. People may think that I’m crazy but I missed the food here too…

I’m quite the nomad at heart, and Chicago (at 2 years) is the longest that I’ve lived anywhere since I was 16. So it was time to move on. Tim spent time at TW UK 3 years ago and loves London and I am new here!

One of the great things about TW is that you have the opportunity to move around. So far London, Calgary, Chicago and now back to London. My TW network is ever growing and it’s nice to bump into people I know all over the world, and pretty much everyone I meet knows someone that I know, so it’s normally easy to start up a conversation.

I was quite sad leaving Chicago, I’ve made some great friends and have really come along professionally too. It almost feels like I’m starting a new school coming to TW UK. However it’s been great to spend some more time already with the other half, as right now I’m not travelling every week, and I look forward to making lots of new friends and exploring London.

My first project will have me commuting to Sutton (Surrey) every day, so I’m hoping that will give me more time for blogging and reading etc. that I really missed while driving to Peoria once a week.

Hopefully we’ve found a place to live. Pictures will come once we’ve moved in. We’ll be in the Angel Islington area.