Things I learnt the hard way (in 30 years of software development)

Click for: original source

This is a cynical, clinical collection of things Julio Biason learnt in 30 years working with software development.

“Without requirements or design, programming is the art of adding bugs to an empty text file.” – Louis Srygley

Sometimes, even an “elevator pitch” – up to two paragraphs that describe what the application does – is enough.

If you have no idea how to start, describe the flow of the application in high level, pure English/your language first. Then fill the spaces between comments with the code.

Very interesting list contains items like:

  • Spec first, then code
  • Write steps as comments
  • Gherkin is your friend to understand expectations
  • Unit tests are good, integration tests are better
  • Tests make better APIs
  • Make tests that you know how to run on the command line
  • Be ready to throw your code away
  • Future thinking is future trashing
  • Don’t use Booleans as parameters
  • Beware of interface changes
  • If you know how to handle the issue, handle it
  • Types say what you data is

… and much more.

When developers try to solve a problem, they sometimes try to find a way that will solve all the problems, including the ones that may appear in the future.

But here is the thing: The problems from the future will never come and you’ll end up either having to maintain a huge behemoth of code that will never be fully used or you’ll end up rewriting the whole thing ‘cause there is a shitton of unused stuff. Great advice!

[Read More]

Tags agile programming career how-to code-refactoring frameworks