Attitudes of a Great Software Developer !!!

Developer
Developer@

Image courtesy of xedos4 / FreeDigitalPhotos.net


Attitudes of a Great Software Developer !!!

A post by guest author Rajaraman Raghuraman.

This post was originally published in AgileDevTest Blog.

Software development is an art, not just a science.  You can learn all the technicalities of software development, but you need to be absolutely passionate about coding and perceive it as an art to be extremely good at it.  If you are one such person, I will introduce you to the journey of becoming a “Great Developer”.  The objective of a Great Developer, as i name him/her is to make his/her art as beautiful as possible and make it the best.

In my own thoughts, I will share some attitudes which a great developer should have apart from the general expectations of being technically and analytically sound, understanding requirements in detail, good design skills, etc.

Attitude #1 –  A bug is a question of my ability to write good code

Fixing bugs is part and parcel of a software developer’s activities.  A bug is obviously the worst enemy of a Developer.  But how many developers think in the following lines while fixing the defects

  • What I could have done to avoid this bug in the first place?
  • How did I allow this bug to escape my eyes?
  • OK, something wrong has happened this time.  How do I avoid the same mistake next time? What steps do I need to take?

Truth is very few developers think on those lines.
A  person willing to be a great developer should consider a bug as a threat to his position, as a threat to his credibility, as a threat to his programming skills.  That is the attitude that will make him/her a great developer.

Attitude #2 – Mr. Tester, I challenge you to find bugs in my code

How many developers have this attitude?  Many developers think that the job of the testers is to find bugs.  Yes.  Obviously, but that doesn’t mean as developers, we can take bugs for granted.

A great developer or a person willing to be a great developer should 
always invite / challenge the tester to find bugs in his/her code.  He should have so much confidence in his code that he can challenge in such a way.

Attitude #3 – No compromise on code quality

Code quality should be of prime importance to a developer.  That will include following the right coding standards, making the code more maintainable using proper design and code refactoring, etc, etc.  But how many of us compromise code quality for many reasons best known to us?

I can quote an instance in my project to explain this.  I was leading a team of developers and we were working on fixing something in the very last hours of a Friday night.  We had to give a build on Monday.  All of us were looking into the problem.  I got curious as I saw the problem and started getting my hands dirty in the code.  Time went by and only the last 5 mins were left for everyone’s cab.  It was a make or break.  We had to come the next day, if that was not solved today.  I did something at that time, which absolutely infuriated all my team members.  Unable to see the clarity in the running code, I refactored a bunch of lines at that last minute.  Everyone were so pissed off, that they started scolding me :-) asking if it was so important at that moment.  I answered “Yes, it is that important”.  Of course we worked the next day for other reasons, but the whole point was even though I had an option of fixing the code in the running code, I chose to refactor the code not compromising on the code quality.

A great developer or a person willing to become a great developer should never compromise on the code quality, no matter what.

Attitude #4 – Confident but not arrogant

A great developer or a person willing to be a great developer should be absolutely confident of his abilities but should not be arrogant towards fellow developers and testers.  He should always remember that he is part of a team that is working towards a common goal of shipping a project on time with good quality.

Attitude #5 – Acknowledge the Tester

It can happen that despite all the hard work and efforts put in by the great developer, a great tester can still find defects in his code.  In those cases, acknowledge the great tester.

A great developer or a person willing to be a great developer should always acknowledge the tester for the bug that he found.  He/she should remember that the bug is the enemy, and not the tester :-)

With this I conclude this post, hope you find it informative.  Thanks for the read.  Cheers!

About Author:

Rajaraman Raghuraman has nearly 8 years of experience in the Information Technology industry focusing on Agile Product Development, R&D, Test Data Management and Automation Testing. He has architected a TDM product from scratch and currently leads the TDM Product Development team in an IT MNC. He is passionate about Agile Methodologies and is a huge fan of Agile Development and Agile Testing. He blogs at Test Data Management Blog & Agile Blog. Connect with him on Google+.

Author: hershey

A passion for knowledge drives me to do programming, A passion for programming drives me to create something different, A passion for creation drives me to spread the knowledge.

Share This Post On

0 Comments

  1. nice superb explaination

    Post a Reply
  2. thanks for the tutorial
    I am having a problem.
    The feature “Create SQL server database” isn’t available , I can’t select it.
    Can you help, please ?

    Post a Reply

Submit a Comment

Your email address will not be published. Required fields are marked *

More from CodeSpread:

  • Time Out: Not a Technical postTime Out: Not a Technical postTaking my time-out from technical world for once and sharing a regular joke in the form of  this comic with you. There is no harm in showing funny side also sometimes. wat say!!
  • Agile Encounters UnpredictabilityAgile Encounters UnpredictabilityWhat is Agile? Wikipedia says ÔÇťAgile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through...
  • Nullable .Net typesNullable .Net typesWe declare .net types in our project daily but still we do not recollect default values for each .net type so we end up doing null check for each data type. Its a basic mistake of a developer but ....
  • Useful ‘ref’ and ‘out’ parametersUseful ‘ref’ and ‘out’ parameters It took me some time to realize the real potential of ref and out keywords, till the time I experience a condition which could only be simplified by implementing ref and out keyword. Lets st...
  • Asp.Net: Hidden Truth of CookiesAsp.Net: Hidden Truth of CookiesI know there are several articles on cookies as what are they? and how can they be created? but i always wanted to know more about them. My questions were where they are stored? how to track their ...
  • C#: My experience with const keywordC#: My experience with const keywordThere are numerous post on internet about 'what is const keyword in .net' or 'what is the difference between const keyword and read only' and I must say many might have already mugged it up like me...
  • Asp.Net: More about CookiesAsp.Net: More about CookiesWe have seen, how our cookies looks in our last article Cookies Part 1. In this article, we will talk about their properties,limitations and technical part. Properties and Limitations Cook...
  • This idea broke and the world became flat.This idea broke and the world became flat.Like a regular programmer, I was busy developing applications for a client and suddenly faced a functional problem with the requirement. I tried to explain the situation to client but after trying ...