Tuesday, April 2, 2019

Saab 99 GLE vs Mazda Miata MK1: Adventures in Car Restoration and Test Framework Building

Now that I have had a couple of times (and some dress rehearsals leading up to them) I feel pretty good about the material that I've been presenting in my workshop "How to Build a Testing Framework From Scratch". Actually, I need to take a small step back and say that the "From Scratch" part isn't really the truth. This workshop doesn't really "build" anything from the initial code level.

Instead, it deals with finding various components and piecing them together and with additional glue code in various places making everything work together. As a metaphor for this, I like to make a comparison to restoring cars. I'm not super mechanically inclined but like many people who were young and had more imagination than common sense, I harbored a desire to take an older car and "restore" it. My daughter has had a similar desire recently. Both of us have undertaken this process in our late teen/early 20s but both of us had dramatically different experiences.

When I was younger, I had the opportunity to pick up relatively cheaply a 1978 Saab 99 GLE. It looked a lot like this:

1998 Saab 99 GLE Hatchback autobile, burgundy paint

For those not familiar with Saab, it's a Swedish car brand that produced cars under that name from 1945 until 2012. It's a boutique brand, with a dedicated fan base. It has a few distinctive features, one of the entertaining ones being the fact that the ignition (at least for many of the vehicles) was on the floor between the driver seats. The key point is that it was not a vehicle where a large number of them were made. It's a rare bird and finding parts for rare birds can be a challenge. In some cases, I was not able to find original parts, so I had to pay for specialized aftermarket products and those were expensive. It also had a unique style of transmission that was really expensive to fix. Any guesses on one of the major projects I had to undertake with this car? The price tag for this was $3,000 and that was in 1987 dollars :(. When it ran, it was awesome. When it broke, it was a pricey thing to fix. Sadly, over the few years I had it, the number of days where it didn't work or needed work outweighed the days when it was working in a way that made me happy. I ultimately abandoned the project in 1990. There were just too many open-ended issues that were too hard or too expensive to fix.

By contrast, my daughter has embarked on her own adventure in car restoration. Her choice? A 1997 Mazda MX-5 Miata MK1. Her car looks a lot like this:

1997 Mazda Miata convertible, red paint, black convertible top

Her experience with "restoring" her vehicle and getting it to the condition she wants it to be, while not entirely cheap, has been a much less expensive proposition compared to my "Saab story" (hey, I had to put up with that pun for years, so you get to share with me ;) ). The reason? The Mazda Miata was and is a very popular car, what's more, a large number of them were made and they have a very devoted fan base. Because of that, Mazda Miata parts are relatively easy to find and there are a large number of companies that make aftermarket parts for them. With popularity and interest comes availability and access. Additionally, with a small size and relatively simple construction, there are a lot of areas that she can do work on the car herself that doesn't require specialized parts or tools. In short, her experiences are night and day different as compared to mine.

Have you stuck with me through my analogy? Excellent! Then the takeaway of this should be easy to appreciate. When we develop a testing framework, it may be tempting to go with something that is super new or has some specialized features that we fall in love with. There is a danger in loving something new or esoteric. There may or may not be expertise or support for the tools you may like or want to use. There may be a need to make something that doesn't currently exist. The more often that needs to be done, the more tied into your solution you are and will have to be. That may or may not be a plus. By contrast, using something that is more ubiquitous, something that has a lot of community support will be easier to implement and will also be easier to maintain and modify over time. It also allows for a greater flexibility to work with other applications where an esoteric or dedicated framework with exotic elements may not have it.

Stay tuned in future installments as I tell you why I chose to use Java, Maven, JUnit, and Cucumber-JVM to serve as the chassis for my testing framework example. Consider it my deciding I'd rather restore a Mazda Miata over a Saab 99 GLE.


Robert Day said...

Well, thinking of the three Saab 99s and the Saab 90 I owned back in the 1980s and 1990s, the weak points were always the brakes - not because they were inefficient, but because they were unlike the brakes of most other cars on the road (in the UK, at least). More, the handbrake was unusual in that it applied the main service brake manually instead of acting on a separate set of brake shoes, and a big part of the mechanism was dangling off the brake calipers and got exposed to all sorts of road muck, and so would get all gunged up and stop working properly. Most local garages couldn't figure out how to make the brakes work properly, even when I left my copy of the service manual in the car. It was only when I went to a Saab dealer that I got good jobs done on the brakes.

But the weak point that I know a lot of Saabs had was the head gasket; I can imagine that being a fairly big ticket item. And given that the gearbox was bolted onto the bottom of the engine block, any job requiring even fairly simple gearbox work would involve getting the engine out of the car, and that's always pricey. (Though not replacing the clutch - manual transmission versions could have that replaced without lifting the car, though you had to have the bonnet off and then drain the cooling system and remove the radiator before getting at the clutch housing.)

Of course, the analogy is a bit false. Do you choose the simple restoration project or the one that ends with your driving the more unusual and exotic car? The objective of the exercise isn't the same as building your test framework. Anything you are doing as part of a business (yours or someone else's) is bound to have different objectives to something you do for pleasure. (And I've worked enough on Saabs to know that your definition of 'pleasure' may vary.) In our Day Jobs, we don't get paid for the elegance of our solutions or by how unique the end product is. We get paid to deliver an outcome and to do that in the quickest and most economic way consistent with meeting the client's needs. It may be boring, but as long as you deliver on time and to budget, no-one minds that much. But when we engage in a project in our spare time, the last thing we want is to be bored.

And yes, I drive a Saab now, as well. (https://robertday154.wordpress.com/2018/02/15/fiestas-end/)

Michael Larsen said...

Thank you for your reply, Robert. I agree it's not a perfect analogy but it helped me explain a few things in a workshop I was delivering. I loved my Saab 99 GLE. I didn't love how much effort it was taking me to keep it running and looking cool (and it looked really cool when I was driving it, black with burgundy interior, I loved it). I meant to emphasize esoteric vs. available, and to that end restoring a Saab is more esoteric than restoring a Miata :). Now that I'm older and a little more knowledgable, I might dare to take on another Saab as a project again. Just no Sonnets. I'd go broke trying to take that on (LOL!).

Saab people are special. I will always cherish the fact that I was one ;).