Software “Releases”

Okay, I’m up on my virtual soapbox regarding software releases today.  Here are some indicators to let you know that you haven’t actually created an actual software release.  If too many of these things are true, you’ve just slopped together some random crap you have no control over.  Releasing a non-release is like mixing matter with anti-matter: you are courting spectacular disaster.  I’ve been personally bit by all these issues, so I know what the explosions feel like.

  • Anything in your “release” is not traceable back to SCM or an artifact repo.  For example, if your sysadmin whipped up a script used in production that never finds its way back into Git or whatever, I call this a “rogue script” because it exists outside of the control of the normal software development process.
  • Your “release” requires manual hand hacking to get working.   No!  Thou shalt not hand hack thy production environment.
  • Your “release” can’t be successfully installed by a non-technical person given the installation instructions.
  • Your “release” overwrites existing configurations/customizations without extremely good reason (laziness and bad architecture don’t count) and ample warning.  Yes, I’m talking to you Windows–you screw up my keyboard configuration every damn time.
  • Your “release” and all its components do not have versions.
  • Your “release” has no release notes and does not document the version of all its components.
  • After installing your “release”, a system administrator cannot easily determine the version of your system and all its components at runtime.  This includes firmware.
  • Your “release” does not have system tests that (among many other things) can verify nobody has hand-hacked any deployed files after installation.  Nope, you can’t trust your own coworkers or customers not to willfully or accidentally do this.
  • Another department within your company can’t deploy your “release” even with your help let alone completely without your help.  And yet somehow you’ve decided this garbage is ready to give to an actual customer.
  • Your global head of software tells you your “release” is not ready to release.  It astonishes me (actually it doesn’t–arrogance has no bounds) that some executives will pay for competent advice only to ignore it.  Next time my dentist tells me I have a cavity, I’m just going to say “No, you’re wrong, I don’t.  Thanks for your opinion.”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s