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.

Group Feedback Sessions

It’s that time of year again… Spring reviews.

Now I have been on teams that are great at giving and receiving feedback, it’s adhoc, it’s frequent, and often immediately following the event that you are getting feedback about. I have also been on teams where this wasn’t the case. I think that unless you have that culture of continuous feedback on your team from the start, it’s quite hard to break that mental barrier, and can feel like getting blood from a stone. It can be a daunting and intimidating prospect to even ASK for feedback let alone give it.

Last week I rolled off a client that I had been at for just over a year, and this was one of those teams that we were pretty terrible at giving each other feedback. As the spring reviews were looming, and providing the kick that we needed, as well as my roll off and a couple of other impending staffing changes, we thought let’s just do a group session and ‘get it over with’.

A couple of people on the team had done group feedback sessions before. I was new to this. I felt a mixture of excitement and fear at the prospect of sitting in a room while everyone tells you what they think of you…. The team has been together for a long time now though and we are all quite comfortable with each other. We were also a reasonably small group of 8, so that made it seem much more manageable.

Our new PM Eric, carefully crafted a format for us to follow and he roped in a couple of our ‘people people’ (HR) to facilitate.

To keep the sessions constructive and focused, there was prep work for each of us before the session. We would each spend time self-reflecting on

  • What I bring to a project
  • What are the greatest challenges I face in the performance of my job.
  • What specific actions I am taking or plan to take to overcome my challenges.
  • What are my goals for the next year

Putting our thoughts into a Google Doc that we would then share with all of the team. It’s a fascinating learning experience to see what is on each person’s radar. Each of us would then add points for each person that we felt weren’t already covered, especially focusing on what they bring to the team. The focus here is that it’s easy to know what you are not so good at, but not always easy to be able to reflect on what you are great at, and what others think you are great at. If someone has identified something that they think they should work on, there is no need for the other 12 people on the team to point it out too. Also gives everyone a chance to process their feedback in their own way before talking through it, and saves you trying to collect feedback while people are talking to you. (because who can ever remember!)

Now to the actual session. We allowed 3 hours, after work, offsite, with pizza and a couple of beers. It was exhausting but well worth it. There were 4 parts to the session.

  • Icebreaker – Everyone taking turn to tell a funny story, either from the project or within the company.
  • What are you great at? – Each person take turns to talk about the 3 things that they are proud of/have done well. With everyone else adding points to it. For me it was actually the most uncomfortable part! Turned into an hour long love fest but well worth it.
  • How can you get better? Speed dating style. Everyone pairs off and spends 3/4 minutes each talking through the feedback that they got from that person and any other questions/clarifications that have come up from talking to others. Until everyone has spoken to everyone.
A MAJOR benefit for me of choosing to do it speed dating style and not round table, is that you have broken the barrier of one on one feedback. Now that you’ve talked together in this setting, conversations will happen naturally during pairing, coffee breaks etc.
If people know what you are working on when it comes to your personal development, they will be able to provide much better and more useful feedback when they see something happening, and encouragement when they see you getting better.
It was a great session that I’m really glad that we did. In a couple of evening’s work, all the feedback we needed for our reviews was collected, and we learnt a lot about each other and ourselves. The team committed to doing one of these more formal sessions every quarter, with the one and one stuff more often. I’m not sure how well it will be kept up, will have to ask them in 6 months or so!
Some lessons:
  1. Think about the format that you want to use beforehand, and prepare. Communicate this plan with the team beforehand so that they can prepare themselves.
  2. Fill in your own feedback and other’s BEFORE the session
  3. Talk about any hopes and/or concerns that the team has beforehand so that they can be addressed and built into the format.
  4. Get someone NOT on the team to facilitate the session.
  5. Hold the session offsite (Incase client discussions come up, also to provide  ‘safer’ environment).
  6. It is the facilitator’s job to ensure that session stays focused and constructive. Push where necessary.

Give it a try and let me know how it goes!