Monday, December 24, 2012

Larry Berry (Mintec) 1962 - 2012

This is another somewhat philosophical post.  I promise I will post code and tangible how-to stuff again.

A mentor of mine, the individual who turned me on to Python, has passed on.  The whole deal was a bit sudden and really gave me pause.  What I'll try to do here is briefly summarize Larry's body of work, and put it in perspective with regard to software development and domain specific software.  Although his efforts won't see headlines in either mining circles or software ones, what he did was pretty amazing.

Larry worked for Mintec, a mine software vendor, from 1990 on. His specialty and his passion were Ore Control, the place where mine operations and engineering come together, the place, figuratively speaking, where the rubber meets the road. This part of the mining process, in my opinion, was often the bastard child of most upper management. My impression was that at the time Larry began his career at Mintec not all, but many management types had the idea that if you just planned the mine right and threw a bunch of grunts into the pit with some equipment, everything would magically happen. Tactical execution and measurement of that process are important. Larry was one of the people who recognized this immediately and did something about it. He championed until his death the idea that Ore Control and short range planning were information intensive parts of the mining process that demanded an operational database and a programming API that allowed for dynamic process configuration.

Around the year 2000, Mintec released a planning database and a Python API. Larry was very much a software implementer at the time and not a developer. Nonetheless, his input was an important part of the feedback loop within the relatively small mine software company. He told me that they had been looking at Lua as an API. It did not particularly work for him and they settled on Python instead. By comparison, I've heard that one of the other software mining companies uses Perl for its API, and another one VBA. I'm biased, but I think that for ease of learning for the customer and internal productivity, Mintec made the right choice. They started out with Python 2.1, then, along with some changes to the API, switched to Python 2.2. Today we are using Python 2.5.

As a programmer, Larry was mixed. He was a miner first, and anything that got in the way of his goal was a mere distraction. His code was clean, but seldom bulletproof. I would call him an offensive programmer, the opposite of a defensive one. He was an upbeat optimist. I was and am a somewhat morose pessimist. Much to the entertainment of those working around us, we would argue about code. The Larryism that caused me the most heartburn was the variable declared inside a conditional block (Python is a dynamic language that allows you to do that) that under a corner case didn't get executed.

Larry: Well if your data were squared away it would work!

Me: LARRY! Our data are NEVER squared away!

The crown achievement of Larry's Mintec career, in my estimation, was not so much his code, but his driving through of the whole MineSight Operations package, basically the Ore Control software I described above, internal to Mintec and within the mining industry. I saw things from the client side where Larry was the vendor and I represented the mining company. I can attest to the blood, sweat, and tears involved. Spending weeks away from your family doing an implementation in a decidedly unergonomic, dusty mine office and debugging software over the phone on Christmas Day are things you can't pay someone enough to do. Larry was a true believer in his product and did what was necessary to make it happen.

Ironically, Larry was promoted to Project Manager for MineSight Operations about eight months before his death. He had arrived after all that hard work. I would tease him about spending his time in a corner office with the head of the company smoking cigars and sipping scotch. He laughed. The guy never stopped working. He was very much a type A personality. The corporate life would have been easier on him and his family. I don't know how well he would have liked it long term. He loved to be in the thick of things, fixing things, making things work beautifully.

The main lesson I can glean from Larry's life is that if you want to do something significant, liking what you do is not enough. You have to care intensely and passionately about what you're doing. He was one hell of an individual.