What does a Software Developer do?

  • Name things
  • Setting constraints
  • Maintaining code
    • Refactoring
  • Manage responsibility of code
    • Understand responsibility of systems/structures/etc
    • Separation of concerns
    • Ownership
  • Debugging
    • Debugger, breakpoints
  • Testing
    • Frameworks
    • Methodologies
  • Deploying/releasing updates
    • Build system/CI
  • Reading documentation
  • Building solutions
  • Writing code
    • Managing dependencies
      • Upgrading dependencies
    • Managing code repository
    • Configuring editor/IDE
    • Ensure code readability, especially for new team members
    • Writing documentation
  • Performance improvements
  • Communicating with other developers
  • Designing interfaces
    • API design
  • Monitoring systems
    • Alerts
  • Working on a team
    • Managing expectations with stakeholders
    • Interfacing with other teams (design/product)
  • Staying physically capable of continuing programming

Questions I ask myself constantly


Thanks to Mike Watts and Frank Carnevale for comments and feedback on this post.