Side activities of a software developer

It always amuses me how movies depict people who work in the IT industry. In general they show somebody who is a technical genius but socially very awkward, or they are a hacker underground magician who can break into any complex system just by typing very fast. Just think about Internship, Silicon Valley, The Social Network, etc. While there are people who are like that, in my opinion somebody who has a long and successful career in IT probably also have very strong communication skills.

Think about it, we work in teams and our daily work depends on others, most of the applications that you hold dear were done by a handful of dedicated individuals who knew how to work together to reach a common goal. Let’s go through a few non-technical activities in the order in which you generally start doing them.

Progress reports: Most of the companies have internal reporting software (especially outsourcing companies) where you will fill in some details about the work that you did on a daily basis. Even if that is not the case, chances are you work in a team, and in your daily stand-ups you will need to tell others where you are with your current task, and if you are struggling with them.

Estimating your work: Your managers will come to you and ask, how much time does that take? First time they asked me I’ve shrugged my shoulders while muttering something like “well I never timed myself”, but it is a very legitimate question and every software developer should strive to estimate accurately as much as possible.

Leadership: When you become very proficient within a project, you will be asked to take care of others. They either just joined the team and they need some guidance throughout their ramp-up phase, or they are junior developers who need to be kept an eye on and helped to grow. Keeping an eye out not only on how well they perform their tasks but also how they feel on the project.

Holding trainings: You will be asked to share your knowledge. We all received valuable guidance and in my opinion it is our duty to share ourselves when it’s our turn to honor the people who helped us. You will need to hold presentations and speak for multiple hours in front of an audience. You will also quickly learn that it’s not that easy to convey information in a way that is easily understandable by other even if you are a subject matter expert.

Holding interviews: Every company needs fresh blood and people look for career opportunities frequently so you will be asked at some point to validate if somebody has strong technical skills and if they would be a good addition for a specific project or not. Please make sure if the day comes that you are not living out your frustration on others when you are in charge.

Project Estimations: Especially if you work in outsourcing you will be participating in project estimations where you will be helping your company to clarify requirements, and place a correct budget and time estimation on a given project. You will need to exchange e-mails and ask questions in clarification meetings so you cannot be shy, i’ts very important to understand and foresee the risks and issues that are a bit more down on the road.

Architectural Proposals: You will need to decide what components are needed and how information is flowing between these components, what data will they own, under what metrics they need to perform. As you can see it is very important to convey your thoughts in a structured manner (with aid of diagrams) in order to convince your client to adopt this plan or explain to the Team what the need to do. Your negotiation skill will also come in handy.

Sales Support: You company will pursue to win new clients and projects, and it is one thing to hold presentations for a handful of coworkers or for a bigger crowd in a public presentation, and another thing to know that they positive outcome of this effort lies in your hands too. You will feel the pressure and it will take time until you will be able to be comfortable in this situations.

Phew! I probably forgot a few things but it’s easy to see that there are a lot of situations where your soft skill will be very important. Most of the people I know slowly decreased the time they spend in writing code and they feel lucky when they have time to write code. I’m currently around a 50-50%. Whats your number?