Blog post image

From Joel on Software

As we progress toward better software, reading has become one of the most important things to do. Practice makes perfect, yes. Implementing all sorts of algorithms makes you the wizard of that specific language. But it is reading that expands your mind on new concepts. This time, it’s Joel on Software. Almost every programmer I know has heard of Joel’s blog. And yet, very few have read it deeply.

Better concepts, better software. Here’s what I got from reading the Joel on software blog.

About: Joel was in the military; he worked on Microsoft, founded StackOverflow, FogCreek, and wrote the programming blog, which is not maintained anymore.

Rewriting Software:

The worst strategic mistake any software company can make is deciding to rewrite the code from scratch. They think the old code is a mess: It’s harder to read than write.

  • Instead of throwing code, refactor. Move things to the right places
  • Optimize for speed, but know 1% of the work gets you 99% of the bang
  • If it’s ugly, refactor. Rename stuff.
  • Old code works. It’s better; it’s fixed. Use it

The Steps to better code.

These are 12 questions to measure your software team. Here are the essential concepts for each question.

  1. Use git. Nothing wrong has ever come out of version control.
  2. Arrange so that you can deploy to production in one step.
  3. Build, Deploy the whole product every day, so it doesn’t crash.
  4. Create a bug database.
  5. Fix bugs before writing new code. Otherwise, your code will end up filled with bugs, and it will not be deliverable.
  6. Have a schedule, and keep it up to date.
  7. Write a spec for your programs.
  8. make your programmers happy.
  9. Use the best available technology,
  10. Get testers, don’t waste programmers on it.
  11. Make candidates write code during their interview
  12. Do usability testing on your software.

Bug databases should include:

  • complete steps to reproduce the bug
  • expected behavior
  • observed (buggy) behavior
  • who it’s assigned to
  • whether it has been fixed or not

Quotes:

Customers Don’t Know What They Want. Stop Expecting Customers to Know What They Want. -Joel, on Joel on Software.

Note: This post is not finished. I will continue to add to this post as I read Joel’s blog.