Most of the people reading this blog will mostly be programmers or developers or someone who shows interest towards IT. Those of you who have worked on an IT related project, or even students for this matter, will understand that the life cycle of a project has to be done in stages, and a lot can go wrong during this life cycle.
So if a software life cycle is done in stages, then nothing can go side ways, right? WRONG, there are chances that something can go side ways! And one of the major contributing factors to this is simple, deadlines. With clients having their needs and demands, we need to meet the deadline in order to keep them happy (Unless you do things at your own pace, which in my opinion usually takes more time and is a waste). Happy clients equal more projects or opportunities. But what we fail to ignore is the consequences of doing things rapidly and ignoring the simple things that can cause an unpleasant user experience. For example, during API Testing, if the response is a 200 that is returned, we assume that it is working and sometimes tend to overlook the actual output returned (I’m sure some of you’ll have experienced this ‘cause I did when I started programming).
So let’s get down to putting a few mistakes a programmer can avoid while working in a tech company.
Firstly, Caching. Those of you who have developed websites, will understand this point more clearly. What is Caching? For those who aren’t familiar, in simple English, it stores information somewhere on your computer for future use. So why is caching important for websites, and APIs? It basically helps the server to reduce the load on itself and allows for more users to access the same service without it’s performance getting affected. “So if I have a cached copy stored on my system, I’m good to go?” Well, not really, this cache needs to be updated after set intervals. An expired cached copy can cause a user problems at high traffic time and probably not even return a proper response to the user. It is the developer’s job to not overlook this aspect and ensure that the user isn’t negatively affected by it. After all, if a website is poorly created and can’t display things that the user expects, why would anyone even visit the site?
Secondly, Lack of communication. I noticed this issue when I started working, but thankfully, this isn’t an issue for me any more. Communication is very important when it comes to working in a team. In an IT team, we create new software and programs where everyone’s contribution can lead it to be a successful one. But what happens when there is no proper communication between team members? Each member does the work the way they want to do it and when it comes down to merging all of it together, BOOM, Failed software. All this trouble for the simple fact that the members were not communicating properly. To be honest, when I started working on my first project, it was a handover from a senior, as the senior had resigned for whatever reason, it felt like the project was just dumped on me, and the handover wasn’t even properly done. Nonetheless, even though the other seniors were busy in their own projects, they lent a helping hand whenever they could. But for the rest of it, I was on my own, until we had newer members joining the team, and one of them on the project I was handling. Life got a lot easier working as a team and we started to show results at a much better progressive rate. So remember, communication is one of the keys to opening a door to a successful step ahead to something better, and of course, building a terrific software.
Thirdly, Compatibility. While some software are targeted for a specific version, sooner or later, perhaps never, some modifications or updates need to be made to the existing software. This not only applies to software developed, but also to software that are under development. Let’s take this example for instance. If a member of your team were to develop a piece of code that is not compatible with your code due to a version mismatch or outdated/deprecated method, then both of you’ll need to sit down and discuss which is the best approach to move forward and ultimately, one of you’ll will have to rework the code, which is a waste of time. So remember to communicate with your team member(s) and be sure that you’ll are looking towards the same thing.
Lastly, Localization. While some clients have a fixed audience, we need to consider that the client can change their mind and want to reach a wider audience, and this includes people from different countries with different dialects. There are so many dialects in this world, is it necessary to incorporate all of these languages for localization? No, ideally, the best approach would be to use common languages such as English, Hindi, Portuguese and French. Unless specified otherwise by the client.
To summarize, by the quote of G.I. Joe, Knowing is half the battle. And what this means is, the sooner you recognize these mistakes or any other mistake which you feel that can be avoided, the better it is for everyone on the team. It saves time and effort, and you don’t have to break your head as to why the system isn’t working the way it should. These were a few common mistakes a programmer can avoid when working in a tech company. Hope all if not, some of these points have enlightened you to work better and take you to greater heights with your team.