Enterprise architects and solution developers must always be cognizant of the far-reaching implication of properly understanding how historic development and solutions of the past have contributed to the code and applications they develop today. For successful software engineering, it's important for developers and engineers to consider the work that has been done by others in the past as work continues to seamlessly fix things that were -- from the nontechnical world's perspective, at least -- never broken in the first place.
Understanding our legacies
Why is knowing, understanding and appreciating our legacies so indispensable? It is because all projects have a past, present and future way of filling client needs, and all three of these stages in a project's evolution are important.
Sadly, more often than not, rather than focusing on filling the gap that exists between the past and future visions -- something that would typically involve three distinct requirement and design initiatives -- many organizations are wasting time and money by reinventing the wheel and taking a do-it-from-scratch approach to new requirements.
A fundamental principle that all developers should embrace is that previous generations working on a given solution should be respected. It seems simple, but the application of this principle brings with it the potential to save the IT industry billions and billions of dollars. Furthermore, if more developers and designers appreciated how past experiences have led the industry to where it is today, perhaps disastrous efforts such as the XHTML specification would not have been embarrassingly undertaken.
HTML5, XHTML and respecting the past
Why was XHTML such an embarrassment? It was an embarrassment because it didn't respect the past, as could be seen, in concrete ways, through backward incompatibility and the significant effort that many organizations put forth to rectify compatibility issues. The XHTML standard turned a blind eye to the legacy of HTML. Of course, the ensuing turmoil over XHTML resulted in the creation of HTML5, which is a distinctly positive development. But nevertheless, the chaos caused as the industry pushed through the XHTML specification was in itself enough to demonstrate the need for appreciating the efforts of those who have come before.
And while the adoption may be slow, HTML5 is being embraced and accepted enthusiastically by the community. A big part of this industry-wide acceptance hinges on the fact that unlike XHTML, HTML5 both respects and supports legacy Internet sites and styles. By embracing rather than penalizing, and by extending rather than deprecating the legacy of markup language evolution, HTML5 has quickly managed to advance the cause of Web design to fit the needs of both today and the future. This is a lesson that all enterprise architects and solution developers should heed: to effectively develop solutions that will both work in the present and embrace the future; it is important to appreciate how solutions of the past have contributed to the code that is being developed today.