14 things you need to be a successful software developer - Number 2 - Practice constant verification
All software is adding features to a known state — Jim McCarthy.
If you are starting out from scratch, the known state is easy… it is nothing until you add that first line of code. But, for me at least, most software I work on is not brand new. I have spent more of my time looking after, fixing, and enhancing others’ code… so how do I know what the known state of that code is? How do I know what the state of my greenfields project is with 1 line of code? No surprises—because it’s the title: constant verification.
As software developers, there’s a lot we can do ourselves to reach a known state—for example:
- Unit tests (know the state locally)
- Having test environments (know the state when testing)
- Ensuring a CI pipeline is repeatable (know the state isn’t influenced by builds)
- Baking observability into our code (know the state in production)
And, like in tip 1, we benefit from working with others—especially QA. It’s no surprise that my most successful projects have always had a QA engineer on the team. Their entire job is to know the state and to share it!
Finally, when looking at your own approaches to work, what can you do to practice constant verification?
Assume others have different info, not that they’re wrong. I can’t tell you how often this has saved me from looking like a jerk—or missing a key piece of knowledge. Let others talk, ask questions to understand why they think something or are suggesting it. Often, you’ll uncover more than you had before.
Realize your job isn’t just coding. It’s the entire lifecycle of software development: figuring out what to build, how to build it, how to maintain it, how to fix it… everything.
And finally, something that came up last time too: practice you build it, you run it!
Photo at the top is by Daria Nepriakhina.