A while back I posted about how to join a new team, be it in the Digital space or just generally. I want to explore another approach to joining a new team.
I studied Computer Science and Cybernetics in my undergraduate degree, and cybernetics is all about looking at the natural world and seeing how we can apply it to our digital world. Also, it's about how we can integrate them, and it is with this lens that I view the world around me.
Over the weekends I have been flexing my crafting hands and have been making several dining room items from wood. This made me remember this saying "Going with the grain", but also made me think why we say it.
There is a saying when doing woodwork, and that is to "go with the grain". This means that any type of action, be it sanding, planing, or cutting should be done with the direction of the grain. The effects of going with the grain are noticeable, but as well as all these tasks becoming easier, most importantly, they become more effective.
The grain of a piece of wood refers to the direction that the wood fibres run, when the tree is alive and growing the grain runs from the roots to the tips of the branches. This is where it gets most of strength and flexibility from - a theme that I believe translates from the natural world.
So when we work with the grain, we're saying that we're working with the strength, the ease and the efficiency of the material.
Joining a team is very much about going with the grain. That doesn't mean to say we agree with everything they're doing and the way they're doing it, but we're working with them to increase the strength, ease and efficiency of what the team is doing.
The act of cutting and sanding wood is to refine that piece of material into something usable and durable. The same is said for joining a team, through working with the grain and making small changes with the team you can, over a period of time, introduce better usability, durability and maintainability. No need for radical big bang changes.
When I joined a new team back in January, they wanted me to work on a GraphQL Node service. I went with all the best practices that were outlined by the maintainers of the product and implemented Federation. I demonstrated it to the team, they thought it was great, but they had a big concern that inevitably meant I had to revert it - how were we going manage this change going live with limited resources?
It became very apparent, very quickly, that I had gone against the grain, but also what this grain was. I needed to understand more about how we were going to manage this going live with limited resources. By reverting Federation we had lost plenty of nice benefits (ones that the team wanted, but not at the cost of higher maintenance), so we were in essence going backwards. This is fine, because we can still get the prep work done, ready for Federation. So from January I started to refactor the code to get it into a position where we could use Federation, and when we are ready as a team to take it on, we only have to make some more small changes to take advantage of it.
I saw plenty of opportunity for changes and knew they would benefit the team. I needed to go with the grain first, make smaller changes and understand the challenges the team were facing. As it stands, Federation still hasn't been given the green light, but the code is poised and ready for that change -still following all the other best practices.
Joining a new team can be tough, and is a journey in itself. It takes work from both the team and the member joining to make it work. But, there are always little things you can do with your approach to ease the transition.