On the way to lunch yesterday, a friend of mine was talking about how object oriented design works with the example of vehicles. It was a pretty good analogy. I've been considering processes a lot lately, and gardening works for that.
Of course, a lot of people won't understand the gardening aspect, but if they understand software development they may get some ideas on how gardening works. That's not a bad thing.
As it happens, after my father passed away I ended up doing some agriculture for a while - working on some land that he had passed down. Surrounding farmers advised me and I listened, but what I was really doing was applying software development principles to something else that has a life cycle, that needed to be managed and ultimately had value.
Let's start off with this simple principle: Everything has a life cycle, from seed (idea) to fruit, vegetable or flower.
In between there's an implementation, and that implementation - if planned well - can grow you rows of corn. The planning requires understanding the plant itself: How much light it will need, how much water, what soil nutrients are necessary and how much attention the land in between will need to keep out weeds and unwanted insects - where the analogy almost fails is with bugs, but some bugs are good (and those we call undocumented features in software development).
So if we plan everything well, we have well spaced plants that have room to grow around them, and where they don't compete for light or nutrients. Planned better, they are as close together as possible but not close enough to rob each other of nutrients. Planned even better, like the Three Sisters, they nurture each other and help sustain one another. Just like a well planned and executed software project.
Without planning, you will likely end up with clumps of plants that aren't doing very well. They rob each other of the resources that they need; they may even grow so tangled that it's impossible to separate them - they occupy valuable space, but they do not actually produce anything. Just like a poorly planned or executed software project - something that seems endemic to startup companies as they rush to get income and develop code amazingly fast but without a plan for sustainability. If you've been in software development long enough, you've untangled things as companies mature, and you should grok that. In gardening, you might have to start from scratch - in software development, you typically cannot, and in this regard gardening can be much less frustrating. As a software engineer, you might want to consider gardening as a hobby. Very relaxing and rewarding.
Like software development, there are processes. There's irrigation, fertilization, pest elimination (maintenance - bug removal without tickets), maybe some pruning (bonsai) or maybe some removal of sick plants. There's quality assurance, where a discerning eye assures that all processes are resulting in what they should. There's configuration management, assuring that different plants are treated differently. Ultimately, there's a plan. There's the start of a life cycle, and there is the end - the planned obsolescence.
Both can have markets. Sure, if you're doing a personal garden your profit may be pride, but maybe you're doing this for money and expecting a fiscal return. The market, though, is where software deviates from agricultural produce.
Maybe I'll write about that sometime.
Maybe it was allergies. Maybe it is some form of exotic malady I'm fighting off. For whatever reason, I felt the need to soak in warm water for a period of time and relax, then shower.
I filled the tub to an acceptable level. That's about roughly 4 inches below the top of the tub - I'm aware of Archimedes Principle.
As I hopped in the first sign of idiocy hit me. The overflow drain kicked in as soon as I got in. Now, before you think I'm some Goliath of a human being - I admit, I have pounds that I'd gladly send to a hungry family somewhere - I'm 5'3" and weigh in the high 160s. Maybe mid 170s, but this is fiction, so what do you care. I have big bones. Get over it. The point is, I'm not huge. In a device designed to allow people of average height and size (read: larger than myself), I should not get in and have the overflow drain kick in. So I decided to see how else it didn't fit my dimensions, much to the amusement of the supervising dog.
I sat up straight, and my feet touched the other end of the tub. Clearly, this tub was designed for people smaller than myself to luxuriate in. I flipped over, verifying - bending my knees and stretching my length out so I could get my face in the water. I barely got to do that. By this time, the overflow drain plug had stopped, so I flipped back over and pressed my size 8 1/2 feet to the other end where my toes were completely out of the water.
This bathtub was not designed for humans. It was designed for something else. And thus, I pen the unofficial story.
Our story starts with someone who wanted to kill kittens - by drowning. So they created this device, but were worried about children drowning when using the device. Her attorney (what, it can't be a her?) told her that she might get sued if a child drown while drowning kittens, so she put in an overflow drain as a safety device.
She patented it through her attorney, then had a few built to show off. She showed it to a person in marketing, and the marketing lady said, "Hey. This is a great solution for apartment and hotel bathtubs!"
The inventor grimaces. "That's not what it's made for. It's for drowning kittens!"
The marketing person grimaces, but goes out and does marketing studies with focus groups and comes back with results that the inventor/engineer cannot dispute. People like kittens. In fact, they like kittens so much they built an Internet around them. Bathing, on the other hand, was a luxurious idea that everyone wanted available though few would actually use. "We'll throw a shower on top", she said, "And you'll make money hand over fist!"
The inventor/engineer unhappily agreed. The marketer went out and wrote a brilliant ad, telling people how nice it would be to soak in water after a hard day. Women were clamoring for a nice way to sit while shaving legs (I think. I don't know much about it). Men were clamoring because women were clamoring because, for some reason, shaved legs were great but stubbly legs were evil.
And that's the story of the bathtub. Designed for drowning kittens, sold as a device to immerse yourself in while getting clean in dirty water, it did nothing but... make money for an engineer that wouldn't stick to her guns and a marketer who didn't really care if you could fit in the bathtub with more than a thimble full of water.
As I said, if this sounds like anything else, that's on you. This is the unofficial story of my bathtub.