System Design
Unit 1: Systems
Unit 1: Systems
Review of Change Management Concepts
Change management is the process of identifying, documenting, and approving or rejecting changes to a system. It is an important aspect of the development and maintenance of a system because it helps ensure that changes to the system are implemented in a controlled and coordinated manner.
There are several reasons why change management is important:
Change management helps prevent unexpected or unintended consequences of changes to a system. By carefully reviewing and approving changes, the risk of introducing errors or other problems into the system can be reduced.
Change management helps maintain the integrity and stability of a system. By controlling the introduction of changes, the system can be kept in a known and stable state, which is important for maintaining the reliability and performance of the system.
Change management helps ensure that changes to a system are properly documented and communicated to all relevant parties. This can help ensure that everyone is aware of the changes and how they may affect the system.
Change management helps facilitate the orderly and efficient implementation of changes to a system. By following a structured process for reviewing and approving changes, the development and deployment of changes can be streamlined and made more efficient.
Real World Practical Advice
"Hey can you change this one little thing for me?". This is a very common request. Here's the thing: users think a request is minimal, "no big deal" or "just a little thing". But because end-users don't have a full picture of a system, they do not have information to evaluate if a change is minimal or if it is more involved.
When a user asks you to change something, you should smile and take a deep breath. You should then spend time carefully understanding exactly what functionality the user wants and how you can best plan and implement the functionality.
In larger organizations, there is a well-established Request For Change process which uses a change request form. Always think before you make a change.
^^^ from: https://computersciencewiki.org/index.php?title=Change_management
No typing today.
Let's start with a look at some of the systems related to Amazon's operations.
Notes Update
For today and tomorrow, here's the main concepts your notes should cover.
- SaaS
- On-Premise Software
- System Life Cycle
- Functional Testing
Previously, we looked at how systems are implemented into organization and companies. Next, we'll move into the design of some of these systems. Some systems may be hosted on site, and may need technicians and other professionals on site to help maintain it. Others may be hosted via the cloud, and the expenses may include IT support from the software provider. Let's look more into these topics.
On-Premise Software is software that is installed and runs on computers on the premises of the person or organization using the software, rather than at a remote facility such as a server farm or cloud. On-premises software is sometimes referred to as “shrinkwrap” software, and off-premises software is commonly called “software as a service” ("SaaS") or “cloud computing”.
On-premise software or systems typically require having on-staff IT professionals. If there is an issue that local staff can't solve, it may require remote access with the software/system provider, or may even require IT Support or a Software Engineer to travel to help resolve the issue. This can result in further expenses as well as lost time. For small companies, on-premise software or systems may have a lot of unexpected costs when issues occur. However, with SaaS, you may have additional costs too, such as legal costs related to contracts.
What about “software as a service” or ("SaaS")?
Software as a Service is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as "on-demand software", and was formerly referred to as "software plus services" by Microsoft.
By 'centrally hosted', what we mean is that the software is not run on the local computer system, but instead uses the internet to connect to servers from the software manufacturer. It is on the software manufacturer's servers that the software is run, managed, and maintained. An everyday example would be Google Docs. An example in the business would be the widely used enterprise software by German software company SAP SE.
SaaS applications are also known as Web-based software, on-demand software and hosted software. The term "software as a service" (SaaS) is considered to be part of the nomenclature of cloud computing, along with infrastructure as a service (IaaS), platform as a service (PaaS), desktop as a service (DaaS), managed software as a service (MSaaS), mobile backend as a service (MBaaS), datacenter as a service (DCaaS), and information technology management as a service (ITMaaS). SaaS apps are typically accessed by users using a thin client, e.g. via a web browser.
It is not uncommon to see software that is installed locally, but also requires the internet for verification of licensing. What determines if a software is On-premises or is SaaS is based on where the processing to run the software predominately occurs.
Advantages:
Lower initial costs, likely faster implementation
Maintenance and updates by software manufacturer
No staff needed to maintain the system
Software manufacturer likely provides more support
On-site natural disasters do not put data at risk
Disadvantages:
continued subscription fees may ultimately be more expensive than On-premises software or custom designed software for large companies
Potential data-risk from software manufacturer
Potential differing time zones, maintenance and support may not be at convenient times
Specialized or unusual needs of a specific client may not be a priority of the software manufacturer
Because host is not the user itself, user feedback is harder to get
System change may be required sooner than ideal if the service is discontinued, the company seeks new functionality that the manufacturer is not interested in adding, or the manufacturer goes out of business
So is SaaS the better and less expensive option?
Tomorrow:
Tomorrow's content is focused on Software Development and Testing.
Choose a streaming service.
Is it SaaS or on-premise?
List some of the functionalities of the service that you would test prior to its release.
Choose an app or software that is NOT a streaming service.
Is it SaaS or on-premise?
List some of the functionalities of the service that you would test prior to its release.