Upgrades & Migration are a constant concern for every application. In the time that it takes to build an application, there are many advancements in the technology. This often means an application is 'old' before it is even used. I considered this for many years and in my white paper Developing Software, I discuss that software depreciates at the Rate of Innovation. This makes the aging process for software variable. All that aside, software will always age and will require upgrading to maintain pace with contemporary technologies. Therefore, all software should have an upgrade plan built into its design.
Let's look at the need for upgrading. At the end of the day, upgrading is 'required' because of dependencies and it is 'elective' for taking advantage of improved feature sets. In the early 2000's I had built a product 'over the top' OTT of Microsoft office products. starting in the year 2000 I began to build out a software solution my integrating the functionality within MS Access, MS Excel, and MS Word. After 3 years of investment into the software, the changes to the 2003 version of MS Office broke the software. This was a very difficult time I never wanted to experience again. It taught me that as inticing as it may seem to leverage what has already been made, it becomes a marriage of convenience that requires an adherence they THEY dictate. To frame the current landscape look at the diagram below.
Software is developed to solve problems of business and individuals, willing to pay for the solution it provides. When architects & developers beging the the development process, they select technologies for the solution. I consider this step the binding to dependencies that dictate the future of the solution's success.
Real World Example-- I was hired as a consultant, by Microsoft. Their Need: all AngularJS code was no longer going to be updated, by Google (End of Life). This forced Microsoft to find an upgrade path. My purpose was to evaluate upgrade paths and/or implementing an alternative. In this example, there was nothing wrong with the code or the functionality, but the dependency on Google's maintenance was a risk that cost the company many hours of work and planning. Honestly, why Microsoft would be using AngularJS and not ASP.net, I will never understand :)
Having acted as an architect for a number of enterprise projects, NEVER have I seen a comparison of cost for developing and maintaining the use of different frameworks, etc. More and More companies are beginning to evaluate the cost of such services as the cloud or licensing, but the developer cost for building OTT of JS Frameworks is excused as a 'cost of doing business'. Without an evaluation of cost, no one will be aware of the pitfalls!
In the diagram above, I illustrated the typical stack of technologies/frameworks for those with a Microsoft server-side. As you can see, fundamental technologies a little changed whereas OTT solutions (Supersets and Layers) are in a constant state of evolution. If you ask me, OTT solutions are never complete and they add a compounding of risk due to their own direct dependency on the fundamental technologies.
What does this mean of software development? Every layer of abstraction dependency adds an exponential risk of required upgrades, that add ABSOLUTELY NO VALUE other than avoiding obsolecense! At Mitch Technology LLC, we believe that mandatory upgrades should always be avoided.
My mother used to say "if everyone was jumping off a bridge would you too?" Front-end frameworks are very enticing with their inticing names and excited communities, but realize they require you giving complete control to their leadership. Keep in mind, 'The Pathway to Hell is paved with Good Intentions'. Once committed to a JS Framework, there is little opportunity for migration without a complete 'rewrite'.
While most projects start with the 'End State', we recommend starting with how we got to the 'Current State'. After all, at one time, the current state was a contemporary solution and development patterns have prevented the application from evolving.
Software typically starts with a version 0 and then is built a little by little until the software is complete. It will have features & functionality required by the users and a lot of thought is given to developing new ones. But what most all software lacks a perspective of the technology adoption process.
By analyzing the missing elements within the current development processes, we can identify & recommend a plan that will incorporate technology migrations/adoptions. This way the software will never suffer 'stagnation'.
In addition companies will never spend enormous amounts of money duplicating existing software.
We provide data backup and recovery services to ensure your business critical data is always safe and secure. We use the latest technologies to backup your data and recover it quickly in case of any disaster.
We offer managed IT services to ensure your business runs smoothly and efficiently. Our managed IT services include monitoring and maintenance, helpdesk support, and IT consulting.
We provide IT strategy consulting to help your business align its technology with its overall business goals. Our IT strategy consulting services include technology assessments, IT roadmaps, and digital transformation.
Copyright © 2023 Fundamental Technology - All Rights Reserved.
Powered by GoDaddy
A Place to Explore Programming that is Efficient and Elegant. Frame(s)work is designed for those looking to interact directly with HTML5.
We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.