The knowledge of technology is not the key for any one to be a good developer but there are many other factors also exists that can distinguish a developer from a good one. Here we will discuss some of the factors that play a big role.
Good means desirable and distinguishable quality qualifier and if we see with the development point of view then it can be related to both technical as well as non technical qualities. Here are some the qualities that a developer should possess if he/she aims at becoming a 'good' developer.
1. Good Communication skills : A first and most important fundamental requirement of the development. As anything that is to be developed is best known by the who require the product and but it doesn't know how to develop it but the person that knows it don't have the clear requirement. But if a developer have a good quality communication skills then a product that is actually required will be produced as every requirement will be clear though good skills. So As a 'good' developer, you should be able to express yourself well, listen well, as well as manage the communication process well.
2. Positive Attitude - 'Attitudes - ways of responding to people and situations that we have learned, based on the beliefs, values and assumptions we hold.'
3. Good analysis skills - The quality of to be able to look at a issue or feature request and figure out exacly what is going on is one of the quality that can make developer to distinguishable from other.
4. Think as a Tester - A thinking like tester results a good esearch and modeling and come to realize that regardless of how disciplined his code is, there are probably situations in the world that will cause Bad Things to happen in his system. Often, he suspects that such things are possible, but doesn't have the perspective to recognize the exact problem. In fact it helps to reduce bugs/defects in the code.
5. Jack of all or Master of One? - Well that's a difficult one to answer. In today's scenario, you have to master more than one technology. Practically it is quiet difficult to do so, but the good ones do it. However the key is adaptability over here. If you are good at any one technology and confident in it, given an opportunity, it would be easier for to relate to a new technology in a short period of time. Try it out as it enables you to compare technologies and make decisions, once you have worked with them.
6. Follow nomelclature and Best Practices - The habit to follow a Code Design Guideline and always to use code analysis tools that evaluate and analyze the code is one of the requirement of the quality code of the product and that also influence the resulting product to be developed.
7. Discussion/Newsgroup - Participating in communities develops the quality of leadership and contribution, both ingredients of success. Having participated in a good technical discussion on the community leaves you with a feeling of self-satisfaction. It also increases your knowledge, as you find smart people who can validate your solutions, as you validate theirs. It also teaches you to appreciate suggestions. Do not forget to 'pat someone on the back' if he/her has made a positive contribution. Believe me it makes all the difference.
8. Technology seminars and events - Don't miss any if you get a chance to attend. Make sure you take out time to attend one. Most of them are free and provide a valuable source of information about new technologies.
9. Blog/ Write Articles - How many of us can remember everything? I cannot. So I document them. It helps me to reference stuff when I need them. Over and above, it also helps me get some good feedback from readers and shows me multiple approaches to do the same stuff. I have received a lot of feedback about my work, some good and some not so good. However, I do validate them and learn from this process. It develops the developer in you.
10. Implementation Approach - Keep Implementations/Approaches Short and Simple. Do not over complicate things by using jargon s, which people find it hard to understand. The key is to simplify your designs and avoid over-engineering things.
11. Practice, Practice and Practice - Reading lot of books and technical material is not enough to be a good but applying what you gain is the fundamental need for any type of work to be qualified as good. A lot of practice makes more effectiveness and efficiency in the work and is the only thing that can make anyone good skilled.
12. Curiosity - A good developer is interested in how things work. When they see some new technology they want to understand it and play with it. A curious developer will continue to find the best solution for you, while an incurious one will keep using what they've always used until the ship runs aground.
13. Abstract Thinking - A person who spends all day dealing with abstract data has to be good at it to be effective. A good developer needs to be able to take an instance of a problem and abstract it into a general type of problem. They need to take the solution to that problem and abstract it into a solution that will on problems like it. And they need to do it largely in their head on theoretical models. Developers who aren't good at abstract thinking will tend to solve the problem at hand, very well even, in a very rigid manner. That code gets to be a nightmare during maintenance, when one change breaks up the rigid structure of the code. Good abstraction pushes specific solutions out towards the edge of the code, making changes easier.
14. Patience - Sometimes solutions are hard to find. Sometimes users are hard to deal with. Sometimes management is hard to deal with. You need your developers to be able to be able to deal with them. An impatient developer will rush into the first idea that looks promising, a patient developer will wait until they know they've found the right path.
Thursday, July 31, 2008
Subscribe to:
Posts (Atom)