Sharing tips that hopefully will help you in your respective projects / engagements or daily work to become an "effective , good and valued" Software Craftsmen.

By the way, this is not copy pasted from some external blog or posts. I have jotted this down for all of you with the hope and belief that it helps you professionally as well as personally, the way its helping me immensely. Please feel free to send me your tips that helps you become a better craftsmen and I would love to share those here or add to this list. Happy crafting.

  1. Communication - is very important. Take it seriously.
  2. Good Listener - and be an active Listener. Don't just rush to share your opinion. Listen !
  3. Assumptions are evil - ask and do not assume anything. Get your understanding revalidated or further clarified by repeating.
  4. Do not shy - and don't hide or cover your opinions or thoughts under the hood just because you are shy or you are unable to pick right kind of words to frame your sentences. Speak. Try. Practice. Don't let yourself down or don't compare with others.
  5. Plan smartly - Time box things like meetings, time to do a POC - proof of concepts, research etc.
  6. Positive - thinking and positive approach always. Really helps. You will certainly solve tough challenging problems but remain positive and trust your capabilities. Don't let yourself down. Believe in yourself.
  7. Challenge - and look for opportunities in a tough situation. Avoid a victim mentality, and opt instead for a "ready for new beginnings and challenges" attitude.
  8. Zeal - enthusiastic and passionate in whatever task you pick for yourself and task thats assigned to you.
  9. Team player - and pair program often if possible. Code together.
  10. Learning - there is always enough to learn. Be open to learning and sharing. Don't stop learning.
  11. DRY - really. Do not repeat in coding - DRY (and there is wealth of information available on this topic on internet.)
  12. Reviews - get your self peer-reviewed. May it be for your approach or code. Either you will learn something new and improve or help others improve.
  13. Collaborate - and talk with team members from other projects. There is lot to learn from each other.
  14. Experts - see open source git projects and gems. Take code writing tips, styling, next practices from there. Learn by observing too.
  15. Coding - positively and follow coding guidelines, done list religiously.
  16. Face - to face communication helps a lot, cut down text chats and seek opportunities to talk directly.
  17. Welcome - and be open to changing requirements.
  18. Commit - code often, almost daily. No exception to this rule (either on feature branch or a temporary branch that can be deleted later)
  19. Be proactive - Don't wait. Reach out. Talk face to face. Discuss. Video Conference or voice call if not co-located.
  20. Present - lessons you learnt, any best and next practices. etc. Share and write lessons learnt or mistakes that helped you become better at your work.
  21. Help - offer to help someone else. Sometime it's the best way to help yourself, and not just for the warm fuzzy feeling it provides. You never know what you'll learn through this process.
  22. Honesty - is key. be honest and transparent in your regular dealings. Do not lie or hide your mistakes.
  23. Read - blogs, articles, posts and try write your own.
  24. Board - create a vision or goal board for your weekly or monthly priorities.
  25. Neat tests - write specs, refactor, test first. Craftsmen takes unit testing very seriously and is self motivated about quality
  26. Creative - and be innovative. Think about new ways to solve problems. Ideate often.
  27. Craftsmen - and not just a coder or developer. (Google for this term and you'll find wealth of information.)
  28. Challenge - the norms.
  29. Quality - should be your top priority and not quantity.
  30. Respectful - and be kind to others. Treat everyone fairly and equally.
  31. Divide - and break your stories/requirements/work into smaller achievable tasks. Its easy to chase and complete smaller tasks then a bigger one.