Skip to content

Traits of Successful Software Developers

Working in a team¶

  • Don’t malign bad code
  • Don’t malign yourself
  • Be reliable
  • Be approachable
  • Work with good people
  • Make your own code easy to review

Managing Projects¶

  • Break the project up into chunks
  • Finish things
  • Minimizing WIP
  • Do uncertain things first
  • Write tools
  • Write good tools

Writing Code¶

  • Close slack
  • Use a timer
  • Don’t worry
  • Never do anything clever unless you have to.
  • Think in terms of interfaces/contracts
  • Be paranoid about what could go wrong
  • Make your decisions easy to reverse
  • The quickest way to write code is to not write it at all

Summary:¶

Working in a Team:

  1. Avoid criticizing bad code and focus on constructive feedback.
  2. Avoid self-deprecation and have confidence in your abilities.
  3. Be dependable and fulfill your commitments.
  4. Be approachable and open to collaboration with others.
  5. Surround yourself with competent and positive teammates.
  6. Write code that is easy for others to review and understand.

Managing Projects:

  1. Divide projects into manageable chunks for better organization.
  2. Prioritize completing tasks to avoid accumulating unfinished work.
  3. Limit work in progress to maintain focus and productivity.
  4. Tackle uncertain or challenging tasks first to address potential obstacles.
  5. Develop tools and scripts to streamline workflows.
  6. Create high-quality tools that enhance efficiency and effectiveness.

Writing Code:

  1. Minimize distractions by closing communication channels like Slack.
  2. Utilize timers to enhance time management and maintain productivity.
  3. Avoid unnecessary worry and focus on problem-solving.
  4. Embrace simplicity and avoid overly complex solutions unless necessary.
  5. Design code with clear interfaces and well-defined contracts.
  6. Adopt a cautious mindset and anticipate potential issues.
  7. Make decisions reversible to facilitate flexibility and adaptability.
  8. Explore alternatives to writing code when possible to achieve desired outcomes more efficiently.

source video by Robert Heaton

software development