The basics
Adapted from Thorsten Ball's "The Basics".
These are the habits I keep reminding myself to follow. They're basic, but they aren't easy. You can be good at the technical work and still waste hours if you skip them.
Technical books rarely cover them. I still catch myself forgetting them.
Here they are:
Test it manually at least once before you ask for a review, even if your automated tests pass. Record the manual test. Watch for problems the tests missed.
Think through the edge cases. You don't have to handle them all right away, but know what happens in each case.
Keep your change free of unrelated changes.
Bring your PR up to date with the latest changes on your main branch.
Before you comment on something, read the whole thing.
Do the homework before the meeting. People notice.
Understand the problem you're solving. If you don't know why the work matters, you can't tell whether it solves the problem.
Accept that some tasks won't interest you. Sometimes it's just work.
Write clear bug reports. "It doesn't work for me" isn't enough. Say what you did, what you expected, and what happened. Include the details someone will need to debug it.
Before you open a ticket, try to find the fewest steps needed to reproduce the bug.
Read the error messages.
Read the manual, the docs, the instructions, the ticket.
Be on time.
Know why your fix is a fix.
Every time you add a test, check that it can fail. Comment out the code you think makes it pass, then run the test. See it fail. Restore the code and run it again. See it pass. Otherwise, you don't know whether the test catches the bug.
Do what you said you'd do. If you can't, tell the person who's counting on you.
Don't ask for "quick" reviews when you never review other people's code.
Keep an eye out for bugs.
Be someone people want to work with.