I have been reading a lot about having Empathy towards others, how it make me confident, happy from inside and have a really good culture inside or team. If I go and search google with Empathy. This is what wiki says
Empathy is the capacity to understand or feel what another person is experiencing from within their frame of reference, that is, the capacity to place oneself in another's position. Definitions of empathy encompass a broad range of emotional states. Types of empathy include cognitive empathy, emotional empathy, and somatic empathy.
The Full Stack Buzz
I don't know how many of you know me really well, I work as a Full stack developer primarily focussed on (ASP.NET CORE, Azure, SQL Server, React, Javascript. CSS, HTML). Our Industry are going through this Full Stack developer buzz in the team or organization. We are currently going through Full Stack transition in our own organization where our CEO explained us what industry is expecting from the developers these days and how we have adapt to the upcoming trendz where companies are looking for multiple skilled engineer who is trying to contribute in every field of tech and giving the best returns their customer.
As most of the healthy software engineering team are adopting to work in Agile where the team is cross functional and helping each other to achieve the bussiness goals and own the product. As the agile focuses on every person in the team helping each other despite of not being expert in the tech. Agile discusses about having a dream team where everyone is helping each other to me which is sometimes flawed.
We started from an era where we had specialized UX, Front End, Back End, DBA, Infrastruture, Admin, Qa and Network engineer in our teams. slowly- slowly with advent cloud and different trends coming up. These set of jobs are being cut off and new job tilles like Cloud Enginner, Devops, FullStack dev etc are hot in the market. Having the more specialist backend engineer in the team result in being idle because not that much work in the particular sprint and this is something Product Owner are really worried that devs are idle. Every team is looking for Full Stack where everyone is helping each other despite of that tech stack not being their area of expertize. But going deep down there is it really easy and happy to be Full Stack developer where you are trying to catch a trains (Front end train (Javascript, React, CSS, HTML etc.) BackEnd Train(ASP.NET CORE, Microservices etc.) Cloud(Azure, AWS etc.) DB(Sql Server, Cosmos DB etc.) that is running to fast. I personally find sometimes struggling with finding the balance despite reading so many blogs and books just to deliver my best work.
I work in a team where we have majorly specialist backend and front end engineer and 1-2 full stack dev. There is where I struggle a lot being the Full Stack developer because I am trying doing lots of stuff, providing bussiness values to my customers, helping my team members with whatever knowledge I have. I have read The Art of Doing Twice the Work in Half the Time by Jeff Sutherland and tried to emphasize the knowledge with my team.
I learned few things
- Having a cross functional team working in every tech stack is not easy.
- Many Devs are trying to just survive and fear of their insecurity of not knowing or asking questions.
- Some think they know it all and don't care about other people suggestions/opinions.
- Peer Reviews were easy till I started doing that
- Having a competition inside a team is not good because people try to weigh each other down and that is not good sign of healthy team.
- Work is suppossed to be the place where you should feel confident and happy, we spend a huge amount of our life time doing our job and if you don't feel happy or good about your team. Its time to think twice.
Full Stack to me like in a single picture
This picture actually summarize my current situation sometimes where I have to switch the gears to work on different products shifiting my skills to provide more business values to my customer.
But where is Empathy in all this?
I know you must be thinking why the hell I am talking Empathy out here where there is no significant relationship that we can see over here. I was recently working on Front End task(React) after working on other backend tasks of totally different framework which I usually do for past 2 sprints and then coming back to again front end task. As I said earlier I work with different team members working from different companies where I found juggling or struggling with because some doesn't want you succeed they just want you to fail that is where empathy comes into picture where we should try to to see it from other person point of view. How can we make them fall in pit of succuess that they feel energized and are happy to learn and grow and not being judged every day.
I am always right and you are always wrong
In code review task I have seens this a lot of time where other team member are having a huge argument fight in pull request where one is trying to say I am the one who knows and other is trying to defend or just accept those respecting other person opinions. People giving harsh comments, rejecting the Pull request, reviewing your Pull request despite knowing that other person is alrady doing that makes me feel how insecure they are with other person that they are constantly trying to bring people down. We always talk about extreme empathy where we like to say that we should put ourselves in the other person shoes, but we never can. But it's is really important to help them, I know it's difficult and it takes a lot of energy.
Recently I have gone through this a lot where I personally don't want anyone to be because it sucks, we don't have any coding standard document which I think I need to work on so that no one else find themselves in this argument again.
You are being judged everytime you implement something and other person doesn't want to do peer programming, help you but yeah he is there to comment on your pr always just to put you down.
Pull Request can sometimes be personal where you have team members who want you to fail or they just want you to show that they are much smarter then you in that and It will always will be like that there will be someone in the room who will be much smarter then you, I mean it Always. That is where I say empathy is really important when you are working in a big team. I know it takes a lot of courage to spend your time and energy helping each other. That is where I agree to Scott Hanselman where I found hime speaking about Empathy and why Kindess matter.
Kindness is truly caring about others needs, fears, hopes, and dreams. Being kind sometimes means putting yourself out there in hopes of helping someone else. Ultimately kindness is a deep caring for all human beings.
Having the empathy will help us create a really good team environment where no is afraid of being dump, I personally think that is what Jeff was talking in his book The Art of Doing Twice the Work in Half the Time.
I have felt this to my core of my heart which has personally motivated me to improvise my self in terms of tech, understanding my team members, I have personally trying my best to polite and motivate people rather then you being rude.
Start with Postive
There is always something that you should appreciate people with.
I think it make easy for all the team member to share the knowledge, I might have learned something new may be from my mentor, community. colleagues or may be from someone else. Main purpose is to make life of my team member easy and how we can create a healthy environment where everybody feel to fall in pit of success rather then failure.
Everyday where I feel proud of what I am doing rather being insecure of being judged by someone, who is just there to push you to put of failure.
As you are working for a team you have to think from their perspective as well. Just want to conclude that technology will come and go and world is just round.
Few things I want to try and keep on improving:
- Authentic
- Be the kindess person you know
- Be ethical, protect your brand/team
- Have fun, creativity comes out
I hope that you agree that Empathy the skill I want to have to be become a good software developer.
References:
Building-Careers-with-Empathy-with-Scott-Hanselman
https://dev.to/jnschrag/10-lessons-learned-conducting-code-reviews-5di6
https://dev.to/jnschrag/10-lessons-learned-conducting-code-reviews-5di6
Top comments (2)
This is a good reminder for me. Empathy is the skill I should always use first and foremost.
I've needed it in every job I ever had, no matter the field or discipline. I should have used it in every conversation, discussion or argument I've ever been invited to, no matter the context or interlocutor.
Yet I keep failing at it. I truly admire and have immense respect for a lot of the people I interact with. And yes, this includes strangers I have never met. But more often than not, when I talk or write about something, I fail to tell them so by action or word.
I need to listen more, understand more, appreciate more. Not doing these is my biggest failure.
Thank you very much for this post. I'm still young(ish) by today's standards, but I keep wondering if I'll leave this world without ever mastering this skill.
Thanks David, I know it's difficult and costs a lot of energy. But results are worth trying.