12 ways to be an effective software engineer
Create small diffs and only ask the relevant team members to review them
It’s important to ask for feedback from your team members to review your code for every change you do. This will help you to grow & get different perspectives. But it makes sense only if your pull request is small enough with proper description, else you will always get LGTM.
Ask a lot of good questions before starting anything
It’s quite tempting to jump straight to the code & make a workable solution. But in this process, you might lose some important insight from your peers & also the chances are you will miss some important scenario or flow. So, it’s always good to ask as many good questions as possible before starting anything small or big.
“Remember, if you are not asking 5 why’s daily, then you are not doing your work correctly”
Write tests, which actually match the way the user uses your application
Whether it’s a unit test, e2e test, load test, or visual test, always write good tests which actually test the way the user uses the application. Also, remember 100% code coverage does not guarantee a bug-free application, but writing good tests will definitely give you and your team more confidence.
Break big tasks into smaller tasks
This is one of the most important productivity tip you can learn. Breaking your big task into meaningful & enough smaller tasks will keep you motivated and helps the team in getting good visibility. It’s highly effective to list down & plan your top 4 priority tasks in the morning.
Step back to retrospect & see if anything can be improved
It’s easy to get lost in the routine work and occupied with the bug fixes, feature development, discussions and meetings. As a result of this, at some point of your time you may feel dissatisfied, demotivated and it can be a problem for your career growth. To solve this, just take some days off to do some self retrospection and find opportunities or problem that you are passionate about, & devote some time to solve or improve it.
Not every day is your day
Sometimes, you will encounter some setbacks in your proposed solutions or you may feel stupid in front of others while discussing your opinions and suggestions. This will demotivate you and will decrease your productivity, as you might constantly think about those mistakes and opinions. And let me tell you, that everyone goes through this, whether they are smart or someone who has just started.
Remember that this is completely fine & normal. The trick is to learn from your mistakes and keep moving forward.
Move fast & move slow
Move fast and smash things to feel motivated. And sometimes opt to move slow when you really want to dig in & understand how things actually work, which eventually makes you faster in the future.
“Move fast to get things done, but move slow to get things done in a right way”
Measure your impact
With every change you and your team plan or releases to production, try to capture the numbers to understand the impact. This will help you to make better decisions in regards to your investment of time on different tasks and help the team to be enthusiastic & have visibility of their work.
Build or use different tools to work fast
While working or writing a new software, you will always find some pattern in your tasks or code that can be automated. Find those tools or even build one to speed up your work.
Help others to help you
Sometimes we ask for help from others on some task or bug, but fails to provide necessary & precise details about the problem. And hence it become quite difficult for others to understand and solve your problem. You need to adopt a strategy to get better results when asking for an help.
You can follow below steps, the next time you ask for any help
- Provide short description (1–2 lines) about your problem.
- Give some context if required.
- Provide some stats, logs, screenshots or recording about the issue.
- Tell them what you have tried to solve the problem, but failed.
- Thank that person or the team who helped you.
Whether it’s writing a code, documentation or explaining something technical to your peers. Try to simplify it with proper context & avoiding acronyms, so that it make sense to others. This will result in increasing your’s & team knowledge quickly.
Pick your focus slot
It’s hard to focus through out the day because of so many meetings, slack or team notifications and emails. So picking your focus slot for 4–5 hours every day is very important. Setup up your calendar and slack status to tell your team that you are currently in your focus zone and there might be a delay in the response.