Readings and musings, 1/29/2021

Overview

This week we have more articles about coding and software, and even a funny meme! So much knowledge, goodness, and humor, I could barely fit it all in.

22 Things You Should Give Up if You Want to Be a Successful Developer

link

The web is full of self-improvement lists (articles, tweetstorms, emails, etc), and sometimes they all seem to blend together. I still enjoy reading the good ones, though. They offer reinforcement of ideas, and sometimes an old idea offers fresh insight into a new situation.

This post has a few “developer-centric” rules, but most of what’s here can apply to general everyday life. Be a good person, live healthily, stop wasting time.

One that stood out to me was “Give Up Not Believing In Yourself”, largely due to the Winston Churchill quote:

“When I look back on all these worries, I remember the story of the old man who said on his deathbed that he had had a lot of trouble in his life, most of which had never happened.” — Winston Churchill

Personally, too much of my mental energy is spent worrying about things. It was enlightening to learn that Mr. Churchill felt the same (although his worries were bigger than mine!). A nice reminder to recognize unnecessary worry for what it is, as it occurs.

"Silver Searcher" for Windows

This one came from Twitter, via Scott Hanselman

Scott is a great resource for developers, and I learned a few things from this one:

  • Winget - I did not realize this was a thing. Similar to npm, rubygems, and chocolatey, this is YAPM (Yet Another Package Manager). It’s still in preview mode, so no telling where it will be in a few years. However, it’s always exciting to get in on shininess ahead of the crowd! Note the installation instructions didn’t work for me (I tried several different pages, signed up for early access, etc). I finally succeeded with the following Windows Package Manager installation.
  • ag (“The Silver Searcher”) - a wickedly fast search tool for your Windows file system. In this modern world of everything being searchable, my Windows hard drive seems to have been trapped in the past. Agent Ransack is a tool that works better than Explorer, but it still runs pretty long. The Silver Searcher appears to blow all that away performance-wise. Definitely worth checking out.

A Defensive Approach to Engineering Quality

link

This is the first of two articles from Duncan Mackenzie, an engineering manager for documentation at Microsoft. I found him on Twitter, read a few articles, and liked what I saw. He earned a Twitter follower on this day, my friends.

In all my experiences as a software engineer, there’s always been tension between “the business” and Engineering. New needs, vague requirements, and immediate problems requiring attention. “Can you make this quick change so that we can do XYZ?”.

This article offers advice for triaging incoming requests, and establishing long-term policies. With forethought and process, an Engineering organization can effectively handle smaller, short-term requirements. They can also build mechanisms for revisiting short term fixes in the future, and removing them when no longer needed. This practice helps maintain the quality of the code base over time.

It was a good read, and should resonate with any Engineer trying to juggle immediate needs from “the business”

Why You Should Care About Performance

link

Another article from Duncan Mackenzie…this one provides helpful techniques for measuring the performance of your web app.

Most people link performance to user satisfaction - ie, slow sites annoy users, and bad performance may cause them to leave. This article illustrates a deeper (and arguably more important) motivation to improve site performance - search engines use performance metrics in their overall relevance ranking. In other words, if you have a slow site, it may slip in the SEO rankings!

The article both informs, and provides links (eg, webdev vitals) for testing your site’s current performance. I actually hooked https://martyice.github.io to Google Search Console - unfortunately my trickle of accidental readers doesn’t provide enough volume to make an impact.

Look at me, Google! Look at me!!

Fulfilling the Promise of CI/CD

link

While everyone pays lip service to CI/CD practices, this article argues that the focus is typically on “CI”. ie, code is checked into source control, automated process build and test it, but it is not immediately deployed. Rather, deployment to production still requires manual steps, and code changes backup over days and weeks. Harmful effects arise as a result, including the need for more “managers”, loss of context when bugs appear later, and more overhead required for context switching.

This article was written by Charity Majors, cofounder/CTO of Honeycomb. Honeycomb provides a platform for building Observability into software. In other words, it allows you to “know what’s happening with your software”. She also hosts an informative podcast, O11ycast, which covers this topic extensively. I love podcasts like this, because I get to learn passively.

This article has one main call to action - decrease the time between a code change, and its deployment to production. Whittle that number down relentlessly, and good things will follow.

Gamestop Meme

We’ve all been reading about the Gamestop story this week. It’s a briar patch of complexity, spanning a wide array of concerns - legal, financial, social, societal, etc. I wouldn’t try to encapsulate or judge the story here, but wanted to share a meme I kept returning to in my head, and laughing out loud:

Big Bird doesn’t know why he’s been invited to this important club. But he’s got his notebook and markers, and is going to give it his best effort!

Conclusion

Thanks for tuning in! I will continue to read and post, and hopefully you will continue to read. May this dance of brain melding be beneficial to all who take part.

Written on January 29, 2021