As a Gen-Xer, I never thought that I would sound like my “wisdom”-sharing Baby Boomer seniors -- or that I would feel compelled to point out to the Gen-Yers and Millennials that they are taking paths that are fraught with errors that we know and understand.
The hopes and enthusiasm once felt for the PC as it permeated workplaces and homes, effectively distributing computer power to the masses, mirror today’s hopes and enthusiasm for the mobile device as it effectively distributes computer power to the next level of the masses, even reaching the Second and Third World countries. The pitfalls and shortcomings, however, are also mirrored.
The code maintenance and data-syncing required of distributed applications is still massively inefficient and ultimately unsustainable. Somehow, no one seems to notice that we have already been through this learning curve.
The computer industry has experienced several pendulum swings between centralized and distributed architectures. Mainframes (centralized) were the solution in the 1950s and ‘60s, client-server solutions (distributed) dominated in the ‘70s and ‘80s. Web-based solutions (centralized) took over in the ‘90s to the present era, and now apps (distributed) are fashionable.
The reasons for these shifts are clear in the advantages and disadvantages of each model. So both the trend and key technological turning points can be observed and even predicted.
Centralized architectures such as mainframes and the Wii have a single data source and code base. This makes maintenance simple and eliminates data synchronizations.
Ironically, this efficiency contains the seed of its disadvantages.
Inevitably, a centralized IT team will maintain the system and will rationally prioritize their task lists. Eventually lower-level priorities will become synonymous with “it will never happen.”
At this point, users look for ways they can meet their own needs.
Distributed architectures will then emerge as the solution. Distributed architectures empower users to build their own solutions, effectively bypassing the centralized IT team.
Some of these solutions will be impactful enough to make it clear that the centralized IT team missed a huge opportunity by not implementing this low-priority task and the limitations on creativity in the centralized model will become the new scapegoat. Everyone who is anyone will begin to develop distributed solutions.
Time will pass. Then the limitations of distributed architectures will rear their ugly heads.
1. The maintenance required to distribute modified codebases -- such as your often-more-than-weekly Microsoft updates -- will become an issue. This task serves the computer, but adds little or no perceived value for the user.
2. The distributed architecture’s need for data synchronization will also feel like busywork, even if it runs perfectly. If there are errors, they will be viewed as a roadblock to clear communication and reliability.3. As soon as a computer is distributed, it is outdated. Put these code and data maintenance tasks together with the impossibility of evenly upgraded distributed hardware and the mature centralized architecture becomes the new vogue. Is this beginning to sound familiar? Recognizable? Repeatable? I hope so, as the current computing ecosystem certainly has all these historical dynamics as well as the opportunity to solve current limitations.
Rather than argue whether a centralized or distributed architecture is the right solution, there is another solution -- to combine the best attributes of centralized and distributed architectures, offering optimal performance (a typical client-side attribute) and ease of maintenance (a typical server-side attribute). Allowing the user to do as much on a page as they want enables them to experience the performance benefits of a client-side solution. With tasks actually processed on the server, the heavy-lifting code and data are all maintained on the server.
Rather than re-run the same paths, with the same pitfalls, let’s look at these new ways of processing information. With some basic shifts in technical assumptions, we could deliver mobile Web-based solutions that are as responsive to customers as they expect Web sites on the desktop to be, and we can do it without putting the maintenance burden on the customer. As always, the key to success is putting the customer’s experience first, and presumptions about how things “ought” to be done last. This would be a win-win approach for all.