It was a dark and stormy night at the Coffee House, full of dark and stormy ranchers. They were road-weary from being out on the cattle drive trail all day, some of them with just a few cattle here and there, making the long trip from Deadwood up to Dodge City. Lacey and Brenda were knee-deep in wet, smelly ranchers in their long oilskin coats and longer oily hair and beards. But on the bright side, as Brenda remarked to Lacey when they occasionally passed while serving drinks, these guys were sure ordering a lot of froofroo drinks, and the coffee house got a really good profit from those.
"I shore am tired of being on the road all the time," sighed on of the strangers.
"Me too," sighed another one from across the room, with a full whipped cream mustache and a little bit of cinnamon in his hair from his cocoa-cummulonimbus frappe. "It shore is tiring, having to take two or three cattle to town every day or so, just when somebody orders one."
"It shore is. And there's so many of us on the road, that it seems like there's always a traffic jam," sighed a third, who oddly was wearing a nametag saying 'Hi, My Handle is Tex'. "Heck, I'm just going into town without any cattle at all, just to get the phone number of our grocer, Mr. Plantagenet."
"Hell, Tex, don't you have his phone number already?"
"Well, sure I do, Randy, but how do I know if it's the latest phone number? Gotta make sure I have the latest number."
"I ain't so concerned about the newest phone numbers." A young cowboy in the back spoke, who looked more like a city slicker than a rancher. "But dang, I wish I didn't have the phone books for the entire country in my backpack. Makes for tiring walking. But, you know, I might have to call someone, so I keep carrying'em along."
Lacey and Brenda glanced across the room at Sid and Zeke, sitting in a corner sipping their plain black coffees. Brenda stage-whispered "What in tarnation? That's ridiculous, making the trip down that long trail just for a phone number."
Sid nodded and Zeke rolled his eyes.
"It shore is a recurring problem," agreed Spike, the first one to speak. "Wish we had a solution."
"I tell you another recurring problem I have," added Tex. "I've got some carrier pigeons I raise that I keep in the same pen, of course, as all my cattle. And every time I go in to check on a cow or feed them, those pigeons get spooked and fly away! I spend half my time chasin' after them pigeons. Nearly every day, too."
"Man, do I know what that's like," chimed in Spike. "I've got camels that I keep in with my cows, and I have to go in and feed the cows around about three or four times a day, but I feed the camels maybe once a week. But dang, them camels get all nervous and some of'em just escape whenever I go in that pen."
Brenda and Lacey started giggling, and Zeke and Sid started studying their newspaper awfully closely.
"I'll tell you what's a real recurring problem," said Tex. "I am so tired of filling up those 13 bins of feed around my place. I got one by the house, one by the outhouse, one by the corral, one halfway to town, and a whole bunch more. I gotta maintain that corn in thirteen places, dangitall. And I gotta keep corn, and camel food, and camel goodies, and donuts for me, all in every single one of them locations. I'm surprised I get any work done at all!"
The four locals just couldn't help themselves anymore. RINGADINGADINGADING!!!! The bell over the coffee bar rang and Brenda sang out, "All right, you sorry excuses for ranchers, just you stop spouting off your recurring problems and you turn around up here. We all are gonna show you some reusable solutions. C'mon up here, Sid, Zeke, if you remember anything from that patterns class we went to a couple months ago."
Sid and Zeke hurried up to the front. "What are we gonna teach'em, Lacey?" asked Sid. "Are we done gonna convert MVC or Mediator for'em? I'm not sure I remember all the patterns well enough to tell'em, especially not to a bunch of sorry ranchers like these."
The sorry ranchers picked their grizzled jaws up off the ground, and started protesting that they weren't sorry excuses, but Brenda shooshed them and they shooshed. "You just sit tight. We're going to tell you how to solve all this tarnation."
Lace turned to Sid, "No, Sid, we aren't gonna convert all them patterns to cattle ranching. We're just going to tell'em what the principles are. That's all. You remember them principles?"
"I do!" yelled Zeke, happy to have something to do. "Give me that trollopy face-painting lipstick of yours, and I'll write'em up here on the mirror."
And he wrote the following up on the mirror, above the newfangled latte machine. He had surprisingly elegant handwriting for an old cowpoke.
Them Four Principles of Patterns (Which Be Reusable Solutions to Them Recurring Problems)
Stay off the network! (Or in other words, don't go on the road to town every ten minutes, especially for stuff you don't need that bad! Just wait for a month or two and then take all your cattle to town. And for stuff like phone numbers, don't worry so much about having the last information.)
Software is fragile - divide up unrelated stuff so you don't break parts that you don't mean to. (In other words, keep your pigeons in a separate pen, and keep the camels and other stuff on a different feeding schedule separate from the regular feeding schedule varmints.)
Minimize the amount of information stored in any piece of code. (In other words, just carry around a list of the phone numbers you call the most, don't carry around the phone books for the whole darned country!)
Minimize duplication. (In other words, just have one or two locations for all that feed, and keep seedcorn in one and camel food in another.)
Y'all see what we're saying?"
Tex, Spike, and most of the rest of the group were still staring kinda stupid-like but the young city-slicker lookin' cowboy in the corner spoke up.
"Why, you're telling us that everything we done is wrong!"
There was a threatening murmur from the audience, and the four at the front ganged together a little closer.
"No, no," smiled Brenda. She gave them the works: the smile, the hair toss, the pat on the knee to a couple of'em in the front row. "We done all these mistakes too! But we done gone to a class in th city and we got a whole lot better at a lot of stuff."
There was some mollified grumbling, but it was clear the tide had turned.
"That's right," nervously added Sid. "There's a whole bunch of fancy patt-terns that we learned, but really they all come down to these four things. Stay off the net - umm, the road; don't put stuff together that doesn't belong together; don't carry around information you hardly never need; and don't keep a lot of copies of the same thing all over the place."
"That's all!" chorused Brenda and Lacey.
The visiting ranchers, sparkles in their eyes and a bounce in their step, rose to their feet. "That' all! Jest four things, that's all!" And the joined voices in a rousing chorus of "Don't Fence Me In," but intuitively realizing that the right thing patterns wise to sing would be "Please Fence Me In," they moved out the door en masse, quickly disappearing into the night with cries of "Don't duplicate!" and "Stay off the trail and/or network!"
"That's an awfully inspiring sight," sighed Lacey as she stared after the last of them. "Say, sir, I didn't catch your name," she said to the young city slicker rancher.
"Alexander," ma'am, he said. "Chris Alexander. I'm helpin' build that big cattle ranch up in Deadwood. You folks have given me an awful lot to think about."
So, Sid, Zeke, and the rest of the Java ranchers were sitting around, kinda depressed-like, and drinking their coffee a lot blacker than usual.
"Well, at least this ain't gonna ruin the Java crop," sighed Sid.
"That's for sure, Sid! You're darned tootin'!"
Sid looked at him, kinda grumpy, and said, "You know, Tex, you seem awful perky for a guy who's probably losing his hay crop. You got somethin' extra in that coffee?"
"Nope! I just ain't losin' my hay crop."
"Why, you sure are! You're in the same boat as the rest of us."
Tex smiled. "Nope, I'm in a boat of my own. You see, seems like we lose our hay crop maybe every two or three years, more than any rancher really can take. It's a recurring problem, you might say. A recurring problem a lot of us have. And so I says to myself, I says, seems like a guy with any smarts at all could figure out how to not be stuck like this."
Zeke was interested by now, and a little testy and overworked from his triple espresso. "Beggin' your pardon, Tex, but I'm shore you didn't mean to imply the rest of us ain't got no brains."
"Oh gosh, now, Zeke, I didn't mean that at all. I just mean, I started thinkin' about it. I looked at the situation and I says to myself, it rains a lot here in September. That's bad.