Wednesday, January 8, 2014

Seven Mistakes by a Developer....

Developer Thinks i am always Right !!!


In a IT Industry and more specifically in a Development Center, we do have different varieties of job responsibilities, Like Development, Testing, Project Management, Programme Management etc.Job responsibility which gets highest attention is Development and set of people who do it are called as "Software Developers". This is since these are the set of people who actually create the software from scratch or enhance an existing software to make it usable to the real world. This is considered to be one of the most toughest part of software development and hence given highest weight-age.
"But taking the importance given in a wrong way is not the Right Attitude".

Lets discuss on some of the most common mistakes a Developer does.

1.Failed to understand the requirement

Most of the times developers do go through the requirement but actually do not get it right in the first place but they do pretend to have to got it right and start the development, which leads to real disasters at the end of the project when the releases are being done to QA and things actually do not work they are expected to and quite a few times leading to project delays, and release plan has to be re-worked which eventually results in a very high cost to company and many a times credibility of the organisation.
My Advice,
Get the Requirement Right to Develop the Right Product !!!

2.Didn't follow the coding guidelines

Coding Guidelines, the foundation of a True Developer !!!
If i have to just develop the product without guidelines, then i would hire a "Coder" who does not takes care of ifs and buts in the code and just makes it run somehow, without any guarantee for handling errors and exceptions. But this is is not expected from Developer, he is the one who takes care of all the scenarios and makes the product really Solid to withstand most of the Exceptions and Errors.Mishandling of this leads to customer issues and unnecessary cost for the company to resolve this issues, which are finally nothing but basic guidelines, to name a few of them, Memory Leak, Application Crash, Buffer Overflow, Stack corruption etc. My Advice.
Coding Guidelines should be in Developers Blood, to make sure your Product does what it Should !!!

3.Zero unit testing

Most of the Developers i have seen in my career, are really reluctant to do the testing, they do always consider this is Tester's Job. Job of a Tester is to do a Functional Testing and not Unit Testing. A Developer should be doing white box Testing of the code, like testing the true and false condition both by providing required parameters, checking boundary conditions, Testing the basic functionality of the functions, overall a basic feature testing. Not doing this gives an opportunity to the Testers to identify the problems and sometimes it bypasses even QA and comes a customer issue, since there are certain conditions which goes untouched. My Advice
Doing Unit Testing is as important as Coding !!!

4.Ignored the Code Reviews 

Code Reviews are the ones, which does brings in multiple thoughts, variety of thoughts and Criticism.Code Reviews have a huge advantage, to list a few of them,
  • It makes you realize you are not correct always.
  • Things could be done in a better way than what you have done.
  • You eventually do a knowledge transfer to other team members.
  • There is no more a Single Point of Failure.
Code Reviews should be taken up very seriously and the comments should always be welcomed and make sure that those are implemented and not just documented in the code review document.In my career, we were able to reduce the code to a great extent by bringing in thoughts and good programming practice.
Releasing a product without code review, is like Printing a document without a Preview !!!

5.Poor or in-scalable design

Good Design is considered as the Heart of the Software.
Design is the which actually makes sure how robust and scalable the product is, how much better it can perform in a stressed scenario. normally Developers to impress the product managers do develop something quickly which does not have good design and many a times they continue this same base further to the real product. Many Developers do think, "we will fix issues when it comes", "how much can we think", we also have limitations". I do have real experience in my life, due to poor design, the same component was re-written thrice the main reason being performance, and i was the third one, not overrating my self, but after i designed and developed it, it was actually done and satisfied all customer requirements. This Poor design has caused the organisation 2 years of development with multiple developers, Testers, Managers, Tech support working on this, can you imagine amount of money the company would have lost, and to be very frank nothing comes free in this world, finally it does impacts performance reviews of the BU and quite a few times your own salary and bonuses. 
Make Good Design, to make sure it does not gets Re-Assigned !!!


6.Poor Estimation

This is one of the biggest disasters which i have always seen in my career, Whenever a developer is being asked for an estimation, he would just pop-up "It should be fine in 2 days, or Max 3 days". Quite a few times this 2 or 3 days has ended up in Weeks, and sometimes even more, with finally Manager doing a regular follow up and updating to other StakeHolders to cover up the team by explaining this is a real Technical Issue, we never anticipated this, frankly speaking he is doing his job. But how should developer given an estimation, first of all do not give an estimation for something which you do not know what it is, take your time understand the requirement, clarify your doubts, if you are put under pressure to give estimation just raise a Flag, i am cannot give an exact estimation based on this parameters. It is always better not to give estimation rather than give a Wrong estimation.Apart from think about other aspects apart from coding, like Unit Testing, Code Review, Documentation. Always keep some buffer, since issues might crop-up leading to delays.
Good Estimation is a Summation of all the activities you plan to do !!!

7.Improper communication

This is a very normal behavior of quite a few Developers that i have seen and sometimes there is no communication. Developers say, "I felt it is right to implement in this way". Developers are given powers to take the decisions to make the product better and come up with the new ideas. but any of these things should be communicated to appropriate StakeHolders, before implementing. since what developer feels is correct might not be correct from customers perspective which is best known to a Product Manager.
Apart from this communication with QA should be very clear and explain the feature properly, since they are the ones who actually give the Quality Certificate to the product, any discrepancy could lead to incorrect product in the market. Since not each and everything can be documented, there is certain amount of information which can be availed only from Developer.
Do Give a Good Thought, but just don't give it a Shot !!!

 Overall i want to say to all the Developers out there
Agreed you are Great, 
You Rock, 
But For what should be your Creed,
Don't Give us a Shock !!!

No comments:

Post a Comment