CM or Die

For the IT professional, Configuration Management is probably one of the most despised yet one of the most important functions of the job.  Performing configuration management tasks is only a shade more interesting than watching paint dry.  Forms, paperwork, documentation – tedious and laborious tasks by any individual’s definition.  Most professionals I know would rather have their toenails ripped out.  However, a solid configuration management program pays significant dividends.

Before jumping into the benefits, let’s start with the basics.  What is configuration management?  Technically speaking, configuration management is an engineering process used to ensure that a system’s attributes remain consistent with operational requirements.  In other words, it’s the process we use to make sure that changes don’t break anything.

Believe it or not, most complex systems are not just thrown together; these systems are designed to satisfy a specific purpose.  However, nothing is this life is static.  Hardware parts become discontinued, new software versions are released, and operational needs evolve.  All these changes could significantly impact the ability of the original system to perform its function.  Hence, the need for configuration management is very real. 

How does this relate to the world if information technology?  Well, I’m sure that most of us have unboxed a new computer and deployed it to a user.  We’ve taken care to set all the correct policies.  Every application is installed according to the checklist.  The new computer runs without a flaw.  The user logs on and expresses amazement on how fast their new machine runs.  We’ve attained hero status in their eyes.  Life is good.

Then a week goes by, and we get a call from our new best friend, except they aren’t happy now.  The brand new desktop that we delivered last week runs dog slow.  The user demands to know why we would give them that piece of trash.  Fix it or else!

We take the computer back to the shop.  It only takes about two minutes to discover the problem – a combination of adware and an unauthorized VM successfully suck up all the resources.  Mystery solved.

Of course, this is just an example.  In the enterprise world, software restriction policies would prevent the installation of new applications, and no respectable IT professional would ever provide local admin privileges to a user.  The consumer market is a little more troublesome, but the moral of the story remains valid:  Bad configuration management inevitably leads to poor and unpredictable system performance.

Perhaps more seriously, system security demands proper configuration management.  The system design specifies component configurations that guard against unauthorized access.  A configuration management process requires a review of system changes before installation to avoid creating vulnerabilities.  In addition, a configuration audit procedure periodically verifies that devices are configured correctly for security and do not provide a path for access.

All this said, one truth still remains – performing configuration management tasks are incredibly boring.  I’m sorry, but I have no solution to that.  All I can say is that your users greatly appreciate your efforts to provide a stable and secure environment.

@gregory_a_baker

Take a Note

Stop for a minute.  Close your eyes, and think of something.  A person.  A place.  A dream.  Visualize it, and see it so clearly that you believe it’s real.  Now take out a pen and a sheet of paper, and write it down.

There’s something special about writing down your thoughts.  Thoughts are fleeting, disappearing as quickly as they occur.  Putting your thoughts on paper allows you capture a moment of clarity, adding permanency to a brief instant of understanding.

Every weekend morning, I devote a few minutes to transcribing my thoughts.  Whether it’s about work, about dreams, or just something I make up, it doesn’t matter.  Morning is my most creative time, and weekend mornings are especially quiet.  Only then do I have a chance to put thoughts clearly on paper.

Why go through all the trouble of writing stuff down?  For me, it’s to get them out of my head.  Once something is on paper, you don’t have to remember it anymore.  In all honesty, once I write something down, I typically don’t remember it anymore.  And why should I?  It’s written down.

With all that junk out of my mind, I can think more clearly.  Every single day, we are deluged with an enormous amount of information.  And let’s be honest, most of these audio and visual sound bites are complete rubbish.  Even so, each of these nuggets sticks in your head, even if just for a little bit.  Without some way to filter the junk and purge the trash, how would anyone know what he or she truly believes and understands?

Writing stuff down is very helpful when organizing thoughts.  In order to effectively communicate, you have to be able to explain ideas.  The best communicators bring clarity to complex subjects.  These expert communicators don’t necessarily have superhuman intelligence or intuition.  But they have learned how to explain these ideas to their toughest critics – themselves.  How do they do it?  The best method I’ve found is in writing.

If you can’t write down an idea, you probably don’t understand it, and you certainly can’t explain it.  Documenting a concept will quickly expose any gaps in your comprehension.  If you truly get it, the writing won’t be a problem.  If you don’t, you’ll find yourself writing and rewriting the same sentence over and over.

Writing and documenting are not skills just for the literary minded folks.  The inability to write stuff down significantly impacts technical tasks and engineering.  The most common mistake I observe amongst the technology crowd is the failure to document a design before implementation.  Too many folks take the “Build it now, ask questions later” approach.

Here’s a challenge to all my IT friends:  Start documenting your projects before implementation.  Take the time to confirm your end result before you begin.  I guarantee that you will immediately observe an improvement in your efficiency and a reduction of your defect counts.

When you sum it all up, I guess what I’m trying to say is that a simple act of creativity helps us to become better people.  Writing requires us to focus our thoughts and provides clarity to our motivations.  Our written words establish boundaries and ensure each of us live with a purpose.  Do you have goals for your life?  Do you know what you want to accomplish?  Do you have a bucket list?  Any long journey is much easier if you have a map to your destination.

Do you have yours?

@gregory_a_baker

For Profit

Currently in America, it is very fashionable to speak negatively of the private sector.  The conventional wisdom proclaims that all corporations are rooted in greed and are run by selfish individuals.  Private sector opponents argue that profits are evil and penalize hard working Americans.  These individuals also state that no matter the form, capitalism ultimately ends in discrimination and unfairness.

If you subscribe to these views, you should probably stop reading right now.  In all likelihood, I’m going to say something might make you uncomfortable, or possibly even cause you emotional distress.

(Pause before continuing…3…2…1…)

Still reading?  Well, OK.  You’ve been warned.

While in graduate school, I took a course that covered (as part of its objectives) the different facets of growing the space industry.  Launch vehicle design, satellite communications, and yes, even missions to Mars were all considered crucial to a sustainable space program.  While we discussed a number of options, they all had one glaring similarity – every approach depended on significant government funding, either through the military or NASA.

The professor asked us to put together a presentation on how we would structure a sustainable space program.  By and large, each class member dutifully regurgitated the party line.  When my turn came, like an idiot, I said what I actually believed.  I forget the exact words, but it went something like this…

The key to creating a sustainable space program is to drive down the cost of space flight.  Since government-funded enterprises possess no inherent mechanism to reduce costs, a sustainable space program must develop organically in the private sector.  Only the private sector contains the negative cost drivers needed to make space flight affordable for all.

Needless to say, my talk suffered the same fate as the comet Shoemaker-Levy – torn apart and swallowed by a massive gravitational force.  As I drowned my sorrows at the Posse later that evening, I couldn’t get 7 of 9’s voice out of my head, “Resistance is futile.  You will be assimilated.”

Never one to believe that I could be wrong, I’ve watched the growth of the private space industry with keen interest.  As the Shuttle program was winding down, entrepreneurs (funded by Silicon Valley profits) began exploring the opportunities created as NASA pulled back.  Scaled Composites and SpaceX are perhaps the most successful of those efforts, each successfully developing launch vehicle technology as part of a for-profit enterprise.

The Google Lunar X Prize was created in 2007 specifically for the purpose of inspiring private investment in space technology.  The competition offers $20 million to the first privately funded team to land a robot on the Moon that successfully travels 500 meters and transmits back high-definition images and video.  Of the 31 original participants, sixteen remain in the competition, and two have secured a launch contract for next year.

Moon Express is one of those teams scheduled to launch next year.  Given all the technical complexity involved with sending a robot to the moon, this past week Moon Express perhaps overcame one of its most difficult challenges.  The FAA appears ready to provide regulatory approval for the world’s first private space mission to go beyond Earth’s orbit.

(If you though the regulations for drones were bad, I can’t even imagine the amount of red tape involved with a Moon mission.)

Moon Express is scheduled to launch in the second half of 2017.  If successful, this mission will provide another example of what private enterprise can and will accomplish.  It’s still too early to say that private investment will save the space industry, but at least it’s a nudge in the right direction.

@gregory_a_baker

Bugs Do Not Come From Computers

This past Memorial Day holiday, thousands of travelers were stranded in New York due to a reported “computer glitch.”  This “computer glitch” apparently started with a “crashed” server that brought down the entire check-in system.  To keep everything from coming to a complete stop, airline agents performed manual check-ins using paper tickets.  Eventually, computer operations were restored, but long delays persisted through the remainder of the holiday.

Is it just me, or are you not greatly offended that this entire fiasco was blamed on a computer?

Of course, this isn’t the first time that some sort of disaster was blamed on a computer.  The massive power outage that blacked-out the east coast in 2003 is blamed on a computer error.  The loss of the Mars Climate Orbiter in 1999 is attributed to a computer data issue.  A faulty network card took the fall for the failure of a U.S. Customs system in 2007 that caused over 17,000 flights to be grounded.  In 2012, the responsibility for a Fourth of July fireworks fail in San Diego ultimately fell to a glitch “deep inside the software”.

I think that most people view computers as these mysterious black boxes that seem to do stuff.  I’m fairly certain that most people don’t really know how they work.  They just blindly go along, tap, tap, tap on the screen, and presto!  Instantly delivered is the latest celebrity snapchat or the most recent update from theprepperjournal.com.  So when computers don’t provide the desired result, it’s easy to point fingers.  And since computers won’t fight back (they are inanimate objects after all), the computer becomes an easy scapegoat.

It’s time for someone to stand up for the computers.  It’s time for the people to know the truth.  I know that the truth might be hard for some of you to absorb, but you need to know.

It’s not the computer’s fault.

First of all, think of what that computer had to endure just to become part of our daily lives.  Every computer started out as a bucket of components in some far away land.  These components were soldered and glued together, transformed into something completely different.  And instead of being given the chance to explore their new individuality, they were wrapped in plastic, trapped in a box and shipped around the world.  Whether they end up in Lenox Mall or an Augusta Wal-Mart, only fate can decide.

Secondly, a computer cannot perform any task on its own.  Since the invention of the ENIAC, modern day computers only do what we tell them to do.  A computer without programming can only transform electricity into heat.  A computer with a program can only execute that program.  And here’s the part that vindicates the computer…no matter how many times that program is executed, that program will always run EXACTLY AS WRITTEN.

So finally, we have to ask, “Where do computer programs originate?”  The answer is clear: software developers.  Nerdy, personality-deficient, but horribly well-paid, software developers.  And interestingly enough, the software developers are generally the first ones to pass the blame to the computer.  If you walk into any software development shop in the world, and you will hear the terms “bug” and “software defect” thrown around like candy.

My friends, if software is defective, it’s only due to the workmanship.  Here’s a better term – “COID”.  It stands for “Coding error introduced by the developer.”

OK, I know that I’m being pretty tough on all the developers out there, but I have a purpose in doing so.  Software developers have an opportunity in their profession that very few others possess.  Developers get to answer the question, “If you can have it any way you want it, how would you have it?”  Every new algorithm begins with a blank sheet of paper.  No matter how you spin it, if an application is hard to use or impossible to maintain, a software developer created it that way.

Bad software design is a choice.  Please stop making bad choices.

@gregory_a_baker