Systems in Organisations
A computing system is a dynamic entity, used to solve problems and interact with its environment. Note how the term is used separately from the word computer. A computer is a device. As such, a computing system is composed of hardware, software, and the data that they manage. Computer hardware is a collection of physical elements that make up a machine and its related pieces; the casing, circuit boards, electronic chips, wires, disks, keyboards, monitors, the list goes on. Computer Software is the collection of programs that provide the instructions that a computer can carry out. At the very heart of a computer system is the information that manages.
- 1 Planning and System Installation
- 1.1 Installing a New System
- 1.2 The System Environment
- 1.3 Changes in Environment
- 1.3.1 Problems with Change
- 1.3.2 Legacy Systems
- 1.3.3 Solutions to Change
- 1.3.4 Alternative Installation Processes
- 1.4 Testing
- 2 User Focus
- 3 System Backup
- 4 Software Deployment
- 5 References
Planning and System Installation
Installing a New System
You might typically associate the word "installation" with that of a program or application, such as the one on the right, that you have downloaded off the internet. You typically see some sort of loading screen, indicating the progress of the installation and have a variety of options that you can set in order to get the most out of the application.
A new system can be thought of as similar to that of the installation of a program on your computer, in that it is placed in a new environment. However, the two must not be confused. Installing a computer program is not the same as installing a new system, as the latter is about the development of a new system, and the focus of this section, rather than just unpackaging files for execution.
The System Environment
In its most general sense, an organisation is the collective goal which linked to its environment, or "context". The environment, therefore, defines the limits of an organisation. When systems are built, they are defined by the needs of its creators, and as such, systems are not independent entities but exist in an environment. This environment affects the functioning and the performance of the system. Sometimes, the environment may be thought of as a system in its own right, but more generally, it consists of a number of other systems which interact with each other.
Example: Spreadsheet Tools
When a new system is planned, it is generally the result of a change in the environment. An outdated or archaic systems might exist and, as technology progresses, a more efficient and dynamic entity may replace this system. An example of such a case arose with the development of spreadsheet tools in the late 80s and early 90s. During the beginning of the century, lists, data, and various other records were maintained through the use of physical charts and tables. Today, similar records can be made simply through the use of desktop software, and maintained and edited through the dynamics of these new computer systems.
For years a version of Internet Protocol (IP) known as IPv4 (IP version four) was used to create and put in place the network layer on the world wide web. The web has rapidly outgrown the 32 bit internet addressing system set by IPv4, so in order to solve this problem as well as establish other useful tools like multicasting, a new version called IPv6 has been established. IPv6 uses 128 bits and this has been accepted as a viable IP so now conversion from IPv4 to IPv6 is taking place. It is expected that 32 bit addresses will be extinct by 2026.
It is important to keep in mind the extent and limitations of new systems as they are introduced. Consider the internet's rollover to IPv6. While the benefits include more IP addresses, integration of additional security features (IPsec) and enough addresses for each unique device connected to the internet (wether a server, laptop, phone or smartmeter), the switchover has some inherent limitations. Firstly, switching over to an IPv6 stack may be quite expensive and time consuming for larger companies. Additionally, the process required the training of IT staff and the replacement of a lot of archaic equipment. As of late 2014, the switchover is still a work in progress.
Changes in Environment
Moore's law describes the natural progression of technology which essentially indicates that there is a natural development of new systems. These new systems will inevitably do one of the following; be developed as a result of a problem, or replace an older system. In the case of the latter, these new systems will require a fluid transition from one system to another − and this requires management. This management will require the technical ability to oversee this transition and have a say in how it is best implemented.
Problems with Change
A whole host of errors or incompatibilities may stem from transition of software, and the insightful knowledge of an external party or internal expert may reduce the friction between the implementation of the newer systems.
Legacy systems refer to outdated computer systems that have been superceded by newer technologies. Such systems have many disadvantages. Firstly, costs for maintaining older systems may be higher as they may fail more frequently with age. Secondly, technical support for these systems may no longer be available. Additionally, legacy systems tend to be more vulnerable than to security threats, due to a lack of security updates.
When a system changes, there are repercussions. These repercussions can be felt locally by the users who use this system on a day-to-day basis, or internationally with those who rely on it. During the design process of a new system, developers must take into account the influence in this change. Following the earlier example of the spreadsheet-revolution, folk who began to use the software had to undergo a learning curve. This is the most basic and fundamental sense of the term "compatibility issue." If they could not use it, they could not work or had to continue using their old system only to see it become more and more obsolete.
Compatibility issues these days can have greater repercussions - especially when systems are relied upon. If a system is developed and does not take into account the fact that other users, perhaps even third-parties, rely on it, then they might experience a whole host of problems. Going back to the spreadsheets, if an organisation began using spreadsheet software to manage the orders for a particular good, and it begins to co-operate with another organisation who uses ye old pen-and-paper, they are going to have great difficulty working together. The new system did not take into account users who still managed their orders in this manner, and does not allow these people to easily transfer the details. Because the software is not bespoke and is developed generally, some end-users may find it difficult to utilise the new system. Whilst a solution may be to provide comprehensive and easy-to-read documentation so much so that it eliminates obscurities found by people, in some cases, data can no longer transfer between the two parties.
This is a particularly extreme example of a compatibility issue and illustrates the fact that systems need to be designed with others, older systems, and the all users in mind. Other typical examples include web-application APIs, desktop software updates, and physical hardware upgrades (such as Cassettes to CDs).
One issue that users may find is that of the language barrier. Being Lost in Translation certainly has its drawbacks when utilising software. Not only can it be expensive to translate between two, or more depending on the size of the audience, languages, but there exist a more fundamental computer related concept: character encoding. The issue of the international characters has been addressed from the early 1990s and has expanded not only for characters, but also to international data conventions, such as timezones and currencies. However, being able to recognise, address, and utilise such standards is important in maintaining compatibility on this front. Expanding a system's audience or simply making it a little bit more user-friendly should always be a priority.
File formats are another worry when concerning the issue of data migration and compatibility. Having the ability to read and write data in the same manner as before, following an improvement or change in a system, is almost certainly the fundamental aspect which is taken into consideration.
You can argue that it may be necessary to adopt a new file format which is an improvement on an older system. In this case, it may be appropriate to adopt the new file format. In this case, the older data structures utilised need not be forgotten; when you update your favourite music player − you would still expect to play your same saved playlists. It is this idea of expectation and convenience that drives new software forward and issues addressing incompatibility in file formats should always be a priority. Yes, improvements should be made, but it should not neglect the past.
Additionally, you should be aware of discrepancies in data validation rules. For example, a program designed for American users (who use the MM/DD/YY format) but installed in Germany (which uses DD/MM/YY format) may reject "21/09/14" as an input.
Finally, one must be aware that a complete data transfer is required. Should some disks fail during the transfer process or should some data be corrupted during the transition, the client could suffer serious losses.
Solutions to Change
One solution to these development problems in Software-as-a-Service, or SaaS. SaaS is a software licensing and delivery model in which software in centrally hosted by an Aplication Service Provider and 'rented out' to customers.
Unlike locally hosted software, which has to be updated manually, SaaS programs are centrally updated by the vendor. Additionally, SaaS has no maintenance costs for the client, as well as lessening the need for server technicians. SaaS often does not exclude (or is able to take into account) older systems.
On the other hand, SaaS downtime is out of control of the customers. Perhaps more importantly, SaaS presents very dangerous security problems. As the data is stored remotely, the vendor has full access to all customer data. For some situations (such as hospitals or human rights NGOs) this compromise is unacceptable (or even unlawful, see ).
Alternative Installation Processes
A system that gets implemented along side the existing system. This can only occur for a changeover and not for initial implementation.
With this method both the original system (legacy system) and the new system will be running over a period of time. All the new data will be inputted in both, the new and the old system and the results and outputs of the new system will be compared to the old one in order to make sure that the new system is working properly. As soon as you can be sure the new system is functioning the way it is supposed to be the old one is going to be shut down. This method is the most secure and least vulnerable as even in the worse case of the new system failing completely you will not lose on any data. However this does not just require a lot of work from the person putting the system in place, but also from the organisations staff that has to input all data twice.
This method is a way to try out the new system on a small scale before completely implementing it. Usually there will be one department of the organisation chosen to be the pilot project. This department is than going to changeover to the new system. If the implementation in the first department is successful the rest of the organisation will follow. This is a good approach for large scale companies and it is fairly secure as a fault in the system wont have as massive effects. It is also fairly cheap to complete.
Direct changeover/implementation or Big-Bang implementation is a new system that gets put in place immediately with a minimal time for change over. This requires the smallest amount of work however it can cause serious problems to the extend of the whole system becoming useless if the system does not function properly.
Phased conversion or phased implementation means that the the system is implemented in several phases/stages over a certain period of time. This makes it less vulnerable than a direct implementation. A phased conversion requires a long time to be put in place and a significantly higher amount of work.
Testing is investigating a computer system to find flaws, discrepancies or errors. There are various types of testing, all which can be applied to various parts of the development process.
Alpha testing involves offering an early development version of the program to other devs in-house and receiving feedback from them and improving the product.
After alpha testing, the company may choose to provide a version of the product to a select outside group (closed beta) or to the public (open beta), with the expectation that the users will provide feedback and report bugs to the developers.
While beta testing allows individuals to experiment with software before the final version is released, it is not a systemetic method of testing. Reports by the public may be of low quality and many duplicate bugs may be reported.
User Acceptance Testing
In this type of testing, the product is show to a group of clients as a final check before releasing to the market. This provides the developers with critical information to better understand the target audience. Realistic feedback can easily be collected by the devs.
Unit tests involve small, individual tests for submodules of the program. These can often be automated. These also may involve regression tests, or testing that make sure bug fixes don't accidentally break other parts of the program.
<-- Need to add debugging -->
User documentation is documentation to support users of computer systems (including both hardware and software). Good user documentation can ensure that users are quickly able to adapt to a new system. Documentation is an important part of software engineering. Types of documentation include:
- Requirements - Statements that identify attributes, capabilities, characteristics, or qualities of a system. This is the foundation for what shall be or has been implemented.
- Architecture/Design - Overview of software. Includes relations to an environment and construction principles to be used in design of software components.
- Technical - Documentation of code, algorithms, interfaces, and APIs.
- End User - Manuals for the end-user, system administrators and support staff.
- Marketing - How to market the product and analysis of the market demand
User documentations can include online help, FAQ section on the website and video tutorials.
Comparison of different methods of user documentation:
Help files are easy to access by the user and cheap to create. Also the users is not going to lose a help file, while a printed manual is lost really easily. The advantage compared to an online documentation is, that it does not require an internet connection in order to function.
Online documentation requires an internet connection, which restricts the access to it for the user. However it usually can be used a lot easier and searched through. Also you have the option to update the documentation afterwards.
Printed manuals used to be the main way of user documentation but now they are getting more and more replaced by digital manuals to reduce production costs and to be more environmentally friendly. The advantage of printed manuals is, that they can get accessed at every time, even if the system has not been installed yet, for example if there is a problem with the installation.
Users can be taught through formal classes or online training or they can learn by themselves.
Comparison of different methods of user training
Self instruction means, that the users are learning how to use the system by themselves. This method is especially effective with common use systems, that are used by loads of people that you can’t all personally train how to use the system. This method is the easiest, however it is not particularly effective. It will only work, if the program is easy to use and there is appropriate user documentation.
Onsite training requires you to come to the premises, where the system is being used and show it to the users personally. This is probably the most effective way of training, as the users can directly ask questions and you can make sure it is based on the local conditions. However this is the most expensive type of training as you need to take the traveling costs into account. Also if you want to provide training to each employee in a large company it takes a long time and some employees might not be present while you are doing the training. Also if the training is outside of their normal working time they are likely to be disinterested and just trying to go home as soon as possible and therefore not ask all the questions they really have.
Remote training is easier to organize, than on site training. This also makes it a lot cheaper. However it might not be as effective as on site training. An advantage of remote training is, that it is really easy to introduce a single new employee that joined the company.
Data loss can be caused by many reasons. Some reasons might be natural disasters or other external factors. Also theft of data might occur or malicious software might destroy it. Sometimes a system failure might also cause the data to get corrupted. However the main risk to data is the user itself. He might accidentally delete the data or save a new file under the same name and thereby override the old data.
Data loss is always a huge problem to any company or organisation, however in certain businesses it can be more fatal than others. One of the worst effects of data loss can occur in the medical business, as medical records of patients can sometimes mean a difference between life and death. This is also the reason why even today there is always a hard copy of every patients data stored in case of a system failure. Another business branch that is highly data dependent are internet based company that make all their business only using computer systems. For example website hosting providers. If these providers loose data they will most likely loose the majority of their customers as well.
The main and first step in order to prevent data loss is to make regular backups of all important data. Also these backups should be stored at a different geographical location. Online storage can help to prevent data loss, as it is less likely that huge companies servers the are used for commercial online storage have faults (even though it can happen). In addition to this such companies will usually make backups for you. The problem with this is that you need an active internet connection in order to operate this. Another problem with online storage is a possible breach of the data protection act if the information is stored in another country. The privacy of your information might also be in danger if you were to send it over unencrypted internet protocols.
No software is perfect. Complex software, such as the linux kernel or the Windows network stack, often boasts millions of lines of code. As such, bugs and security vulnerabilities are found with these critical parts of the OS after release. An automated update mechanism (such as linux software repositories or Apple's update servers) is therefore crucial to ensure the good performance and security of a computer system.