After successfully delivering a recent project, my Client Principal shared that he believed that I needed only a small push to move up a grade, and be considered a senior consultant at Thoughtworks. This was great feedback; however, I was not sure what had changed.
I definitely had to find out. I was doing all the things a developer is supposed to do, but hadn’t really considered what made a senior consultant different. I picked up stories, (maybe looked for a pair depending on the structure of the team), attended standups, worked through my story to the end, communicated progress on the card and communicated any blockers. I did not know how to make my work and contributions visible to others. I just got on with my work and hoped that someone would notice that I deserved a grade change.
I started to question what it takes to be a senior consultant, and what I had learned along my journey. I wanted to share these learnings so that others might benefit from them also. Here’s what I discovered:
Confidence shouldn’t only be derived from the knowledge you have
Most of the projects we get staffed on are new in terms of domain, tech stack, and environment: there is always a lot to learn. This is usually the point where confidence is lost because the knowledge gaps are so significant. Most importantly, we do not want to fail at our core job. As a developer, core skills are built on first principles and these usually apply in software delivery despite the tools you choose to use. Being a senior is not defined by how strong you are technically, as long you know the first principles, and are confident applying them.
Growth in soft skills
Being a senior involves knowing who to communicate to and how to communicate to them about the different aspects of the project. It is also important to be able to articulate what kind of support you need from the people that you work with. It might be the specifics of what you are working on that you are seeking feedback on. These specifics might include the gaps that you have as a technologist or as a teammate, or as a subject matter expert. It might also be about the process of delivering a software product. A senior should be comfortable to have his/ her team help guide his/ her growth.
It is also important to be able to call out any gaps that you have observed in your teammate's skills or capabilities for the good of the project and their personal development.
Sometimes things might not work as expected on a project; failed proof of concepts, flaky tests or failing to deliver working software. Making a mention of these things in a constructive way is just as important as celebrating the successes.
Share some of your experiences with those you work with
There are many practices and rituals that we introduce to the environments that we work in. For example, pair programming, stand up meetings, retrospectives, and iteration planning meetings.
It is true to us that these practices have worked for us and it is very easy to forget that it took a whole learning process to trust these practices. Sometimes what it takes to convince someone to join you in your practices is having them “walk a mile in your shoes”. Being senior means sharing some of your own experiences, For example, what was it like for you pair with someone for the first time? What did it mean for you if that practice did not work for you at a particular moment in time? It is about a more consultative approach, to understand the concerns of the people you are introducing the new ways of working to and try to bring them along with you.
Trying everything is not ideal in every situation. You have gained experience and subsequent knowledge to eliminate some things that might not make sense because of your past experience. Also, this experience you have gained, allows you to know what you need to know or where to get involved in order to be successful on a project.
Reading, learning and sharing your thoughts about certain things helps in widening your knowledge about the different options and introduces vast approaches to a problem. In the end, a senior should be able to guide the decision of picking out the best approach, or a better combination of all the options presented by the team.
This journey has been about making my goals known to my colleagues and getting their support; especially from those that have made it to being seniors. Conversations about my intentions and how to achieve my goals are the order of the day. Am I progressing? Can I be better? I may not always agree with the feedback given, but part of progression is learning how to deal with such and be able to iron out the kinks in the way I approach issues or how I work with my team.
Fulfilling your daily responsibilities and expecting the world to notice is a really long call. If people on your team know what you are working towards, it is easier for them to give you relevant, and actionable feedback. It also helps them give you some of the work that you want to grow in; which can go a long way in growing your profile among your teammates and the organisation at large.
In conclusion, there is always room for improvement for a technologist, in terms of technical knowledge and the awesome tools, platforms, languages, frameworks, and techniques out there. However, your maturity is manifested in how you handle situations, how you bring your team and stakeholders to the same table and create understanding, and most importantly remaining open to learning, particularly because you want to be a good example for those that look up to you.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.