I recently started working with a small startup as a lead developer. The startup world is new to me so I ask my local tech community for some advice and the following is a curated list of answers!!!
With any successful team, you must communicate! If you don’t understand something in the code, communicate! It’s important and fundamental that everyone on the team is heard out and informed of what is needed for any project that their company got them working on.
Pretty sure we'll hear Agile, kanban, TDD, and others here which are all great answers so let me grab the low-hanging fruit. Communication, so obvious but still out of reach for lots of folks. I was taught if you feel you're over-communicating but no one's complained, you're probably not. As a new developer, communicating when you need assistance, communicating wins (as appropriate), and even communicating job and career goals all serve to better the development team you're on. Top-down communication that prevents "gotcha" moments is invaluable and should be taught as a college course somewhere. It's also the trait that builds trust. Finally, as many tech companies and others work towards building more diverse and inclusive environments where everyone can truly thrive, open communication where people can speak honestly and deal with things deeply is a major step that can help that process along.
Be a teammate. I played sports growing up and being a teammate means being willing to work hard because you don't want to let everyone else down. Sometimes it means sacrificing your own effort and energy to pick up the slack for someone else (don't do someone else's job for them, but if your teammate is sick or out and they need help with something you can help with, help them). Be willing to teach others and to learn from others. We all have a unique perspective to bring to a team. Play your role and do a great job at it. Look at your day, and then try to look at it from someone else's perspective. If you saw your teammate doing the amount of work you have done in a day, would you think they were doing a good job or would you think they are lazy? When I look back on a day where I was lazy I get mad at myself because that is a wasted day, and wasted opportunity. Be a good teammate.
Stay current on what the other people are doing. Ask questions about the work so that you can understand it even if you don't need to work on that thing. You can't give advice if you don't know what is happening. Next you should make sure that you actually relate to your coworkers as people and not just workers. It is important for all of us to remain healthy mentally beyond just work, and having healthy interpersonal relationships benefits everyone involved, and helps the team to grow more collectively. Business people like to use the word Synergy which sounds like a buzz word, but basically just means that the team together can achieve more than they would separate. This requires trust and understanding between the members of the team.
I'd like to take the communication bit a step further through the hardest thing about programming is naming things and say that discussing complex programming topics is a skill that must be honed. It must be dynamic. Think if you can't explain it to a five year old then you don't know it well enough because you need to be able to carry on complex conversations with your dev team about the grittiest details muddied by all of the tech around you, and you also need to be able to have these discussions with semi-knowledgeable people such as your Product Owner and Manager, AND people that have NO OUNCE of tech knowledge that are providing the business demand for your product. These are VERY different conversations, and in order to be a successful developer long term you will need to have them. Those are 2 or 3 completely different vocabularies to describe the same thing, and not only that, you need to be able to describe things to in terms of tech value in one place and in terms of business value in another place. THIS IS HARD. If you don't get it at first don't worry, but you MUST hone this skill over time. If you want to grow as a developer it will be the thing that allows you to get assistance when talking to fellow developers (especially in person) because being able to talk and relay the information in such a way that someone understands the parts that they can grasp will be paramount in their being able to help you.
Quick Recap of the advice:
- Communication is key. This means asking questions, hearing everyone voices, and keeping everyone informed.
- Be a team player. Work hard, play your role, and be willing to jump in to help others.
- Create meaningful relationships with your co-workers and ask questions to understand the work they are doing.
- Be able to talk about your work to different types of people.
You can follow my journey on Twitter or connect with me on LinkedIn. I am a Front End Developer with a focus on React (web) and React Native (mobile). I volunteer with Code Connector as the national team Online Content Manager and a leader for the Memphis chapter. As always, let’s have fun and code.