Thursday, February 16, 2012

Software Engineering best practices we do ‘Not’ follow at our own risk

Software engineers all over the world were at sometime or the other taught in their initial days some best practices to treat as the Bible while developing software and writing codes. But most of the time, we fail to undertake these steps. Due to lethargy, or time constraint, or taking things too easily, we skip the so very essential part of the best practices which can lead to some immense trouble and loss to others in the future. We will be discussing some of these serious issues now. And how we can focus on fixing our habits. 


Often we will see Oracle, Java, Unix or for that matter codes written in any technology, often named without following the convention and reveals little about the utility of the piece of code. A coder when looks at the file in the future will have little or no idea as to what it was written for until he goes through each an every line of the code. Imagine the amount of time lost for the simple task of getting to know the functionality of a few hundred lines of code. Always include at least a few words of comment for each code block, naming conventions,  snapshot of the code (with the author name, version history, purpose). A few seconds taken by you will save many people in the future from putting their brains out to figure out the purpose of a code.

Development team in UAT
The role of the development team should be up to code delivery and implementation. At most they can guide the user how to proceed with the testing. Rest scenarios should be entirely left in the hands of the user. For obvious reasons, if the developer is involved in his own work, he is bound to influence the testing scenarios of the user unintentionally on a subconscious level. This is not to blame anyone, but something pretty natural by human behavior.

Allocation of due time for each phase in SDLC
Each of the phases in SDLC must be given due weightage and time. It often happens due to strict timelines, the analysis and design phases are shortened. But this can lead to severe consequences as the solution approach might prove to be unsustainable on the long term. All sorts of feasibility, cost, adaptability, flexibility study should be completed with proper discussions and brain-storming which will also benefit in team-building.

These practices need to be strictly followed by budding engineers and experienced professionals alike. It’s ought to be like the untold rules of software engineering.


Post a Comment

Have something to share? Let me know!