Hi All,

After a very hectic schedule finally I got the time to re-setup the blog (we had moved our hosting server and after that I didn’t get a single day free to setup the blog again). Now it’s ready and I have decided to put my hands again on it.

This topic “Qualities of Good Software Developer…” was presented  by me in my company.   I believe that these are the qualities which any company should look for in a job aspirants.

Love to code

  • It’s a job for passionate people, who love to craft new things
  • Write really nice and perfect code which is correct in terms of syntax, logic, reusability
  • Always follow best practices, coding standards and design patterns
  • Understand the fundamental of the programming language and utilize it to the best extent

“Screw it, Let’s do it” approach

  • Think about solution and not the problem
  • Always try to follow simple approach and get things done
  • Instead of just thinking, always try to evaluate new ideas or tricks to solve the problem
  • Follow Agile Approach
  • Work in incremental model
  • Get third person opinion

Keep on improving – code & knowledge

  • Improve code to incorporate changes, in such a way that it doesn’t affect any existing functionality – Use re-factoring
  • Continuously review your code and remove any mistakes, wrong design or low standard
  • Keep on reading new articles, manuals about the technology you are using and try to utilize that knowledge during development
  • Always think about end user and achieve 100% Quality
  • Try to be first in using new approach or design or tools/technology

Follow design patterns

  • Learn all available design patterns or evaluate new as per your needs
  • Always follow some design pattern, so that code becomes easy to understand and reuse
  • Instead of blindly following the patterns, understand the core of the design
  • Always ask questions – how?, why?, what if?

Believe in re-usability

  • Lack of reusability in the software causes for failure
  • Design and follow architecture
  • Reuse existing code, functions and classes
  • Understand the power of Service Oriented Architecture
  • Instead of writing new, try to improve existing one
  • Incorporate client specific changes as such that it doesn’t affect future upgrades

Always thinks about end user

  • “USABILITY” is the most important word for software
  • Keep it simple and usable
  • Try to write a software which customer loves to use
  • Always ask questions – “How will users interact with the system? Does it provide a simple, intuitive, and smooth experience?”

Write a maintainable code

  • There is no point in writing a function or class having thousands of lines
  • Try to divide your logic in different functions and classes
  • Try to reuse existing functions and classes
  • Always for coding standards
  • Write a descent comment
  • Always prefer to use logger
  • Always use Code Repository
  • Make a change log on every release

Don’t bother about programming language

  • You can have a favorite language, but you should not be religious to it
  • Keep yourself detached to the language and always be ready to try out new languages
  • Understand the importance of libraries over language
  • It’s the libraries which brings power to language
  • Always learn new languages, libraries and new ways of developing software

Know fundamental very well

  • You don’t need a good degree to make a good software
  • You must know data structure and algorithms very well
  • If you have clear understanding of fundamentals than only you will be able to decide like where to use if and where to use while? Or where to use array and where to use Hashtable?
  • If you know the fundamental very well than you can learn any language quickly
  • Good knowledge of fundamental are necessary to build a great software

Believe in perfection

  • Never believe in “Take it easy” approach
  • Client is spending money on you/project and you are responsible to provide 100% Quality Output to him/her
  • Don’t expect anything than 100% quality
  • Be passionate for perfection and never seat relaxed before you achieve that
  • Let your work speak for you

Effective Communicator

  • Remember the key rule in business “Bad news early…Good news frequently”
  • Make your statement to the point and clear
  • Always try to write a good – informative email
  • Understand your listeners/readers knowledge and try to incorporate all those things which he/she needs to know
  • Always keep your client/manager aware of your status
  • Don’t let your manager/client follow you, inform them will in advance with all necessary information

Please note that above are my thoughts only and you might have better thoughts/ideas on this. I really welcome all of you to share the same on this blog post.

– Pranav Thakker


¢ Lack of reusability in the software causes for failure

¢ Design and follow architecture

¢ Reuse existing code, functions and classes

¢ Understand the power of Service Oriented Architecture

¢ Instead of writing new, try to improve existing one

¢ Incorporate client specific changes as such that it doesn’t affect future upgrades

Comments are closed.