Seven Blockers to Become a Senior Software Engineer
In this article, I will cover what 7 habits you might have in your work that stop you from being a real senior software engineer and what does not allow you to break the glass roof.
CV-driven design
I have often seen people who try to apply new and fancy technologies to real products without relevant experience. That might not bring any real value, creating another technology stack inside one company to maintain and dilute the quality of implementation. This habit is dangerous because you get used to checking technologies in an environment where it is extremely hard to replace something and must be maintained long-term.
How to improve? You might play with any technology you wish while working on your pet project or propose to analyze and compare different appropriate technologies first.
“We cannot do that!†mindset
We all have different backgrounds, and sometimes, people grow up in an environment that trains learned helplessness. People stop believing that finding a solution to any situation is possible, and when they see complex tasks, they retreat.
How to improve? I’m not a psychologist, but replacing “We cannot do that!†with “I don't know how to do that yet†should help from my experience. Also, try to stop thinking about resources and imagine Ideal Final Result. This practice will help to jump much closer to the solution.
Technology-focused decisions
Sometimes, we already know what technologies we will use, just hearing about a new task and slightly forgetting to think about actual requirements. However, every new or changed requirement needs to design a solution and check for stack compatibility (even if you don’t do that).
How to improve? You can just change your development workflow to make sure that you at least think about alternative options and validate that your tech stack is still relevant. Use checklists to not forget about that activity for every task.
Poor communication skills
This is a pretty wide topic, but it is obvious that you cannot efficiently mentor, explain your point of view, and collaborate, having weak communication skills.
领英推è
How to improve? Communication skills are hard to train. Unfortunately, it is not about one framework or something like that. Start by receiving feedback about the results of your work and collaboration with you. Eagerly request this information, but stay open and patient for what you hear.
Single-task responsibility
Suppose you have insane hard skills but don’t want to think wider than one task. I have bad news for you. “Thinking wider†is essential for every senior engineer.
How to improve? Ask more questions on planning. Ask to make your draft plan for implementing a complex activity and delivering value on time.
Do not learn from mistakes
Good for you if you could predict all potential project problems, but probably not. Problems will occur, sometimes because of mistakes. If you do not fix the root cause, the problem will impact your results repeatedly. Fails are usually allowed, but you must learn from them.
How to improve? Start from retrospectives and post-incident reviews. They will help to identify root causes and improve your results.
“Let’s Rewrite†thinking
Fairly often, I heard: “It is too complex to change. Let’s rewriteâ€. People forget that creating something new is a ton of extra work needed to launch and extra risks of incompatible implementation. Also, this approach weakens your discipline, and you lose an opportunity to practice strategy.
How to improve? Prepare for changes, for evolution. Improve existing components instead of introducing new ones. Think in advance about your future architecture for different scenarios. Try to balance flexibility and relevance (real need of something). If you see that you can make something to support evolution, do that.
Other Resources
Every week, I write some thoughts regarding software engineering from different points of view. Subscribe not to miss: https://weekly.devtower.io/