50 habits of highly successfull developers

February 1, 2009 22:47
Frantical coding hasn't made the list.

  1. Know that "writing code" is just a tiny fraction of what you should wield.
  2. Accept that working software is a primary measure of a progress.
  3. Be ready to postpone some issues, rather than always looking for universal solution.
  4. Start with simple things and evolve them.
  5. Don't be afraid to be wrong, and let the same to others.
  6. And if found yourself being wrong, admit that audibly.

  7. Listen to those around you. 
  8. Listening cannot be undervalued – yet, often people think "communication skills" is about talking. Funny, eh?
  9. Accept that requirements are often hidden deep beneath layers of assumptions and oversimplifications.
  10. So dig for them.
  11. Ask questions instead of making statements.
  12. Avoid buzzwords but distinguish them from new opportunities.
  13. If asked for an opinion, give an analysis.
  14. Because everyone has his tastes, and different strokes for different folks. Analysis is a lot harder, but much more valuable.

  15. If mentoring, be competent enough to gain the respect of the subordinates.
  16. Distinguish between responsibility and authority.
  17. Never treat everyone in the same way.
  18. Be capable of both people-oriented and process-oriented styles: different people respond to different treatements.
  19. And, never, ever, assume that someone else has the same motivation as you.
  20. Encourage people to take risks and make decisions that push forward the collective goals.
  21. Remember that it's usually not that people are not aware of the goals. More likely, they just don't believe their decisions have any impact on those goals.
  22. Accept that selling ideas is fundamentally different from having ideas.
  23. And accept that you need to build a rapport before you start influence others.

  24. Make sure everybody has the same understanding of what "done" means.
  25. Communicate. When people don't get together and talk, they often project their problems onto each other.
  26. Be patient.
  27. Remember that the only person you can change is yourself.
  28. Associate hard work with smart ideas, not with long hours.
  29. But be ready for long hours as well.
  30. Make sure your job description enables you to explore new opportunities and get something done.
  31. Rather than builds a defensive shield to identify what's not your responsibility.
  32. Otherwise quit.
  33. Because the coolest thing about life is that you can become whatever you want to become, whilst most people just do what they think they must.
  34. Challenge the status quo.
  35. If made a promise, keep it. Even in small things.
  36. Especially in small things.
  37. Because a small thing for you can be a big thing for someone else.

  38. Realize that coding is almost never mechanical. 
  39. Every now and then there are decisions that could amazingly improve the system, or the code, or both.
  40. Refactor, refactor, refactor.
  41. While implementing a feature, do it only as it's required. Blind guessing about future rarely pays off.
  42. While implementing a feature, do it only as it's required. Blind guessing about future rarely pays off.
  43. It's not just a copy-paste – it's repeated because the idea is so often neglected!
  44. While testing your code, test the assumptions as well. They can be wrong.
  45. Look for some value even in fruitless and mundane job.
  46. Do not blame other people.
  47. Do not worry for other people.
  48. Remember that perfection is not when nothing is left to add, but when nothing is left to take away.
  49. Just get it done.
  50. And never give up.

Inspired by
Andrew Hunt, Antoine de Saint-Exupéry, Colin Neill, David Thomas, Gerard Meszaros, JD Mejer, Ken Schwaber, Phillip Laplante and Seth Godin.


Comments

Comments are closed