How to be a good software developer

Posted: March 02, 2024

A developer in front of laptop

Photo Credit: Tim van der Kuip

This is my first blog and it might be a little odd for a blog content but I am trying to write blogs on my daily life incidents related to software development and tech. Everyone starts their journey by joining a company and getting some experience from it. Like others, I joined a product based startup during my 6th semester of college and I got to learn so much about the real life tech projects (not our college’s one). I am writing my learnings in this blog to give some of my findings to other developers who are starting their journey as a fresher. As I am saying these are my points of view. It may differ from developer to developer. I am going to tell you some points that I learned through my experience. I hope you find it interesting.

1. Always work in time constraints

I had two projects in the pipeline and I decided to go with problem A first and then problem B. I was so much into solving problem A that I spent approx 3 to 4 hours. As a result I solved problem A but was not able to solve B which I have to deliver the same day. Next day when I retrospec'd my time taken on solving problem A, I found out that it should not take more than 2 hours to solve that. At last I got to know that I had solved the problem but I was improving some little things alongside with that which stretched my time. Let me give you a hypothetical problem. Let’s say that there is some keyword that is not searched properly in your search bar. In some time you solved this problem but by getting dopamine by solving the problem, you made some improvements in the design of the search bar or improved the performance or changed the placement of the search bar. As of these little improvements in which we get so much involved, results in scope creep. To solve this issue, always work in a time constraint, give a certain amount of time by analyzing the problem and also measure the time taken to retrospect.

2. Do not procrastinate on project folder structure or file management

Developers often keep folder structure as the least requirement of the project. But in real projects folder structure is one of the important factors to collaborate with other developers. Starting with a software developer job, we tend to forget that we are not developing a personal project or only one developer will collaborate on that project. The people within the company keep changing from time to time and new developers will lose their productivity as part of bad folder structuring of the project. Also adding new functionalities gets choked because of it. So always take folder structuring as first priority.

3. Always commit and push your changes at the end of the day after completing a milestone

This habit I learned from not any mistake but after making mistakes this helped me not to rewrite the code again. This is very strange but read further about my tragic incident. I was having my dinner outside at some restaurant. I put my laptop bag in the car and when I got back to my car the glass of the car was broken and the laptop was not there. Theft!! After processing the situation, I got a call from my manager to know about what happened. I told him that my laptop had been stolen but the funny thing which I told him was that I had committed my code. So this indicates that you do not know what will happen. It is a good practice to commit your work.

4. Always keeps buffer time to your project never gives cut to cut timeline

Developers are known for their late delivery for the product or not providing the product within the time timeline. To break this stereotype, always give some buffer time to anyone before giving the timeline. In any case if you do not meet the requirement there always will be buffer time to cover up the task. I learned this by not meeting the project timeline frequently. After a certain time you will add buffer time automatically to your timeline and become a habit.

5. Never try to fix the bug, resolve it

In an organization many bugs come and go from time to time and we all work hard to reduce these errors as minimum as possible. But sometimes we see that bugs are increasing even if the developers fix the bugs in a short time. Here the important factor is not fixing the bug as quickly as possible, it is how efficient your fix is that will handle all future changes or edge cases in any system. If you are given a bug, you should think of potential cases in which it can cause trouble. This happened to me many times when I fixed something and after a couple of days it still gave an error but in a new form.

6. Keep your manager updated

Being a developer we often forget to notify the people about the changes in software and sometimes it leads to project failure. If you have done any changes in the code, make sure to update in slack group or through any other information conveying platform. To make it simple, build a trigger in your brain that pushes the notification in the group by yourself whenever you push something to production.

7. Use debugger to debug issue or bugs

As a beginner we debug the issue using going through the code or logs the output in case of a large codebase. But it is a very time taking process, we don’t think generally but it is. We add logs to code and check the entries in the database's tables multiple times. Sometimes we forget to remove the logs and it goes in the production code if someone has not paid attention to it. To reduce this kind of errors and increase productivity do use debuggers. Firstly it feels less productive and time taking but after you get used to it, it elevates your debugging experience to the next level.

These are some learnings that I have used throughout my experience working in a software company. Obviously there are many aspects other than above which are required in software development but I feel these few points can increase productivity and break bad habits which we developed during development of our personal projects in college or university.

Contact me

Want to connect?
My inbox is always open!

© 2024 Kushal Gandhi