Have you ever looked over your job responsibilities? Here is an example listing of some responsibilities of a software engineering position:


  • Application design from concept through development and implementation
  • Provide technical leadership and guidance to your team members
  • Establish a solid project framework and excellent development processes
  • Consistently deliver quality software and services
  • Work with internal and external teams to co-ordinate parallel development efforts into single releases

Lot of stuff in there, but if you filter out all the buzz words and business speak you really only have one responsibility, the most important rule for any project: GET THINGS DONE. This may seem obvious, but it is so easy to get bogged down in the implementation of something that you lose sight of this goal. Look at some important coding practices:

  • Code makes sense to people reading it after you (consistent style, clear function/variable names, obvious segregation of tasks).
  • Code is free of extraneous variables, function calls, bad comments.
  • Your algorithms are as time and space efficient as can be.

But what is that list missing:

  • Code must work.

It does not matter how efficient, clean, nice your code is. If your code does not work you fail, do not pass go, do not collect $200, go to jail. Sure, try and follow all these goals while you are working. In fact a good engineer would actively be following them all the time. But, that said we live in world with time tables and deadlines. No one and I mean absolutely no one cares about anything else if your code does not work when they need it to. It is the same concept when working on building something physical. Stop getting held up on getting things perfect, do the best you can in a reasonable amount of time and move on. Perfection is for finished working things, not for projects in progress.