DEV Community

Brandon Weaver
Brandon Weaver

Posted on

On Diligence

What is diligence? What does it mean to be diligent? It's a subject I've been reflecting on a good deal lately, and in that process I came to a few stories and metaphors, and this post will share a few of them with you.

Through them I will illustrate my own thoughts, and my own lacking, in what can help frame this concept for yourself wherever you may be in your career.

On Mathematics

In my evenings I like to continue my education on whatever happens to seem interesting at the time from subjects like AI applied to guitar music, political and philanthropic activism, and a frequent revisiting of mathematics.

My college degree, Computer Information Systems, never required me to take math beyond college algebra. That means that I never had to take discrete mathematics, calculus, linear algebra, statistics, and a whole host of other topics.

These likely could have been incredibly useful to me especially considering my apparent employment streak in financial technology, and often times I feel their lack sorely.

Given that I find myself thumbing through calculus courses on Khan Academy, Brilliant, Udemy, various books (Stewart, Kelley, Banner) fairly frequently.

A Particularly Careless Student

In my school days I was not a diligent student, in fact careless would be a more appropriate word. I'd frequently forget to turn in work, write my name on assignments, make simple calculation mistakes, or otherwise things that could have very easily been remediated had I paid attention.

It should come as no shock then that my college GPA was a 2.89 and I stumbled across the graduation line.

I could go through lists of reasons for it, certainly, from teachers to personal interest to my autism to any other number of factors, but at the end of the day I was most certainly deserving of the title careless.

Conceptual Knowledge

Back then I might have argued that conceptually I understood the content. For me there was nothing particularly difficult about quadratic equations, proofs, geometry, or other subjects.

It always came down to the practice and the little details that I'd get caught on. Even today when going through calculus practice I find myself coming back to those same bad habits.

I miss a sign here, I add wrongly, I elide steps and assume the intermediary calculations are correct, and rush. All of these are simple mistakes I laugh at, but in aggregate they lead up to poor grades and assessment results whenever I try and take a class in the subjects.

By failing to be diligent I have actively hampered my ability to learn effectively and cement knowledge, and frequently make careless mistakes that I might have caught had I been more aware. By dismissing it as rote repetition I've missed the point entirely of the attributes it might have refined.

So what does this have to do with anything?

On Software

As it turns out diligence is not a subject solely reserved for our school days. In fact it's even more important in our professional pursuits.

By training to be careless and rushing I find myself missing a lot of things unless I force myself to pay active attention. I've spent years correcting for this and adding guardrails for myself.

Those guardrails take to form of systems, tools, and processes. That means design docs, reviews, testing, monitoring, parity checks, and other means to verify correctness in my solutions.

Do I particularly like any of this process? Not really, but I also know the cost of carelessness and what it yields, and every time I find myself skipping steps because "I know how this works conceptually" I can find yet another careless mistake.

Asking Questions

Part of diligence, much like the process of solving mathematical problems, is spotting the edges of a problem. Where can this go wrong? What happens if bad data gets in? Could this handle the load we intend to put on it? Did you remember indexes?

Some of this comes with time and the development of instinct, but a lot of it comes from diligence of considering the lifecycle of what we deliver.

I've once heard it phrased as the difference between Software Development and Software Engineering, the practice of dissecting a problem and the thoroughness with which you must prove your solutions to be valid and correct.

The Ironic Leader

I do find a great deal of irony that a lot of my ability to catch bugs and identify problems comes down to overcorrection of my own carelessness, and a very roundabout way of developing my own form of diligence.

This very process has been instrumental in my repeated promotions throughout my career to my current level (at the time of writing this) of principal software engineer. I've had to learn the hard way, so I try and guide others to not make the same mistakes, and so many of those lessons come down to diligence.

Perhaps it might have been easier to do it the right way around, but then again perhaps I may not have appreciated its import had I done so either.

Wrapping Up

I can't say I always get it right even now, and that careless streak is still very much present in me as much as I'd like to deny it.

Every day is a challenge to overcome that nature, to do the right thing, to keep a high bar of quality, and to guide others down that same path.

Top comments (1)

georgy5 profile image
Karl Keller

Math was a great example, as it requires revision (which I consider to be a part of diligence, at least in academic contexts)
Your write-up reminded me of my final school year. I remember not revising my Math classes, and in the final year I needed concepts from the previous year.
"Ah, I remember this...., how did that go again?!?"
I had been careless because I had gotten good grades throughout the previous year.

Thank you for sharing your reflection, and reminding us of the importance of diligence.