Installation & deployment
- 1.1.3 – Outline compatibility issues resulting from situations including legacy systems or business mergers.
- 1.1.4 – Compare the implementation of systems using a client’s hardware with hosting systems remotely.
- 1.1.5 – Evaluate alternative installation processes.
- 1.1.8 – Describe the importance of user documentation.
- 1.1.9 – Evaluate different methods of providing user documentation.
- 1.1.10 – Evaluate different methods.
- 1.1.14 – Describe strategies for managing releases and updates.
Most enterprise level systems, meaning those that are run by major corporations, quickly become legacy systems due to outdated hardware and software. Some of these legacy systems could be decades old, but are still in use because it’s difficult to replace them due to the cost and interruption to the regular flow of business. If it’s not broken, don’t fix it, is the way these companies think. In the case of government this can often mean degrading performance over time, while in companies it can mean a slow a painful descent in to obscurity. Then again, in certain cases there is no competition, and no need for an upgrade, so as long as they can keep the older system running then it’s not much of a problem.
The people who primarily use legacy systems are larger companies, governments, and banking. It primarily occurs in cases where there isn’t competition in an industry, or where a system cannot afford to have errors, and the risk of switching over could be disastrous. For example, nuclear power plants or military systems can’t afford downtime, and there are specialized systems for niche areas of science where the market is not big enough to draw innovate ideas nor investment. These systems generally have:
- Consistent results over time
- Already trained staff
- Reliability with regard to up time
Practical task: Legacy operating systems
Things have changed a lot since the “old days” when most of what ran on a computer was done from boot disks and command line operating systems. Under Moore’s law computing power has increased exponentially, and things have gotten so fast that we can even emulate many of the old operating systems in our browsers. What use to take a whole computer to run can be run using a scripting language compiled by a browser which is running on another OS. It’s impressive to say the least.
Task 1: Check out these old operating systems and pieces of software. (Mr. Bach actually played Rogue when he was a kid, but his favorite, by far, was the King’s Quest series).
Task 2: Pick any of the pieces of legacy software you looked at in Task 1 and note three limitations that dealt with that we don’t have today and how they appeared to get around them.
Writing task: Legacy systems
You’d be surprised at the legacy systems that are still in use today. Take a look at these legacy systems still being used, pick one to do a bit more research on it, and find at least one article that discusses it. Referencing this article, write a single paragraph summarizing why you think the system hasn’t been switched over to something newer, and what would risks would be encountered if they tried.
Eventually all systems will need to be changed over, and when they do there are really four main types: pilot, direct, phased, and parallel.
Pilot is not shown, as it’s somewhat difficult to represent with a diagram, but it would look quite similar to parallel, except that the group running the program is small. In some cases they would be called beta testers. Each of these types of changeover have their benefits and challenges, and there is no one solution for all systems.
Writing task: Changeovers
Changeovers happen in all aspects of business, from the changeover of machinery and software to the staff. No matter what process is used, there are almost always difficulties to overcomes.
Task 1: Read here a short description of the four different types of changeover.
Task 3: Look through this listing of game launches. How many of them are due to poor changeover strategies (i.e. moving from a beta directly to release) and which are due to poor testing before release?
Once software has been produced there are a number of ways that it can be distributed to the user. These take on many different forms, but generally fall into two areas, those that install on the machine, and those that run online. We’ll be looking at both of these and comparing the pros and cons of each.
The evolution of software development has seen installation change over time from tapes to disks to CDs. Today some people will give out USB drives in order to install applications, though that is not too common.
In the 80s and 90s it might take a stack of 20 disks to install an application, while a CD would be able to store everything with room to spare. Billions of CDs for audio, software, and storage were sold, and it might surprise you that many still are. There are benefits to having a physical medium as opposed to an online one, such as:
- Privacy concerns
- Ability to use or transfer when offline
- Sensitive or critical software systems
Software as a service (Saas)
As the internet grows, ad bandwidth improves, the SaaS model has taken hold, with much of what we do being housed online. There are benefits and concerns with this model, from accessibility to privacy. Think about your daily life and how much of what you use is online compared to the offline. You’ll probably find that the majority of what you work with is online, from social media to email and games.
For most of us this is not a concern, but it does come with risks. These include, but are not limited to:
- Who really owns your data?
- Who is responsible in case of data loss?
- What is being done with your data?
- What happens when you’re offline?
- Does locking you into an online ecosystem just result in you paying more?
- How can I torrent a whole service Mr. Bach?
As with anything, there is a balance.
Writing task: SaaS
SaaS services such as Microsoft 365, Google’s suite, and Amazon have become increasingly popular in the last decade. This is often referred to as cloud computing. Recently Google announced Stadia, which brings games to the cloud. But what does it mean to be on the cloud, and what technologies are needed in order to make it a reality?
Task 1: Research what cloud computing is, and discuss two of the underlying technologies that make it possible.
Task 2: Choose one cloud service and give two reasons to use it, and two possible disadvantages.
Task 3: When would you not use SaaS? Give two situations where it would not be advantageous to use SaaS, and the possible consequences of using. Note that improper use of SaaS can be disastrous and potentially life threatening in certain cases.
Practical activity: Python installation (optional)
One of the problems with Python is that it requires the end user to have Python installed in order to use it. Thankfully, you can create installation programs for your application if you’d like. It’s a bit advanced, and not necessary to know, but if interested the documentation here can guide you.