What Is the Bleeding Edge?

We had a frequent techno-geek debate around my ISP that came down to Bleeding Edge vs Stable.  But this argument always assumed that there was only one bleeding edge. I believe there are two bleeding edges with a lot of room in the middle. I am old enough to have used double-edged “safety” razors and both edges are sharp and can cut deep.  Only by holding it in the middle can one not get cut (the so called safety razor often induced cuts when I had to put a new blade in, bleh). When it comes to software versions, one bleeding edge moves forward fast, only developers and avid beta testers are actually living there.  The rest of us are merely trying to keep up, catch up, or we fall behind.  Those that fall too far behind are living on the other bleeding edge, constantly dealing with the fact that they can’t do something nifty keen new or get upgraded because they are staying “stable”.  

So, what is the bleeding edge?  Instability, lack of support, security issues and the inability to change or change easily are what I consider bleeding edge.  If you never going to change and everything is working perfect, the bleeding edge is anywhere but where you are at. Stability is your only criteria.  But if you plan on being organic, have growth and rise to the challenge of your needs and the needs of your clients –  the bleeding edge is always moving, running in front of you and wacking you in the rear if you don’t keep up. 

The basic stability debate can be seen in a large scale with the Linux distributions.  One commonly recognized is between Debian and Ubuntu, a Debian variant. Debian is the stable platform. Ubuntu, well, it often implements newer software that takes a long time to get implemented into the main trunk of Debian.   Ubuntu people have the latest and greatest but are accused of living on the “bleeding edge”. Debian people go for the tried and true claiming to be living “stable” and without worry but are accused of being left behind. For some, using Debian is the way to stay safe, for others, using the latest stable version of Ubuntu is safe.

Fedora provides an example of two bleeding edges.  Fedora releases a new version every 6-7 months.  Sometimes the new version is good and very little bleeding, other times it is very bloody, Core 3 was an example of serious bleeding, at least for me and release 8 seems to be giving me problems too. We are seeing where the older releases are becoming the second bloody edge with support for them being dropped by third party vendors.   It isn’t bleeding because of stability issues, rather is is because of support, sometimes security and usability issues, a software package you need to use won’t work on the older releases anymore than it will work on the newest.

As of this writing, Fedora is in release 8. It has had some good reviews. But for whatever reason, it won’t install on my laptop properly, resulting in blue screens. That makes it a bleeding edge for me but I am worried that staying with the version I currently have will eventually become a problem for updates, the other bleeding edge.  On the other hand, my laptop is getting long in the tooth so that the hardware bleeding edge may have caught up with me from behind and I can’t install version 8 because it is too old (?).

Lets take php as another example.  php5 has been released for almost 4 years now and php4 is being depreciated yet I know of one large company that still only uses php4 with no known testing or plans for migration to version 5. Come on! They are content with using only php 4 but they cannot take advantage of the capabilities of version 5 (like the OOP programming) and if they ever decide that they do need something only available in version 5 or the upcoming version 6, they aren’t ready to do so, which is going to make the transition that much more difficult.

Yes, there were some initial pains associated with moving to PHP5 but those pains get worse, not better the longer one waits to move on to what is not only stable but rather old in software terms.  Try moving a PHP3 site to PHP5 compared to PHP4 to PHP5 and one sees significantly more modifications needed to make it work, especially if the PHP5 site is using the now accepted settings compared to what PHP3 had. 

This is true of all software and hardware development! Waiting too long makes change that much more difficult and painful! Waiting doesn’t reduce the pain, it often causes more!  

Of course, for example, if you waited to PHP5 to start OOP code, you were better off in many ways but then I had made the decision that php 4’s OOP was not worth implementing so I didn’t get caught – it looked like a bleeding edge and it was.  But certainly, deciding not to implement something simply because, “It might not be stable” is to invite the double-bladed razor to catch you anyway. 

To avoid getting cut, the solution is somewhat simple really and twofold.  Always have a testing platform to verify the stability of new software – something you should do no matter what.  And always keep an eye on what is coming down the pipe in the way of new versions of software and hardware you use.  You won’t get taken by surprise and  they can be tested on that test platform to determine what new benefits they may provide – you may discover a new way to make money that you hadn’t thought of and would have never know if you stayed comfortable in your “stable” world.

Major tip: virtualization is now making the creation of multiple test beds not only inexpensive, but great for testing various configurations and software versions on a single piece of hardware. If something goes wonky, it is as simple as throwing away that virtual instance.  

My test bed is an old AMD Athlon 2000+.  It works just fine for testing new versions of software, establishing new configurations, and developing new code before pushing it to production.  Since I use Gentoo for my server distro of Linux, I know that generally they are concerned with stability and won’t always have the latest version of what I am using but I can test both their stable version before pushing it to my production server and if I desire, unmask one of the “unstable” versions to do some preliminary testing without worrying about messing up my “live” box. Also, since I trust the Gentoo guys, I will upgrade my production box sometimes without testing since generally they have done all the testing for me – that is as far as I go living on the bleeding edge there.

If I start to think of adding new hardware to my production box such as a new to me ethernet card or SATA card, I pop it into my test box and verify it is completely compatible with my software configuration. Of course, if I could afford to have an identical box as my main server as my test box, that would be ideal, but the world isn’t ideal and many times, adding hardware comes down to having the right drivers which can be tested.

Summary: stability is not the only criteria for not living on the bleeding edge and is often a poor excuse for not putting in some important work to keep a company moving forward technologically.  Stability as the only criteria will eventually lead to the other bleeding edge, one that often costs a company more time and resources than if they would have kept their IT systems up to date.

Leave a Reply