Developer, Project Manager, Resource Manager, and now Chief Operating Officer. Having been in the IT industry for more than 10 years and advancing through these positions have taught me a few key things I wish I knew when I became a developer and then a manager. I’d like to share them with you here.
Being a Developer
Be Patient
Creating with your own hands is a lot of fun. But usually, things don’t work out on the first try. It’s crucial to have patience; there’ll be a lot of back and forth, googling and searching through documentation and source code to then figure out the implementation of a feature. The most gratifying work comes from non-trivial challenges that can take up to weeks to figure out.
Ask for Help
Don’t be afraid to ask questions and request help. It’s easier and faster to ask rather than rewrite your code after the wrong implementation. A small typo can wreak havoc in the software and asking for help in debugging might save you and your team a lot of time.
Make sure you’re clear on your assignment and ask questions that are crucial to understanding it. For example, one of the most common features of web development is adding a payment option; when assigned to the task of adding PayPal, ask if you should implement other methods besides PayPal or if this addition is being considered in the future. This will help you get the assignment right.
Stand Your Ground, but be Open to Feedback
When you choose one of the many paths to achieving the same result, be ready to advocate your solutions with valid arguments. At the same time, however, be open to feedback and consider your team members’ input. If you change your mind, that’s ok.
Don’t Overcomplicate
The most simple solution is usually the best one. Know when to cut corners and simplify your work. It’s also good to break tasks into smaller issues and solve them one by one, or else you might get stuck trying to solve too many things at once.
Being a Manager
More Context is Better than Less
When asking for a task to be done, it’s better to give too much context rather than too little. Give as much information as possible. It will show your team that you thought this through, and it will also leave little to no space for misinterpretation.
Explaining my decisions and giving the full scope for changes has shown to be better for the team and their work. More often than not, people would agree and be glad about the new solution or change.
Done is Always Better than Perfect
If being a developer taught me to not overcomplicate, then being a manager grounded me on that belief. The result should aim for a software that works, where the feature does its job and doesn’t lag. Make a choice and go for it, don’t try to do it perfectly on the first try. There will always be a way to make it more elegant, with better architecture, etc. Focus on what’s essential.
You’re Here to Help the Team, not to Solve Issues for Them
As a former specialist, there will always be the temptation to give away the solution and get it over with. But your main job is to support and help your team grow, and learn by doing and failing; it is all part of the process.
When giving up resource management and training the new person, I often felt compelled to solve the puzzles myself. However, encouraging them to solve it by themselves, with my support, has proven to be more effective in the long run. Our resource management specialist is now better than me at creating strategies that work for both, our clients and team members.
Positive as well as Negative Feedback
Giving feedback is a big part of the job. You might want to skip the negative feedback or downplay it to not discourage the other person. Don’t. You can be honest about negative feedback and still be polite. It will be hard for the person to hear, but it will help them to grow and will later be thankful.
Differences Between Developers and Managers
The key difference between these two roles is the mindset. As a developer, you are the maker, the creator, and the builder. Your main focus is to fulfill your tasks, to code, and to ship them. You collaborate with a team but still focus on your own responsibilities.
As a manager, you are the support, the guidance, and the helper. Your main focus is to help others do their job, help them solve problems (technical or not), and help them grow. You teach them to work together and nurture them by pointing in the right direction, so they can learn for themselves.