In our current day and age we work with a variety of different people. Some of us work with an office full of engineers that are all extremely different. Some of us work remotely and connect with people across or even outside of our own country. At times engineers become too focused in on the small picture of what work they do and become less cognizant of who they are working with and the traits of those people.
Building and maintaining a strong engineering team relies on the trust and relationships that exist on the team. There are delicate tolerances to everything that need to be kept in a constant balance. Understanding and respecting the traits and differences between all of the members on the team is critical. Let's talk about some of the areas where engineers can sometimes differ greatly.
How Much Work
There are some people that are the early birds, and others that are the night owls. There are some that dedicate their life to the craft and spending 14 straight hours pounding a keyboard is just another day in the office for them. Others are the adventurers and they feel their outside life takes a higher precedence, and they are in for eight hours a day, no more no less. There is nothing wrong with which you choose to be, but as a team member one needs to be sympathetic to how other people on the team choose to be. It is when some people feel a sense of superiority over others because they feel that their amount of time spent supersedes another's and they are better because they spend more time behind a keyboard than someone else. Contributions to a team are not measured in time spent, but in overall value to that team. Time spent is not indicative as to what someone is worth to a team. As long as someone is providing a healthy amount of time and contribution to a team, what does it matter if they are doing the bare minimum in terms of time?
What We Know
There are talented individuals all over with varying degrees of experience and talents. While being a member of a team we should take the perspective that the members of the team are a trove of information collectively, and only collectively will the team succeed and advance. Members of the trove might have valuable knowledge in one area, while others have a complete lack of experience, and it should be on the burden of the team to make that person great in all areas. If you have a team made up of 4 individuals and 3 are proficient at let's say Docker, and 1 isn't, you have a weak link in the team that needs to be strengthened. Don't deprive that person of the projects and knowledge in that technology, help them understand what that tech is and what it means to the team, and now that member is more productive and a better/more valuable engineer because of the sharing of knowledge. One of the key things to remember is that we should never be upset with someone else on the team because of some type of knowledge that they lack, because inevitably, that person will need to share some of their knowledge with you. In the end it is all about sharing.
Some people have the uncanny ability to understand something the first time they ever see it and retain it. Others have to go through a series of repetitious cycles in order to get something engrained into their mind. There are people that can teach themselves anything, while others might need to be handheld a few times to learn something. There is no right nor wrong or better or worse in this case. As a team, there should be a focus on wanting to share knowledge habits. If we all teach each other something it not only makes for a stronger team, but it also gives the individuals doing the handholding experience in mentoring and teaching, which can be a valuable quality when bringing new engineers to the team. Always remember that no matter how intelligent you or others are, we all have our own pace and different ways we learn things, and we have to respect and acknowledge that.
Where I Lie
How much I work I do varies quite a bit. Sometimes I give my 8 hours and I am off to my personal life, and sometimes I see the need for me to work 10 plus hours to finish something. The majority of the time I am a 15 pieces of flare, bare minimum kind of guy, mostly because I value my live and sanity.
I typically do not program outside of work because I have too many hobbies. I have enough hobbies that I could probably lose a few of them, but as it turns out, I am more addicted to old rusty cars and working on my house than clacking the keyboard in my free time.
What I know also varies. I do not consider myself a pro anywhere. I am a clear sufferer of Imposter Syndrome, and think that I live in mediocrity while programming. Sometimes I surprise people here and there, but I don't feel that I am better in any one place than another. I do however have the open personality that I love talking to others and sharing my knowledge and experience. I think that is one of the main traits lacking in engineering. If you can make someone else great with your experiences, not only is it rewarding, but you make the team and people that you work with better in the end.
My brain speed varies based on coffee level in my system, complexity of what I am looking at, and overall experience with what I am dealing with. Sometimes I get frustrated when I do not understand something and I give up entirely too quickly, and sometimes I understand something in a snap. On a team, I think that most people will not understand anything and everything that comes across their desk, but if they're on a team that values its members, there should always be someone there to guide them and lift their brain speed in that area.
In the end it's all about being corny and the "sharing is caring" mentality. Engineers sometimes need to be more focused on the positives about the career that they are in and how they get to work on interesting things with talented people rather than dwelling on the negative aspects of their coworker's traits. Let’s all strive to be the good samaritan on the side of the road rather than the person that is judgmental and brings out the insecurities in others.