subject: The 7 Deadly Sins Of Software Development [print this page] In order to be a good and successful software developer, one must cultivate certain good traits, avoid some pitfalls and possess certain qualities. Here is a brief exposition of 7 of them.
Sin # 1: Lust (over-engineering)-
As programming languages continue to develop, adding more features and functionalities, it is natural to feel tempted to start using them in greater measures in software development. But one should draw the line somewhere. One must be careful about not overdoing it, or making the software unnecessarily bulky. Keep a check on the desire to add every little feature that appeals to you. Instead, use what the software actually needs.
Sin #2: Gluttony (failing to refactor)-
Instead of piling up features upon features, use your time to evaluate your existing code for quality and maintainability. Refactor it closely and take it as close to perfection as possible. This will make your software more valuable in the long run.
Sin #3: Greed (competing across teams)-
Successful software development services are all about brilliant teamwork. Dont leave out members in the hope of attaining all the glory (and remuneration) by yourself. Dont start competing with your co-workers. Keep others in the loop and get them involved in the development process. A major priority in managing a development project is working together towards a common goal.
Sin #4: Sloth (not validating inputs)-
Validating input is critical for the long term success of your software. Remember, many commonplace security vulnerabilities, such as buffer overruns or SQL injection attacks, can be traced directly to code that operates on user input without validating it for correct formatting.
Sin #5: Wrath (not commenting code)-
Forget to comment on your code and you could be acting treacherously towards your fellow developers. In case you are no longer involved with the project, future programmers can easily understand your code and make necessary modifications. After all, you owe it to the future success of your software. Code is its own best documentation of what it does; comments serve the purpose of explaining the why.
Sun #6: Envy (not using version control)-
Use a common version control system to ensure consistency throughout the development team. Dont play the role of an evil "master maintainer" protecting the version control or the mother folder tree jealously. And dont leave multiple versions of the same thing lying around. It only adds to the confusion.
Sin #7: Pride (not unit testing)-
Dont start basking in the pride of having written a good program. Instead, stay critical of your job. Validate your code against specific test cases and ensure that it is truly free from defects.