Okay, I am so excited to get back to this topic. If you haven't yet read the preceding post in this two-part series, then I'd recommend reading Exploring the Progression of Modern Software (Part 1) before continuing. I'll wait. Done? Welcome back. That post gave us an incredible first half to this topic and I was absolutely gutted to have to leave it before I could finish my thoughts on the subject. But it's Tech Tuesday again so I am now free to publish Part 2 in this short two-post series.
As a brief recap in case you didn't take the time to read Part 1 (I know who you are) or if you read it last week and need a refresher before continuing here is a short synopsis:
We examined the history of software progression from the earliest days and we focused on three specific era's in the evolution of modern software. Those areas are:
- The Personal Computer Era: In this era we examined briefly how in the earliest days software existed on a single machine, or single location software. The three words we associated with this era were: Single, Private, Secure.
- The Server Era: At this point software evolved into existing on a server instead of a single computer and as a result we called this: a many-location software system. The three words to think about with server software were: Many, Semi-Private, Semi-Secure.
- The Decentralized Era: Lastly, we discussed the current and future-focused view of decentralized software labeled as many-location software platform, both private and secure. And for this era we chose to focus on the following three words to highlight what the potential could be: Many, Private, Secure.
Okay, now hopefully we've had a nice convenient reminder about what Part 1 was focused on exploring; in essence the vehicle which held the software. In Part 2 we want to now explore not the vehicle, but the engine by which the software runs and the evolution which took place "under the hood" so to speak.
I've broken this part into three convenient sections as well. Each of these era's relates slightly to the corresponding era from Part 1. Without any further delays let's jump right into the first and oldest era.

The Closed Source Software Era
Many of you may balk slightly at my definition of these eras as there is clearly overlap in the world still today across all of these, but as with the vehicles of box, server, and decentralized, so too the engines overlap and there are times when several different models exist at the same time. Regardless, what I would like to explore is a generalization of the common mindset and thinking in the business world over time. I am the first to recognize the early successes of open source and am certainly not trying to start any flame wars about what came first or was more dominant. (Hopefully that is enough of a disclaimer to subdue any angsty commenters!)
Closed software was the go-to solution for businesses both from a monetary standpoint as well as a trusted implementation due to the accompanying support and trusted "business model" of the time. The perceived values of this era included the ability to have a single vendor responsible for the software, trust that the information was held privately by a corporation and as a result was somewhat secure given the "closed source" nature of the code. (Notice this is regardless of the vehicle being either box software or server software, traditional SaaS.)
The three words to sum up this era are therefore best described as: Single, Private, Secure
Exception: However, there's a slight caveat with the last point of "secure", as the only reason for this perceived security was due to the closed source nature of the code and accompanying data. There was an unfounded, misconception this closed source somehow equated to "secure", however, as the reports of hacked SaaS platforms grow increasingly more common this point tends to falter a bit more heavily. Hence I'll leave this as a "perceived" benefit. Simply put, I believe this is a case of "what you don't know won't hurt you" - if the bugs aren't shared, you don't know the bugs exist.

The Open Source Software Era
Next what we see is a gradual shifting and acceptance of the open source software model as an acceptable business model and software solution. Both for companies seeking to generate revenue selling services, support, and software around open source solutions as well as enterprise and others trusting open source software as stable for implementation in their business.
Again, I won't belabor the point that this era co-existed with the previous, I've said enough on that already. Simply put though, there are plenty of news articles, blog posts, and media sources to demonstrate the growing acceptance of this era of software as fundamental and beneficial for any SaaS company. The benefits for open source included the ability to incorporate the talents and skills of a larger community of engineers or developers focused on modifying and improving the code; the open nature of the code allowed for bugs to be identified quickly and patched faster than in closed source as well as the perception this could be done better by a global audience than a single company, and open source allowed code to be taken and used in a variety of alternative environments.
As a result the three words we could use to sum up this era include: Many, Semi-Private, Semi-Secure

The Blockchain Era
This is where things get interesting. As with Part 1 we are now about to move into an era which is only just beginning to come to fruition. We are on the cusp of something new and revolutionary. As a result the points I'm about to share may be controversial. You may disagree, and that's okay. I'm not suggesting anything I say to be fact, but I believe, based on my experience (limited as it may be), there are signs which can be clearly seen and we are best when we learn from our past and use our history to make intelligent decisions about the future. Given my experience in open source and the ridiculous, countless hours of study and research into the subject I believe what we are seeing is indeed the beginning of the future. The next era in modern software has begun.
Note: Due to the prolific number of well-written articles on the topic of blockchain and the overwhelming volume of information available I have not included links throughout this section of the post. I trust you to go spelinking on your own for more data. If you have questions, or would like my opinions on where to start, let me know and I'll be happy to point out a few great sources I believe get it right.
I'd like to start as I did in Part 1 with the three words which best describe this modern, future, software "engine":
The three words associated with the blockchain era are as follows: Many, Private, Secure.
Let's explore what each of these words relates to in this new and intriguing era.
Many
When we consider the topic of Many in the context of the blockchain era, we find there are quite a few similarities to the open source software era. This is in part due to the closely related nature of the code. In both eras the code is available (predominantly) as open source able to be viewed and modified by anyone. This means the software can experience all the same benefits as traditional open source software. But there are additional benefits as well. Unlike open source software, blockchain software, or DApps as they are coming to be called, are decentralized apps. This means not only is the code worked on and contributed to by many; but the software itself can be run by many. This achieves the maximum potential benefit imbued in the concept of "many".
Private
The second word we're associating with the blockchain era is Private. This point actually has a few potential beneficial futures available. First, we find blockchain software has the potential to be run in a multitude of environments (including in a private blockchain). Second, blockchain software even in the main blockchain has incredible opportunities to be private in nature, depending on the final implementation of the protocols identified by the point below. Which leads us then to our final word....
Secure
Lastly, we find that the potential for a highly Secure era is beginning to be identified. This point is tricky because in the earliest iterations the blockchain era follows many of the same paths as the open source era. But as the various protocols are defined in more detail we are able to recognize those shortcomings and improve on those failure points for a more secure and highly encrypted software infrastructure. This software holds the keys to a potentially (virtually) unbreakable encryption level.
While there are still a fair number of questions surrounding blockchain software and the development of DApps, I am confident we are experiencing the next era in modern software progress. The future of software will come from these explorations.
I realize now there is actually a final point to be made in this series, one which I believe holds serious consequences for modern software developers, implementers, and SaaS businesses everywhere. In fact, I believe this final realization holds incredible impact for existing software businesses and calls into question a terrible practice we have incorporated without even a second thought throughout all SaaS companies.
The ramifications of this blind de-facto choice are far-reaching and highly devastating. Recognizing this fallacy helps us bring the problem to the surface and then allows us to resolve it in an extremely elegant manner. Check in next Tuesday for the final installment in this series.