Five Build Commands to Make Project Onboarding Faster & Easier

New team members shouldn’t have to spend their time probing the subtle differences between their MacBook and yours while reading a lovingly worded project_treatise.md. They should be able to jump in and run the project in 10 minutes, flat.

So next time you start a new project, try writing your Makefile before you write the Readme. You’ll spend a bit more time upfront building automation, but it will pay off when collaborators join you. Here are five commands that I add to every project to make joining up fast and painless. Read more on Five Build Commands to Make Project Onboarding Faster & Easier…

Six Strategies to Spend Less Time Debugging

Debugging is a drag. I think we can all agree that working on new code is generally more fun and interesting than debugging or maintaining existing code. But the fact is that much of our time is spent doing the latter. When estimating time required a project or feature, it is practically impossible to predict the time required for debugging. Read more on Six Strategies to Spend Less Time Debugging…

Making Your System Tests More Readable

When I ramp onto a new project, one of the first things I do is to look at the system test suite. Because system tests exercise the entire system, they are a great place to document the intent and assumptions built into your application. When they are written well, they can be a source of documentation and a tool to educate others on the behaviors of an application. Read more on Making Your System Tests More Readable…

Be Expressive: How to Give Your Variables Better Names

Well-named variables are one of the most useful tools for building a maintainable and predictable codebase. Poor variable names can confuse users, but good ones make code seem effortless. As Ward Cunningham put it:

You know you are working on clean code when each routine turns out to be pretty much what you expected.

Naming variables well is one of the first and most important things you can do to create code that feels expected.
Read more on Be Expressive: How to Give Your Variables Better Names…

Using State Tables for Testing

Tests can benefit a project in many different ways. For example, they help ensure that the software behaves as expected. They also help document that functionality for pieces of code that other developers may have to maintain.

Lately, I’ve been using state tables in my tests to improve both of these benefits. State tables allow for clear and comprehensive tests that are scalable during the development. Read more on Using State Tables for Testing…

Naming Things Is Hard

When making software, you have to name a lot of things. There are functions, classes, numbers, data models, etc., and they all need meaningful names to ensure better communication within a team.

Over the past few months, I’ve noticed a few things that make naming things hard in a software project. These difficulties may be stressful, but they also highlight the benefits of good naming conventions.
Read more on Naming Things Is Hard…