Tuesday, November 26, 2024

The Most Powerful Potato Salad in the World

I had the craziest dream last night.  It was a restless night and I don't really feel rested at all this morning.  We went to bed at our normal time of about 11:00PM.  For some reason I woke up at 1:10AM craving some potato salad.  After a few minutes of thinking about it I fell into what I thought was a very light sleep and the adventure got started. 

It began with Tanya and I spending every waking moment for two weeks in our tiny  kitchen trying to develop a really good recipe for potato salad.  No jobs, no responsibilities, no bills to pay.  Just potato salad.  We tried countless combinations of ingredients.  We laughed. We bickered. We tripped over our calico cat.  We thought about long passed relatives.  We contemplated man's purpose for existence and speculated about mankind's ultimate and certain demise.  We reminisced about our childhoods, mistakes we had made in life, and all the things that make up two lives well-lived.  

Eventually we hit the target and came up with a recipe for the best potato salad either of us had ever tasted.  Jackpot.  We quickly recorded our precious recipe on a small scrap of paper.  After two full weeks we were done with our masterpiece.

We were having a close friend over for dinner the following Friday and decided to grill out some kind of meat so we could serve our fabulous creation as a side dish.  The anticipation grew every day as we got closer and closer to Friday.  It felt like you feel when you special order a brand new car and the dealer tells you it will be ready to pick up in a few days.  There was electricity in the air.  The dog and both cats knew something big was about to happen.  They could feel it through their special senses that humans do not possess.

We carefully gathered our ingredients during the week.  Potatoes and Duke's mayo from Kroger, onions from Trader Joe's, cage free eggs from Hy-Vee.  It was like we were putting together an epic symphony of flavor.  On Thursday we brought it all together and produced about two pounds of our glorious masterpiece.  The stage was set.

Our friend arrived a few minutes early and, after a couple of cocktails, we grilled some burgers and set the table.  Our guest took one bite of the potato salad and he just stopped moving altogether and then just sat there motionless for an extraordinarily long time, letting his eyes roll well back into his head.  After what seemed like an eternity, he put down his fork and proclaimed that he had just eaten a bite of the best potato salad of all time.  We were all ecstatic and the three of us finished the remaining potato salad without even touching our cheeseburgers.

At this point we knew we had a winner.  Word of our incredible other-worldly potato salad spread rapidly.  Within a few days we had dozens of requests for the recipe.  After some careful consideration we decided not to share our miraculous formula.  Neither of us had robust 401k accounts or government pensions that would actually allow us to retire and live comfortably, so we decided that we might want to monetize our discovery sometime in the future.

Here's where the dream got weird.  When I was the Executive Chef at a fine dining restaurant in Omaha, I briefly employed a very talented cook.  He left after a short time to start his own restaurant and he has since become very successful.  We don't keep in touch regularly because he is a very, very busy man and running a restaurant takes up about 200% of your time.  In my dream he showed up at our door one day and asked for our recipe.  When we politely declined he asked if we would be willing to just make large quantities of our potato salad for him each week so he could sell it in his restaurant.  We also politely declined this request.

Over the next month we were contacted by many other restaurants, cookbook publishers, magazines, and internet influencers who all wanted the recipe.  We did not relent.  To keep the recipe secret we even hid the scrap of paper containing the recipe on page 43 of a Southern Living cookbook.

Then one day the doorbell rang.  Once the dog was confined to her kennel we opened the door only to find Elon Musk standing on our porch.  Although both of us regard Elon Musk as a loudmouth windbag who sucks the very soul out of everyone who crosses his path, he made a very compelling offer for signing over the recipe to him.  When we asked him what he planned to do with it, he said he wanted to fill a 55 gallon drum with really good potato salad and shoot it into space.  We declined, knowing that one day there would be a very real risk that some poor person out watering his or her garden could be killed or maimed by being hit with 300 pounds of potato salad falling from the heavens at supersonic speeds.  He stood on our porch and wailed for some time, eventually climbing into a ridiculous looking CyberTruck and speeding away, all the while shaking his fist angrily at us.  If this sounds impossible to you then please remember that this was just a dream.  The mind can be a terrible thing.

Some time later we received a very official-looking certified letter in the mail.  At first we were a little afraid to open it, but eventually we decided to see what it contained.  It was from Donald Trump.  He was demanding that we turn over the recipe to him immediately, stating (incorrectly, as always) that it was a matter of national security and that he was willing to go to extreme measures in order to obtain it.  After some thought, we decided to ignore the letter as we do for anything originating from Donald Trump.  Shortly thereafter we received a more aggressively worded letter, again demanding that we turn over the recipe.  We decided to ignore that one too.

Ignoring the letter turned out to be a mistake.  We thought that Trump's attention would soon turn to deporting anyone who wasn't old and white or possibly to stripping basic human rights away from all women and people of color.  There are still parts of the USA where the air and water isn't quite fully polluted yet, so we reasoned that decimating Earth's resources and a good part of it's population would keep him pretty busy when he wasn't playing golf at the taxpayers' expense and ultimately he would forget about the recipe.  We were wrong again.  Elon Musk really wanted our recipe and he had Trump's ear, so he kept it fresh in the very front of that feeble little adolescent mind.  

Very early one morning there was a loud knock at the door.  It was about a dozen fully geared-up members of the Nebraska National Guard and the Trump puppet Republican Governor of Nebraska.  They demanded that we hand over the recipe.  Again, we declined and both of us were promptly arrested and ushered into two waiting Humvees.

That's where the dream ended for now.  I've been contemplating whether the events that took place in my dream could actually occur and at this point I think it's entirely possible.  After all, we just elected a person who was arguably the worst President in America's history to yet another term.  Hispanic males just overwhelmingly voted for a candidate who has pledged to deport as many Hispanics as humanly possible.  A large percentage of women just voted for a convicted sex offender who has said he would favor limits on birth control and is more than willing to strip them of any rights to their own bodies.  Strange times indeed.

I hope to be able to go back to that dream again tonight and see what happened.  Sometimes I can do this if I think about the dream a lot right afterwards.  Believe me, I've been thinking about this one quite a bit today.


Wednesday, November 2, 2022

What Will I Leave?

 I turned 62 a few months ago.  Normally another birthday wouldn't bother me, but for some reason this one hit me hard.  I suddenly realized that my time on this planet is getting pretty short.  The last time I saw life expectancy numbers for the US I think the average was 79.1 years.  At first I thought I was OK with the thought that, statistically speaking, I should have about another 17 years left.  You can do a lot of stuff in 17 years.  Then I realized that 79.1 was an average and the life expectancy for men is only 73.2 years.  I really thought I could use that extra 6 years for something important, but now I need to cram everything into 11 years.

Now the thought of leaving this existence doesn't particularly scare me except for the fact that I've never done it before that I know of and I'm not exactly sure how to go about doing it correctly.  I suppose I'll figure it out when the time comes.  After all, billions of people before me have been able to stumble through dying without any formal training.  Some were very good at it and some were not so good, but they're all dead for sure.  You don't get to put it off until you get some training.  I'd rather do a good job and be remembered as someone who seemed to know what he was doing at the end.

So the part that hit me so hard was when I asked myself "How will I be remembered?"  I'm not sure if I've done or made anything that people will point to and say "I know the guy who did that.  He's dead now but he left this great thing for the benefit of the rest of us who are still here."  I feel some amount of pressure to make sure I have a few of those things done before I go.  I decided to take a personal inventory.

As I considered what I will leave for those who outlast me or come along well after I'm gone, I decided that there actually are a few things that might be of value to someone in the future.  I have four great kids, a lot of stuff that I've written over the years, a large body of photography work, and countless memories with friends, family, foes, and random people I've met over the years.  Obviously my memories will go with me, but hopefully the memory of me, whether good or bad, will last in the memories of others I've encountered over the years at least for a while.  I don't have a bunch of possessions, real estate, or a big stack of money stashed away somewhere (sorry kids).  I do, however, have a couple of pretty great cats.

So there.  I guess I really HAVE done something in those 62 years, even if I didn't realize I was doing it at the time.  Well, I better get this post finished up.  Only 11 years left and a lot of stuff left to do.

Note:  If you're reading this post and thinking it is some kind of goodbye note that will likely be followed by a self-inflicted early exit from this world, you can just stop it.  I'm not even close to being done with this life yet.



Saturday, January 8, 2022

Social Experiment About Priorities and Seeing Beauty Every Day

 Normally I wouldn't copy and paste something into this blog that was written by someone else, but a photographer friend posted this today and I think it is important enough to share with you:


“In Washington DC, at a Metro Station, on a cold January morning in 2007, a man with a violin played six Bach pieces for about 45 minutes. During that time, approximately 2000 people went through the station, most of them on their way to work.
After about four minutes, a middle-aged man noticed that there was a musician playing. He slowed his pace and stopped for a few seconds, then he hurried on to meet his schedule.
About four minutes later, the violinist received his first dollar. A woman threw money in the hat and, without stopping, continued to walk.
At six minutes, a young man leaned against the wall to listen to him, then looked at his watch and started to walk again.
At ten minutes, a three-year old boy stopped, but his mother tugged him along hurriedly. The kid stopped to look at the violinist again, but the mother pushed hard and the child continued to walk, turning his head the whole time. This action was repeated by several other children, but every parent - without exception - forced their children to move on quickly.
At forty-five minutes: The musician played continuously. Only six people stopped and listened for a short while. About twenty gave money but continued to walk at their normal pace. The man collected a total of $32.
After one hour:
He finished playing and silence took over. No one noticed and no one applauded. There was no recognition at all.
No one knew this, but the violinist was Joshua Bell, one of the greatest musicians in the world. He played one of the most intricate pieces ever written, with a violin worth $3.5 million dollars. Two days before, Joshua Bell sold-out a theater in Boston where the seats averaged $100 each to sit and listen to him play the same music.
This is a true story. Joshua Bell, playing incognito in the D.C. Metro Station, was organized by the Washington Post as part of a social experiment about perception, taste and people’s priorities.
This experiment raised several questions:
*In a common-place environment, at an inappropriate hour, do we perceive beauty?
*If so, do we stop to appreciate it?
*Do we recognize talent in an unexpected context?
One possible conclusion reached from this experiment could be this:
If we do not have a moment to stop and listen to one of the best musicians in the world, playing some of the finest music ever written, with one of the most beautiful instruments ever made…
How many other things are we missing as we rush through life?
Rabbi-Yisroel Bernath




Friday, January 7, 2022

How Much Empathy for the Unvaccinated?

I heard an interesting story on NPR today over lunch.  It was about COVID-19 hospitalization rates for the vaccinated versus the unvaccinated.  The reporter was interviewing a doctor and was trying to get to the reason some people get more severe cases of COVID-19 than others.  It kept coming back to the fact that the most severe and life threatening cases were primarily among the unvaccinated.  He tried several times to get the doctor to say that vaccination status wasn't a determining factor in the severity of the disease, but it kept coming back to the fact that the unvaccinated have more severe cases of COVID-19 and are more likely to die from it.

At some point in the interview the reporter asked the doctor if he was likely to provide better healthcare to a vaccinated patient because he knew that their outcome was likely to be much better than if the patient was unvaccinated.  He was asking if the doctor showed more empathy for a vaccinated patient than an unvaccinated patient since the unvaccinated patient made a conscious choice to put him/herself at risk when he/she refused the vaccine.  As you might imagine, that particular question took the interview down an entirely different path.

I've had many friends, both vaccinated and unvaccinated, who suffered the ravages of COVID-19.  Their experiences were exactly what you would expect.  The vaccinated ones were uncomfortable for a week and recovered easily while the unvaccinated ones paid a high price for their decisions to decline the vaccine.  A couple of the unvaccinated ones are still suffering some long lasting effects of having the disease.

It was relatively easy for me to reconcile the differences in outcomes between my vaccinated friends and unvaccinated ones.  I know that several times I thought to myself "Well, you're the one who decided not to get vaccinated.  The disease kicked your ass but now you're OK so maybe you'll rethink that strategy now."  I genuinely felt bad for all of them and would have done anything I possibly could to help them regardless of their vaccination status.  The thing is, though, they all recovered and life goes on.  Except for one.

In college I had a fraternity brother named Art.  I never liked him much because, quite frankly, he was an asshole and he was happy knowing he was an asshole.  Art was obnoxious and I did my best to avoid him for the four years we were there.  Unfortunately Art didn't feel the same way about me and would gravitate toward me at parties, social functions, and when I went out to bars with my fraternity brothers.  In the spirit of brotherhood I did my best to be gracious and tolerant, but it didn't always work out too well.  

The thing I found most annoying about Art was that he would argue about anything just for the sake of arguing.  If you happened to say something like "The sky is a beautiful shade of blue today," Art would make it his mission to convince anyone who would listen that you were color blind and had no idea what color the sky actually was and it was likely due to the fact that your mother was a dirty crack whore and your father was a heroin addict.  It was like that with everything that Art touched.  Somehow he felt the need to contradict everything and he was good at it.

After college Art worked for the EPA for awhile doing whatever the EPA actually does.  He got into public health statistical analysis and lived in the Washington, D.C. area.  He made a good career out of that and was an expert in public health policy.  Make no mistake, Art was very intelligent.

I had not had any contact with Art for about 40 years when out of the blue he sent me a Facebook friend request.  Normally I would have just ignored it but I felt that I couldn't do that to a fraternity brother.  We exchanged pleasantries for a few days and caught up on family, careers, and plans for retirement.  

Inevitably, our conversation turned to politics.  Art was an avid Trumper and if you've read this blog for very long you know that I think Donald Trump is the Antichrist.  We argued politics for several weeks and finally just agreed to disagree and maybe revisit the whole subject toward the end of Trump's term as President.

Then along came the coronavirus.  Art posted something negative about mask mandates in his area and for some reason I decided to take the bait.  For a full week we argued day and night whether coronavirus was actually a pandemic or just something manufactured by the Democrats to seize power from our idiot President.  Art insisted it was nothing more than a bad cold and that the US would reach herd immunity in just a few months.

I work in healthcare and had experienced caregivers crying in the hospital cafeteria because they had just spent the last twelve hours watching a mother of four drowning in her own mucus and eventually welcoming death rather than continuing to suffer.  True story.  That vision still haunts me every day and night and I wasn't even on the front lines.  I'm serious.  Every day and every night I think about this.  Based on that I was pretty sure it was more than a political trick.  

Art and I continued to argue for the better part of two weeks.  He cited figures from the CDC and WHO and they were very credible until you really dug into them and discovered the details.  At that point his argument collapsed but it still didn't deter him.  Anyway, we eventually decided that neither of us was going to change our opinion so we stopped arguing about it.

When the vaccines came out Art asked me if I was going to get vaccinated.  When I told him I would take the vaccine he mounted a series of attacks on my intelligence that lasted for over a month.  By this time I knew arguing with him was fruitless so I didn't waste my time or energy on it.  

The next thing I heard regarding Art was on our fraternity's Facebook timeline a few months later when his son posted a message saying he had passed away from COVID-19.  This is where we get back to the empathy part.  On one hand I wanted to say "I told you so and you got what you deserved" and on the other hand I was truly heartbroken at the suffering my friend must have endured toward the end of his life.  I still can't quite figure out what to make of this.  I know it's wrong to not show any empathy, but geez, he was a really smart guy and should have known.  On the other hand, I should just set that aside and feel sympathetic to any human suffering regardless of whether he could have prevented it.

So I'm still conflicted over this and I probably will be for some time.  It feels like unfinished business that I need to take care of before I can move on.  Maybe eventually that will fade and I won't think about it anymore, but maybe it won't.

So that's where I am on the whole empathy thing.  It angers me to see people choose not to get vaccinated but I feel like I still can't shut them out entirely when they do contract COVID-19 and then suffer for their poor decision.

Anyway, I hope none of you are in this position and that you and your loved ones have made the right choice for you.




Tuesday, December 28, 2021

Beware the Silent T

 Something really strange is happening to the English language in the United States.  I first noticed it a little over a year ago.  At first I thought it was just one person who needed to go back to kindergarten for reprogramming, but now it is widespread.  It is in the news, TV shows, movies, and in daily face-to-face conversations.  I hear it more in the under 40 age group so us older people may be less likely to contract it.  You might be wondering if I'm describing a new virus or food-born illness, but I'm not.  It is even more insidious.

I'm talking about improperly placed silent Ts.  "What is that?" you may ask.  It happens when someone speaks and uses a word with the letter T as the first letter of the second (or sometimes the third or fourth) syllable and does not speak the T.  They just treat the venerable T as if it didn't even exist.

Let me give you a couple of examples so you'll know what to listen for.  We'll use the name of the college I attended since I hear this one all the time here in Omaha.  I went to Creighton University.  People with this affliction do not say the T that is the first letter of the second syllable in Creighton.  In real English, you would pronounce this as "CRAY-tun" (forgive the pronunciation notation if it's not correct, but you get the idea).  When pronounced properly, the second syllable would sound the same as when you say the word "ton."  They pronounce Creighton like "CRAY-un" and the second syllable sounds like the first syllable in the word "underwear."  "CRAY-un."  Like "CRAY-on" with a U instead of the O.

The strange thing is that between the syllables they still insert some kind of hard stop that allows the listener to clearly differentiate the two syllables rather than letting them run together.  "CRAY-un."  I can feel my face turn red with anger every time I hear that one.

The other example is the word "water."  These sick minds make the mouths connected to them say "WAH-urr."  Again, it makes my blood boil (no pun intended).  What was wrong with "WAH-tur?" When I hear one of the local news anchors speaking like this for the entire duration of a 30 minute news show I leave the room, go to my computer, and try to locate a local anger management class that I can immediately attend.

You might be wondering why this bugs me enough to write an entire blog post about it and, to be honest with you, I just don't know but it does.  You can't just change the English language because you're too fucking lazy to use it correctly.  It doesn't mean you're one of the cool kids.  It means you're fucking lazy and you need to repeat elementary school so you can get the basic things right.

Ok, that's enough of that for now.  I'm done ranting, but I'm still mad about the whole situation and if you speak to me like this during a conversation you can be sure I'm not listening to anything you say.  I'll be thinking about the fact that you deserve to have projectile diarrhea until you learn to speak properly again.

On another note, I hope everyone had a great holiday season...



Monday, December 20, 2021

The Mythical "Single Pane of Glass"

Since my very first days in IT almost 35 years ago I've heard people talk about something called "a single pane of glass."  It was said that somewhere an application must exist that would let IT people manage all the components of their hardware, data storage, backups, software deployment, licensing, performance management, capacity planning, and availability monitoring into a single application that an engineer or manager could use to manage the entire IT environment from one place.  Theoretically it would consist of a single screen showing the status of everything IT is responsible for and allow the user to drill down into any of them for more detailed information or to make changes to something without ever leaving the application.

The reason I'm dredging this up again is that I heard it again in our staff meeting last week when our new manager was talking about our team's upcoming initiatives.  This is an interesting concept, but it raises a couple of questions:  1) Does it actually exist, and 2) Should it actually exist?  Let's think about this for a minute.

All of those things listed above are important parts of my world in IT because I deal mostly with hardware and its deployment and operation.  All of those capabilities are available to me, but I have to go to a different application for each one of them.  The goal of "a single pane of glass" would be for me to see and manage all this stuff in one place.  

The Holy Grail would be for all these functions to be integrated and automatic.  For example, a performance management function might detect that a particular application is running slowly and automatically look at disk space consumption and memory/CPU utilization and determine that the performance problem is being caused by the disk containing the operating system being critically low on free space.  It would automatically respond by using its storage function to allocate a little more space to get the system running correctly again and then fire off an email to me advising me of the situation, how it was fixed, and that follow up would be needed to find out why it happened.  That would be pretty cool, especially if it was all done automatically without the need to wake me up at 2:00AM.  Let's pick this situation apart for a second and create a rough design of the "Single Pane of Glass" system.  That's a long name so we'll just call our new system Big Pane.

To get to Holy Grail status, this system would need to detect the problem, gather performance data from all the possible sources of the problem, sift through the data to determine the most likely cause, devise a solution or two, and then implement a possible fix.  We'll throw one more wrench into the works here and say that the system is running on Windows Server, so if storage was added then it would somehow need to notify the Windows operating system that the extra storage  resources were available for it to begin using.  

Detecting the problem would be easy.  We currently have very expensive software that can reach into another software system, perform various functions, measure how long it took, compare it to previous results, and determine if something isn't running as expected.  The challenge here is that software systems are not created equally so you have to check them all in different ways to get the true picture of how they're performing.  We have about 60 of these software systems and each one works only for a single software package.  There is no common denominator determining how performance is measured across all of them.  For this reason our new system would need different testing capabilities for each system.  Just for parity with my company's existing situation, we'll just say it would need 60 different testing functions.  If it actually worked, our management would require that it be expanded to accommodate our other 1440 application systems.

Next it would need to gather some data from all the possible sources of the problem.  Not a really big deal because just about everything has some kind of API (Application Programming Interface) and you can usually query them for the data you want using their API.  The problem is that they are all different so our system would need to know how to understand all of them.

Assuming we've gotten this far, Big Pane would need to determine the actual cause.  AI hasn't come far enough for a software system to think like an engineer with 30 years of experience, so it would most likely need to get this information from a knowledgebase somewhere.  Knowledgebases are not created equal, so you would probably do better creating your own, possibly from problems and solutions  you've seen before firsthand.  The solution could also be included in the knowledgebase so Big Pane wouldn't have to figure it out from scratch every time.  Each system would almost surely need its own knowledgebase entries.

Now that Big Pane knows how to fix the problem, it will have to implement the fix.  These days you can change almost anything in software so our Holy Grail system could make whatever changes are necessary just by going through the API of the problematic system.  Big Pane would need to contact our SAN management module in the SAN Director System and tell it to allocate some more disk to our system.  Luckily almost all of our systems use the same SAN for storage so this wouldn't be too difficult.  You'd just need to tell it what kind of storage is needed, how much you want, and what system it goes to.  

Now, you'd think that was all we needed to do but you'd be wrong.  You see, even the newest operating systems don't automatically recognize all changes, especially hardware changes like added disk space, memory, or CPU.  You have to restart them or notify them somehow that they can begin using these new resources.  The notification process is different for every operating system and sometimes different between different versions of the same operating system.  This part might not be a problem if a system is unusable due to a performance problem and will need to be rebooted anyway, but what about really specialized systems that are just running a little slowly?

One of the systems I support is used during open heart surgery.  A patient is hooked up to a bunch of probes, sensors, and cameras that collect various pieces of data the surgeon uses during procedures and then displays them for him in the operating room.  Some of these sensors are snaked up through an incision in the leg all the way to the heart.  If the system stops working during a procedure then the surgery has to pause until it is restarted.  In that case you have a bunch of doctors standing there as motionless as possible over a patient laying unconscious on the table with his/her heart fully exposed and several wires running through his veins.  You don't want this to happen for obvious reasons.  

The last task for Big Pane would be to send me a politely worded email advising me of the problem and how it was fixed.  This is always done the same way so it would be very easy.

Now that we have an idea of what this would take, imagine implementing it for 1500 different software systems simultaneously.  And imagine what it would take to keep  it up to date with all the regular changes in software, hardware, and configurations for all those applications.  Even with a huge investment in development, you'd end up with something of limited usability and it would never be truly complete.  And remember, the example we've discussed here is just for one scenario on a single system.  Most actual situations are much more complex than this one.

I'm not lazy and I'm not stupid either.  The effort and subsequent cost would be much larger than any reward from doing it could ever be.  The logical alternative to building this behemoth would be to hire a few good engineers and managers and just pay them well to use several different systems and be proactive in their daily work.  This is what we do today.  Now I would ask the second question "Should it exist," but you probably already know the answer to that by now.  Unfortunately, every time an IT executive goes to an industry conference he/she reads about some proposed Holy Grail system in a SkyMall magazine at the airport and we start this quest all over again.  If you're an IT executive and you're reading this, please stop.  SkyMall is not the place where you should get ideas for how you're going to spend your organization's IT budget.



Sunday, December 19, 2021

Lean Development Methodology

 If you've decided to read this post then you probably recognize Lean Development Methodology as a development project methodology commonly practiced in IT organizations.  If you already know all about it then you might find this very boring and my feelings won't be hurt if you just skip to another article or go browse Amazon.

Assuming you're mildly interested, I'll tell you what I know about it.  The idea of the Lean Development Methodology is for a team to work feverishly on a project and bring it to market very quickly, often before it's completely finished.  This seems like a no brainer, but there's a little more to it than that.

Lean has a thing called Minimum Viable Product, or MVP.  Basically the idea of an MVP is that the system barely does what it is supposed to do in order to sell it, but not necessarily very well.  The idea if that if a company is producing a software product, then they want to start getting customers to pay for it as soon as possible.  If they can honestly say that it somehow performs the function it was designed for and they can get someone to buy it, then it is an MVP.

An MVP is almost certainly rough around the edges and may have a number of features that are not fully implemented yet.  It may have a ton of menu items that display "Not Yet Implemented" when you select them or maybe the whole system  needs to be restarted every 20 minutes.  It barely performs the function that it is being sold for but very little else.  The idea is that if the company can get customers to pay for it then they can use the money to finance finishing all the other parts that yet don't work and they can solicit feedback from the customers to help determine which features should be developed next.  Also, the theory is that if a customer invests money and time in buying an MVP, then they will be more likely to put up with some amount of deficiency and stick with it in order to protect their investment.

Let's look at an example.  This one doesn't involve developing software, but it illustrates the idea of Lean.  Suppose a company wants to add a rack of new servers to their data center.  There are a lot of things to consider, but let's focus on electrical power here.  A standard data center rack has a capacity of 42U in space for the servers.  This of a "U" as a slot in the rack.  You can fill 42 slots with servers and whatever else you need to put in there, but they all require electrical power and each one will have at least one power plug that needs to be plugged in.  Data center racks have these big surge strip things called Power Distribution Units, or PDUs.  It runs from top to bottom on both sides of the rack and has a bunch of electrical sockets on it.  Most PDUs can actually do much more than that, but we're just concerned about power capacity for this exercise.

Each rack probably has more than one electrical source running to its PDUs and there's a maximum capacity that those circuits will safely support.  Each device you put in the rack uses a chunk of this available capacity and it's really important not to exceed it.  For our example, the Data Center Manager has told us that the power capacity for the rack is 40,000 watts.  

So now we need to figure out how many watts each server consumes to get to how many servers we can safely put in the rack.  Those numbers are readily available from the manufacturers of each piece of equipment.  They are almost always in the products specs on the manufacturer's web site and it takes all of 2 minutes to click around and find them.  This is where we get to the Lean part.

Management, in it's vast collective wisdom, has decided that figuring out the total power requirement and determining how many servers can go in the rack should be a full-blown project rather than a 5 minute task involving adding up the numbers using the calculator built into someone's iPhone.  So next they assign a project manager, a system engineer, and four programmers to accomplish this seemingly monumental task.

After four weeks of meeting diligently on the project to develop a project mission statement, a charter, define deliverables, establish a schedule of status meetings and a reporting hierarchy to keep management informed of the team's progress, the programmers start coding the solution.  Immediately they discover that they have neglected to establish a SharePoint site and Microsoft Teams chat room for the project, so development stops for a couple of weeks and those pressing items are addressed.

The design that the team has chosen consists of a python program that reads an input file containing the wattages of each server, one per line, and adds those amounts together to produce a result.  The result is written as a single line to an output file where the user can go retrieve it.  The input file contains 42 lines, one for each slot in the rack.  If a slot is empty then there must be a zero on the line.  

After some minimal testing, the team decides that it has an MVP and decides to release it.  After a few more weeks it clears the Change Management process and a thorough review by Information Security and is moved onto a production system.  Users are notified that it is ready and where they can find it.

Now here is where the Lean Methodology MVP thing comes into play.  Despite the programmers' best efforts, they have only been able to get their creation to add up the first two numbers listed in the input file.  It simply ignores the rest of the rest of the file.  You might ask "Why did they release it?" and that would be a great question.  They released it because the project's requirements stated that it needed to add up some numbers and that requirement was met since it actually did successfully add the first two numbers.  They had an MVP.  

After a little feedback from the users they came up with a workaround for this obvious deficiency and this was it:

The user was to populate all 42 lines of the input file with either wattages of each device or a zero if the slot was empty.  When the program ran it would add the first two numbers and produce the output file.  The user was to take the result from the output file and copy it to the first line of the input file.  Then they would take the third line of the input file and move it to the second line and run the program again.  They would repeat this process for the fourth line, fifth line, and so forth until they had completed all 42 lines.  A future release of the program would address this issue if funding was approved for more development work, but for now it achieved it's intended purpose using a combination of less than clever coding and a lot of user intervention.  There you have it.  An MVP.

Sounds ridiculous, doesn't it?  Well that's because it is.  Software developed today using Lean often lacks the key features that would make it valuable to the customer.  The thought is to get customers to pay for it by selling them a rough draft of what the product will eventually become.  It's great for startups at first because it starts bringing income into the company sooner.  Using traditional development methodologies a company might have to lay out a year's worth of staff salaries before they ever see a single cent from selling a solid finished product.  By the time the customer realizes that they've been duped the software company is working hard to add the missing features or fix the stuff that doesn't work.  If they can get the customer to stick with them through that process then they will retain paying (but now not-so-trusting) customers and keep generating income.

I got to see this whole process in play when I worked briefly for a restaurant point of sale company.  They had a solid product but it was dated and didn't have the features of newer point of sale systems, so they decided to create a whole new one that kept customer data in the cloud and had a much friendlier color touch screen interface.  Some of the senior engineers figured out what it should look like and produced a mostly non-functional mock-up that the executives could show to our investors in order to get them to fund development of the new system.  The investors liked it and poured money into the company like crazy.

Next came the Lean part.  Some of the senior engineers decided that the mock-up, which was for show only and never intended to actually function, was a good enough starting place and they could get the new POS to market much sooner if they used it as the foundation and just added some features to it.  It was developed for presentation purposes only and consisted of random, half-functional chunks of javascript code cobbled together to run inside the user's Google Chrome browser.  They decided that it would be good enough to use as a foundation for building a new product.

As you can imagine, the developers struggled with this for months.  They discovered the limits of javascript running in a browser and found ways to work around most of them by adding yet another freeware code module or simply putting various point of sale features in their "parking lot" to be considered at some future date.  The final result was a house of cards built on a very shaky foundation.

Those of you who have ever developed anything in javascript probably know that javascript programs in a browser are usually run briefly just once or twice before the user moves along to something else, so efficient memory management / reclamation and variable scoping are not strengths of javascript.  You might also know that restaurant point of sale systems sometimes run for days, weeks, and even months before they are restarted.  You probably see where I'm going with this, but just in case you don't, I'll tell you that javascript programs can become less and less stable the longer you run them.  Javascript is not a good choice as the environment for a restaurant point of sale system.

With this in mind, our programmers forged ahead and developed the new POS in javascript anyway so they could get it to market sooner.  They released the new version in a few months and the reviews from customers were less than stellar.  If you've ever worked in the dining room of a restaurant as a server, bartender, or manager, you know that the ability to split checks is critical to the restaurant's workflow.  Unfortunately, this capability was one of the many "parking lot" items identified early in the development of the POS and it was not available in the initial release.  To make matters worse, the Split Ticket button was displayed, but when the user pressed it they would be presented with a small pop-up message advising them that this feature was not yet implemented.  The workaround that the developers advised was to void the ticket and then ring it in as separate  tickets.  As you can imagine, this was not well-received, especially by restaurants that had already replaced an exiting POS system with this one before noticing this deficiency.

Over the next nine months we lost a lot of customers and it became apparent that developing and selling a system way before it was completely finished was a bad idea.  I was happy the day my phone rang and found my manager and a Human Resources person on the line waiting to tell me that, due to an effort to streamline operations, they had decided to abandon doing business in the territory I covered and I had two weeks to wrap up any unfinished items before my last day of work.  This wasn't unexpected and I was glad to get out gracefully before the whole house of cards finished its inevitable collapse.

So, to sum up the Lean development methodology, it basically consists of building just enough functionality into a product to start getting people to pay you for it and then, once you are generating some sales, go back and finish the development tasks that should have been done in the first place.  As you have probably guessed by now, I'm not a fan.  I think it generates an element of distrust between the customer and the vendor.  Once that trust is lost it takes an extraordinary effort from the vendor to repair it and the relationship will never be as robust and collaborative as if the vendor had never broken that trust in the first place.



Thursday, December 2, 2021

Warming Up for the 2024 Elections

 I saw something quite frightening when I was driving somewhere this morning.  It was a nice, new full-sized SUV with a "Trump 2024" bumper sticker.  If you've been reading my blog for any length of time you know I'm not a Trump fan.  For some reason I have a problem with the leader of the free world brazenly telling lies every time he opens his mouth.  For some reason there are a substantial number of people who think he should be elected President again.

Trump's only accomplishment as President was to normalize being mean and dishonest.  Other than that the only thing he did was systematically dismantle all the things that made the United States the best country in the world.  It was sad to watch what transpired over those four years.  When he lost the 2020 election I breathed a sigh of relief for about a week until I realized that he wasn't going to just go away quietly and disappear.  I soon realized that he would continue to dig his hooks into the soul of the country long after he was out of office and might well come back for a second shot at it in 2024.

The thing I want to write about here is that there are still many, many people who believe that Trump should be elected to another term as President.  The perplexing thing about this is that you know they heard all the lies during his first term and have chosen to just pretend he never even spewed them out to the world.  Many times we saw stories on the evening news where they showed video of him saying something and then followed it with another video saying something that directly contradicted what he said in the first one.  When he was challenged on the obvious contradiction he told the interviewer "That never happened."  Seriously.  We just saw it and heard it.  Knowing this, he just continued to say "That never happened."

Trump supporters ignored what they saw and heard themselves and swallowed up Trump's denials as if the heavens opened up and God spoke those corrupt words directly to them.  Classic example of gaslighting -- you didn't see or hear what you saw or heard.  At first I thought that these people were a special brand of stupid, but then I began to wonder if there was something more to it.  There were even people I knew to be very intelligent and aware of what's going on in the world around them who also bought into it.  Eventually I decided that Trump must have a special type of charisma that makes otherwise rational people become blind to factual information and makes it impossible for them to weigh facts against fiction.

Anyway, what has me worried today is that people are starting to do crazy things prior to 2024.  They're hoarding food and supplies, planning escape routes to get them out of the cities where they live, buying as many guns and as much ammunition as they can find, and learning survival skills.  Recently I've started to hear people talking about impending social unrest and possibly even civil war.  I even saw a news story from a major network (not Fox) where over 50% of people surveyed believed at least one state would secede during their lifetime.  What. The. Fuck.

It just seems like the country is dividing into one part where people are embracing the changes happening all over the world and another part where people are working hard to return us to the type of life we had in the 1950's.  If the country is basically split each way along geographical boundaries then maybe it really is time to consider splitting it into two entities.  Things change over time and sometimes it's better to just embrace the change and let everyone move on to whatever they believe will be better.  I don't know the answer to this.

I could ramble on about this stuff for a long time, but my greatest fear is that 2024 will bring a resurgence of extreme Trumpism and the ruthless cruelty that comes with it.  This will undoubtedly bring friction between both sides and I think the greatest losers will be ordinary Americans.  We stand to lose a lot while we are fighting the battles of our political leaders and I'm afraid many of us won't even understand what's happening because of Donald Trump's special type of charisma.  Hopefully we'll be able to survive as a country, but if not then we need to make whatever changes are necessary and move on.