~ Code for the maintainer ~

System Goals

Debugability is only important if something goes wrong. Of course, something can ALWAYS go wrong. So debugability is always important.

Coding Genies and Code Review

Reviewing your own code is critical when working with others. It’s even more important when you aren’t the one who actually writes your code.

Who Are You Writing To Anyway?

An author should always keep his audience in mind. The trick is to know your audience. Even when there are 2 or more different audiences.

New Code Vs. More Code

Just like the code we write is going to be read far more often than we write it, the amount of code we change/extend is MUCH higher than the amount of code we write from scratch. So don’t forget, when writing code, you, or someone you know, is going to have to extend it. So be prepared.

Simple or Easy?

Many people think simple and easy are synonyms. They’re not. They’re similar and related, but they’re NOT the same thing.

Code Virtues

People can have virtues. So can code. In general, for better code, you maximize virtues and minimize smells

Home Ownership and Software Updates

While software engineers are engineers, software development is NOT construction. There are however some similarities between the two. Especially when thinking about remodeling.

Optionality

Optionality is much more than having options. It’s about making the future possible instead of boxing yourself in.

Break It Down, Even At Small Scale

Similar to MMMSS, you can also break your tasks down further.

It's A Trap

All languages are not equal. You should use the language you’re using.

Any fool can write code the computer understands.

You can write bad code in any language. You can write good code in any language. The choice is yours.

Effective Software Engineers

Perhaps oddly, perhaps not, the traits of an effective software engineer have nothing to do with software

One Thing At A Time

Trying multiple things at once is NOT faster

Hey, That's Pretty Clever

That’s pretty clever, so fix it.

What happens when you can't even Tidy First?

What is Refactoring and when do you do it?

Applesauce, Names, and Refactoring

Naming is important. Even if it’s applesauce

Code Golf

In golf you want fewer strokes. In code, that’s rarely the case.