BrandGhost

3 Undervalued Software Engineering Skills to Master

There are many software engineering skills that aren't just mastering leetcode. In fact, many of them aren't specifically technical software engineering skills! Here are 3 undervalued skills that you probably never even consider when it comes to software engineering! Check out more Dev Leader content (including full in depth articles with source code examples) here: https://linktr.ee/devleader Social Media: YouTube: https://youtube.com/@DevLeader TikTok: https://www.tiktok.com/@devleader Blog:...
View Transcript
programming in software engineering are not the same thing you can program things without being a software engineer but programming is just one of the things that software Engineers have to do in this video I'm going to cover three different things that I think are very undervalued skills that are required by software Engineers before I jump into that list I'd love to hear from you in the comments what you think the top three skills are for software Engineers so if you watch right to the end of this video I'll share with you which skill I think is the most important for you to focus on as a software engineer the first skill that I want to talk about is communication especially within the last couple of years if you consider that a lot of us are working remote communication is more important than ever but what do I mean by communication well in reality software is written in teams we're not writing programs in isolation because you're going to be working in teams this means that you're going to be communicating with different people the different people that you might be communicating with could include other programmers on your team perhaps a product owner project manager or product manager depending on the company you're in and the types of roles that they have you might have to communicate with your manager or other people in leadership positions and of course depending on the scope of your project you might be communicating with all of these roles across other teams so why is communication so important at its core communication is us being able to deliver information and receive information this means that we need to be considering the audience that we're sending information to so if you consider the different roles that I listed or perhaps that people are on your team or on a different team this may affect the way that you want to communicate with these people what types of information are important for you to deliver to those individuals what types of information do you need from them to give you a quick example of what I mean by this if you're talking with other programmers on your team perhaps you can get into the details of some of the code base and actually refer to different methods different challenges that you're having specifically in that code base even within your team the different roles that I mentioned those individuals might not even have that same type of experience or knowledge about the code base so you might have to find different ways to communicate that that information to them if you consider talking through a bug with someone on your team that's another programmer you might be able to refer to specific lines of code walk through some of the details of that talk about different revisions in the code base and how they've changed but perhaps if you're talking to one of your product managers your own manager or even other programmers on different teams you might have to change some of your messaging because they might not have the same context that you have or other programmers on your team have if you were to send an email about this if you were to write up two pages of all the details about the code you changed perhaps the only people that are really going to find that effective are the other programmers on your team if you needed to communicate some of the findings that you had or how you solve problems in that specific scenario you're going to want to have to tailor that to the audience that you're trying to send that information to so some of the details that are really specific about the code you might need to Omit and find a different way to relay that information communication is such a big topic and such a crucial part of software engineering that I'll have to follow up with another video with more detail about this this but just a quick note you're going to want to consider things like asynchronous and synchronous communication meetings emails instant messaging and other formats of sending and receiving information to effectively communicate with the people you work with now very similar and almost overlapping with communication is collaboration as I mentioned before in reality we're building software in teams you may find that you are writing different parts of the code fixing bugs delivering features partially in isolation But ultimately the team has to work together to deliver value in the products that you're shipping so what things do we need to factor in when we're talking about collaboration so as I mentioned before communication does tie into collaboration so when you're thinking about the different work streams that you're doing and how you're making progress on that you're going to want to tailor how you're communicating that to the different individuals on and off your team collaboration is going to include things like being able to help out your teammates when they're stuck on different challenges likewise when you're stuck you're able to turn to your teammates for them to help you out as well ultimately collaboration is going to help turn your team from a group of individuals to a team that's operating as a cohesive unit a highly collaborative team is going to come together and deliver the most valuable pieces of the software or the service to customers within a period of time when the team is working to collaborate together that means that they're going to understand priorities together and be able to shift gears to make sure that they're focusing on the most important things and then working together to make sure that those important things are delivered on time with high quality of course collaboration is something that I will need to dive into more detail on so I'll be following up with another video on that but when it comes to collaboration you're going to want to think about some of the following things having transparency across the team about the status of the work that's being delivered where you and other teammates are stuck or blocked by certain things how priorities might be changing based on product and customer needs and even less from a strategic point of view and more of a tactical point of view when you have different things like pull requests code reviews or calls for help that might be happening during the day the you can have the support you need from your team the third skill that I want to talk about in this video is about understanding business value from what I've observed in my own experience I think that sometimes this comes a little bit more naturally to people and for other people they need a little bit more effort to put into this so when I speak about understanding business value the point that I'm trying to relay here is that when you're making changes delivering code and actually spending time on things there is a cost for you to be spending time making changes and there's going to be a perceived value for those changes being delivered so really understanding business value is really important from a prioritization perspective depending on the company and the different roles it can be working with software Engineers you may find that there are other roles like product managers and project managers that can really help you understand the business value and the priorities however I think that if you want to improve as a software engineer you shouldn't just be relying on these other roles to dictate to you what the priority is and I'm not suggesting that you try to fight them on everything but what I am suggesting is that you take the time to actually understand the value the priorities and the business needs so that you can align with those rules and the rest of the business so that when you're making changes and having to think on your own about what's a priority to focus on that that alignment allows you to focus on the correct things a quick example might be that maybe you want to go spend time refactoring an entire test framework because you feel that it's developed poorly however if the business is already claiming that they're going to be sunsetting some of that functionality and that code might be retired very shortly perhaps even if that code really sucks maybe that's not the right thing to be focusing on another quick example is that maybe you have a favorite technology that you want to introduce into the code base just because it's your favorite and you're happy to work with it and you think it's exciting does not necessarily mean that it's the right thing to be going to include into the product the better your ability to have alignment with the business needs the more autonomy that you're able to have and make decisions that actually are congruent with the direction that the business wants to go so as a software engineer that will mean that you can focus on the more important parts of the software the technology choices the Investments for Tech debt and all up start to align the direction of the code base with the needs of the business in summary those are three skills that I think are really undervalued when it comes to software engineering because I don't hear a lot of people focusing on them what I do often hear is that people are hyper focused on programming and building up those technical skills and unfortunately the things that I just mentioned end up following later on in their career I think that if you start to focus on these things early on and keep them in mind that can really help jump start your ability to be a better software engineer thanks so much for watching please give the video a thumbs up and subscribe to the channel as promised here's the skill that I think is most important for software Engineers to focus on

Frequently Asked Questions

What are the three undervalued skills for software engineers discussed in the video?

In the video, I discuss three undervalued skills for software engineers: communication, collaboration, and understanding business value. These skills are crucial for working effectively in teams and aligning technical work with business needs.

Why is communication important for software engineers?

Communication is vital for software engineers because we work in teams and need to convey information to various stakeholders, including other programmers, product managers, and leadership. Tailoring our communication to the audience ensures that everyone understands the project's status and any challenges we face.

How can understanding business value improve my work as a software engineer?

Understanding business value helps me prioritize my work effectively. By aligning my technical decisions with the business's needs, I can focus on delivering features that provide real value, rather than getting sidetracked by personal preferences or less relevant tasks.

These FAQs were generated by AI from the video transcript.
An error has occurred. This application may no longer respond until reloaded. Reload