The Magic of Agile: No Magic

by Tom Harrison Jr on September 11, 2015

I have worked at many companies developing software over the years. When Agile came around it was clearly a far, far superior way of doing software than other approaches. But it’s not magic. Many companies fail to successfully adopt Agile. I have seen the same failure in several different places. Remarkably few companies get the […]

Stepping Back from Ruby

by Tom Harrison Jr on August 12, 2015

I am not a programming language bigot. All have their purposes and their raison d’être. The strengths or shortcomings of a given language are largely based on age, and intent. I have spent many years listening to programmers plug their favorite language, and frankly, it’s annoying. We work with tools as programmers, and most languages […]

“How to Live Wisely”, from NY Times

August 1, 2015

How to Live Wisely is a short article in today’s New York Times. The author is one of several professors at Harvard who offer seminars to first year students on how to balance goals in life with how to actually conduct it. I am not a first year college student, but it’s very relevant to […]

Read more →

Social Connections by Numbers

June 6, 2015
Thumbnail image for Social Connections by Numbers

We spend lots of time wondering how new technologies will affect (read: harm) our children. I am not sure these technologies are so bad, and maybe fill a gap that a lot of other social changes have created. Also, it strikes me as funny that a phone number is still an important identifier … more […]

Read more →

API as Product Definition

May 14, 2015

Selling into large institutions is hard unless you hold all the cards. Sales are a visual thing — customers see demos, slide decks, mockups and all the rest and start thinking along the lines, “Wow, that’s kind of like what I want … hey, can your product do this?” Of course the answer is usually […]

Read more →

Just Do It (Sometimes)

May 13, 2015

We have an incredibly clever system designed to solve several problems. These were not problems we had yet but were built in anticipation of the need. It would accept jobs to be executed, allocate resources from those available or create more machine instances, pull jobs from a queue, balance priority, scale down when needed, allow […]

Read more →

As It Happens, Sometimes Things Don’t Work

May 8, 2015

Some code I was trying to fix today had this delightful snippet: def needs_update? bundle_command(‘check’) $? != 0 end OK, so let’s go “la la la” and ignore the dependency on the global system variable $?. The intent is to use the return value of a system command (bundler) to return a boolean value from […]

Read more →

Biggest performance bump in ages: SSD

May 6, 2015

I hadn’t realized how slow my MB Pro was until I started using one with SSD.  Two nearly equivalent machines for home and work: 16GB RAM, modern CPU, but one with SSD. Everything is faster, notably reboot, but any startup.  If I restart Chrome, where I typically have 15 or 20 tabs open it is […]

Read more →

I Would Fail Most Tech Interviews

May 3, 2015

I have interviewed several hundreds of engineers over the years. I confidently say I am a good and experienced software and systems engineer.   But I would instantly fail most of the technical interviews whose questions I see posted on the web, and even that members of my team have asked. I Googled “software interview […]

Read more →

You Never Really Go Back

April 30, 2015
Thumbnail image for You Never Really Go Back

I had the chance to talk to some technical folks today.  The conversation helped me further coalesce my ideas about “Make it work, Make it beautiful, Make it fast” that I have written about here before.  In short, it’s three parts of one whole, and not three distinct phases. One person said that it was […]

Read more →