On Upgrades

I’ve got my 2015 Macbook Pro set up next to my beloved Weathertop (running Linux for programming and Windows for gaming). It’s running iTunes and Tiny Desk concerts and basically acting like a media center right now. I also write all of my fiction on there and use it to run almost every aspect of Luna Station Quarterly.

I’m looking at this miraculous device, all aluminum and crystal and circuits and I’m realizing it’s perfect as it is. I’m able to accomplish everything I need (including programming when I’m away from my desk), it runs all the programs I need, it’s able to play music for days and days. It fulfills every need and gripe I had with my earlier machines. It is, quite simply, enough.

My phone is a little slower than I’d like (and I’m upgrading that next year because it’s showing its age) but it functions fine and does what I need of it as well. I can connect with everyone I want to, play some games to entertain myself, and remind myself of literally anything I need to do.

At some point in the last couple of years I’ve stopped craving innovation in my devices. What I have does exactly what I need it to do. The dissonance with this realization is in navigating the upgrade path that is so relentless in both hardware and software. The need of companies to create perceived value without actually doing much in the way of impactful innovation for the end user is a symptom of larger problems, of course. Still, it creates a challenge that I have to address from time to time.

The one personal advantage, I suppose, is that when I am required to update a device, I have the opportunity to assess my options with a relatively clear perspective. I can make choices based on my needs, because I know what they are or can list them relatively easily. Stepping back from the annual cycle means I feel less tied to the microimprovements year-to-year and can find the best tools for me at the time, hopefully with enough room in the lifecycle to keep from having to go through the process again anytime soon.

For now, that will have to suffice, though I can’t help feeling that there is a better way. Though other options I think about mostly involve accepting a certain amount of obsolescence that I’m not sure is viable, considering my career and personal work. My default moving forward is much more likely to stick with the old until it is no longer not just viable, but livable. When the situation with my technology breaks down from doing what I need of it, only then will I assess and upgrade.

Evolving Interactions

On a slack I frequent daily, someone asked a question in the #watercooler channel we use for general conversation.

Genuinely curious to hear others’ experiences: is there a subset of tech Twitter/Mastodon where the dynamic is more conversational and less, uhh… “/dev/null with likes”? Trying to suss out for myself whether I should treat it mentally as more of a news feed or an interactive environment.

It was good timing for this because I’ve been thinking a lot lately about my presence on social media and how I use the internet in general.

I’m one of those folks who’s basically off Twitter unless someone sends me a specific link and I don’t have a personal Facebook account. As for Mastodon, I use it a lot like a microblog a la Tumblr. The instance I’m on has a 10k character count limit so I can get a whole, fully-formed thought out (mine posts average around 500 characters). I do indeed talk about tech stuff and I do have cool conversations with folks on occasion. It’s more measured and slow due to the nature of the platform, though that suits me just fine. I’ve muted all the shitposting because that’s not why I’m there. In other words, there are definitely pocket universes where real conversation still happens on the internet.

Mastodon in particular doesn’t have any dark patterns (or any algorithms for that matter) that work to keep me sucked in and feed any FOMO I have. This makes it easier to close it down when other things need to be in focus. These days I find myself interacting with Slack folks (like we used to do on forums), using Mastodon for microblogging (hello LiveJournal and Tumblr), and putting long form thoughts out via blog (I see you hanging in there Blogger) and pretending it’s all an improved UI on 2000’s era functionality.

This way of using the internet has been an evolution in my thinking and, in many ways, a reclaiming over the last year. Actually, when I think about it, the real sea change for me in my attitude about social media was after reading “Deep Work” by Cal Newport followed up by my recent move that kept me offline by necessity. The book got me thinking and assessing and the time away allowed the perspective to see what I valued in my online time and where I really wanted to spend my energies.

At the end of the day, I’ve changed my default interaction with the platforms as output rather than input, quieting my feeds to a slow trickle. Because I have gotten responses from folks telling me that the stuff I write about hits important notes for them, I continue to share things, but I do what I can to put the whole thought together, provide context, and make it as meaningful to myself as it may be to them.

I’m pretty pleased with the changes I’ve made. The internet feels useful again, my time doesn’t feel wasted at the end of the day, and sometimes I am even of use to others who follow me. That’s really all I ask for in such a powerful tool.

On “Software Engineering”

There was an xkcd comic going around a couple weeks ago. It was funny in a disturbingly “it’s funny because it’s true” way. Further driving the point home was this article on writing software tests I read this morning, where Process Engineering practices used in industrial planning is compared with Software Engineering practices for building applications.

Much of software built today is created with some level of testing applied, at least on the back end. The front end has been slower to integrate testing, though the tools are just as strong. But in both the front and back end, testing is seen as a necessary evil at best, and an unnecessary burden at worst. A lot of this sentiment, from my experience, comes from a couple different sources.

First, is simple ignorance. The way many of us have entered the industry, through various levels of self-teaching, means there are gaps in understanding of best practices. As someone who came in this way, I’m hyper aware of these gaps and work to fill them. Testing is one of the most difficult skills to learn for a newcomer, especially if you’re learning on your own. I can’t speak for the bootcamps, having never attended one. I like to think they teach BDD or TDD as a matter of course.

Second is cost. Testing takes time. In the startup world of “move fast and break things” the things that break are supposed to be the old ways of doing things, opening up the opportunity for more efficiency and a better ways. When testing is sidelined in favor of pushing out a minimum-viable product, what often ends up broken instead is the code base, the application itself and the bread and butter of the business being built.

Third is, quite frankly, laziness on the side of the developers. Testing takes time. It means having planning in place. It means thought processes must be applied to ensure the functions being written do their job properly. This means that you can’t just dive in and start writing code, something most developers will tell you is the “fun” part. So there’s a big avoidance factor at play as well.

Mechanical engineers like my father chuckle about our industry’s use of the term “engineer”, and rightfully so. While there are many folks who work hard to plan and test, there are many more who prefer to dive in and start writing code without those practices. When the software does not work as expected, or becomes more and more difficult to maintain as the bug list grows, none of us should be surprised.

If we are to model ourselves after the aircraft designers and the building engineers mentioned in that xkcd comic, then we need to embrace their practices of testing and planning as well.

The software we write infects and effects the world around us. Algorithms rule everyone who touches the internet now. Software is dangerous, it’s a tool that can and is used as a weapon, a subtle knife used to stab more often than not. We have a duty to everyone on the planet to get our shit together as an industry. Otherwise, what the hell are we doing calling ourselves Engineers?

Pruning

I was thinking about my phone today. Eventually it will need replacing, but with what? Do I want to stay with the iOS ecosystem? Is there some better option out there?

I went through a little thought experiment where maybe I would purchase a basic, non-smart phone and get an iPod Touch for the stuff I use my current phone for. Getting away from iTunes (which I only use for organizing my music library) is a massive challenge and I’ve got quite a few games I’m pretty attached to.

In the end what I realized is that I needed to declutter my phone, make sure the notifications I get are minimal, and find a better option for a bedside clock.

I dumped most of the games I kept on there “just in case” I wanted to play them (I game a fair bit on my iPad, those games will be there instead). I moved my social media apps (Twitter and Mastodon, I don’t have a Facebook account) deep into a folder. I like the option of posting to them as needed, but burying them makes me less likely to read the feeds on there.

Everything on the homepage is daily use. Apps on the middle page are stuff I use pretty often but not daily, and utilities it would be a pain to have to download (the retail apps particularly) the few times a year I need them. The games I’ve left on their I use daily for brain breaks and I like variety in them.

All in all, I’m glad I went through this process. I feel like my phone is more of a tool again and will help me keep my daily practices more consistent and distract me just a bit less.