Nathan Ducasse’s Post

View profile for Nathan Ducasse, graphic

Software Engineer at Fortune Brands Water Innovations

I've been reading through a textbook I've had on my shelf since college, "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. "Uncle Bob" Martin. Great, easy read, highly recommend. Within the first page I felt seen, understood, and validated in my professional struggles. I want to share a quote from the first chapter that really stuck out to me, regarding attitudes towards messy code and who is to blame for it: "[...] How could this mess be *our* fault? What about the requirements? What about the schedule? What about the stupid managers and useless marketing types? Don't they bear some of the blame? "No. The managers and marketers look to *us* for the information they need to make promises and commitments; and even when they don't look to us, we should not be shy about telling them what we think. "[...] 'But wait!' you say. 'If I don't do what my manager says, I'll be fired.' Probably not. Most managers want the truth, even if they don't act like it. Most managers want good code, even when they are obsessing over the schedule. They may defend the schedule and requirements with passion; but that's their job. It's *your* job to defend the code with equal passion." This is something that I truthfully have struggled with, and still do, in my career. This quote reminded me that *I* am the expert on the code, and I am responsible for it. It's my job to understand how and what effort it takes to get tickets done, yes, but more importantly, what it takes to get it done right. Maintaining a high standard in the code will add time to any given ticket, but will save time over 10, 20, 100 tickets. I must include that caviat when communicating estimates, rather than giving the estimate for the bare minimum for the sake of "saving time" or "getting it done ASAP." My experience at my current position I think exemplifies this. Having taken over a fairly derelict project full of "unclean code," the onus is on me to become the expert on the code regardless of quality, and to be capable of making meaningful additions to the code in reasonable time. However, naturally I was stalled, "wading" as Uncle Bob puts it, for a very long period of time due to the lack of care the project had before I came along. Moving forward while following clean code principles means to clean the existing codebase as I go along, ensure that what I add or modify is clean, and most importantly, include that prerogative in my calculus for work estimation. "The Boy Scouts of America have a simple rule that we can apply to our profession. 'Leave the campground cleaner than you found it'" -Robert "Uncle Bob" Martin, "Clean Code"

Gwendolyn Biggert

Administrative Manager at Mauna Kea Observatories Support Services

6mo

Very wise insight

Like
Reply

To view or add a comment, sign in

Explore topics