LEGAL ENVIRONMENT OF INFORMATION SYSTEMS
CIS 5660: Final Exam 2018
December 2, 2018
[email protected] OF CENTRAL MISSOURI
1a.One of the best ways to improve quality of a software and ensure safety of critical software systems is imposing regulations and mandatory licensing.
Arguments For having regulations
Laws that are implemented wisely would definitely ensure safety and reliability of the software system at hand. Anyone who is not accounted for their own mistakes has very less intentions of correcting themselves. When laws are in place it ensures privacy and data protection.
End users have very little knowledge about judging the safety and/or reliability of any software system. Hence when there is a regulatory board in check to ensure such factors it is always beneficial.
Arguments Against having regulations
If the regulations for the software systems become too complex, they might affect the innovativeness and hinder the progress of the development.
Complying to too many regulations would rather pass on the authority and responsibility to the government instead of the company.
Counter-arguments supporting each of the arguments stated above:
There have been very few examples where people correct themselves taking responsibility rather than being punished. People forget to monitor themselves and give a thought about the safety of millions of people involved. Hence, there has to be necessary boundaries and checks ensuring the safety of the system while not limiting the development.
Though there are safety guidelines and manuals in every critical system, there has to be a regulatory board which ensure every necessary negative scenario is tested and appropriate actions are taken during the negative scenarios as users cannot be made test pieces.
Actions that can be taken prior to the calamity is better than actions that can be taken later. Hence though it would limit the options of expanding a product, as people would be afraid to try new things when laws are in place to monitor, it is better to have necessary regulatory checks.
When a government body is responsible for signing off a project, it holds a value and the manufacturing company would respect the regulations of the government body. Hence even if it means passing off the authority, I strongly agree critical systems need to be thoroughly tested against stated regulations before launching.
1b.Two of the provisions that I feel have to be included in such regulations is:
Specific type of applications such as planes, space shuttles or medical equipment’s should be designed and developed with at most care and such activities should be entrusted to licensed professionals. For example, FAA authorizes licenses to many pilots.
It should be mandatory that a government body is handed over authority to check if the system satisfies the necessary requirements in order to ensure safety. Only then the systems should be launched. Also necessary regulations have to be included in order to hold the company liable in case of any mishaps which affects the common man.
For example, when government agencies such as FDA, OSHA regulate laws and ensure that every company follows them it can prevent a lot of damages that might occur by launching a faulty application.
2.The possible stakeholders in the given scenario would be
1) Owner, 2) Project Manager, 3) Developer.
The possible actions are:
Releasing the product in a potential tradeshow much earlier than the original date
Testing a product thoroughly and releasing a quality product
The actions would directly or indirectly affect each of the stakeholder in the company. Let us see how each of them would be affected:
By releasing the product in the consumer tradeshow, owner would definitely be happy that the product has been released at a time when he can expect potential customers. However, according to the preamble of ACM code of ethics, any action that the owner intends to take should be in the best interest of the consumers. By releasing a product 10 months earlier than the original date of delivery might involve a lot of bugs or undelivered features which would not be in the best interest of customers.
By releasing a quality product which is tested thoroughly sticking to the deadlines planned at the beginning of the development would ensure quality and upholds a customer centric product.
According to ACM and SE Principle 5, Management is responsible for informing the employees about the standards and effective procedures in order to eliminate risks. When employees are forced to work on tight deadlines there might be unexpected issues due to non-compliance of management principles.
On the other hand, when managers inform employees about the schedules at the beginning of the project and stick to the deadlines as much as possible and also according ACM 5.04, when managers assign the work according to the educational qualifications of employees the possibility of producing a quality product is much higher.
According to ACM 8.02, it is true that a developer should be able to produce a quality code for a working software in less time. However, when management forces developers unreasonably as in this scenario where they are forced to deliver a product nearly 10 months prior the earlier planned date it is very difficult to expect quality. Hence, it would result in a lot of bugs.
When management plans properly and sticks to the deadlines, developer’s life would become seamlessly easy. ACM Principle 8 guides that a software engineer should be versatile and able to write bug free code and also understand and write documents about their work. When appropriate time is given any developer would be able to maintain the standards of their code.
In my opinion, a good leader would ensure in promoting ethical practices among the team. Not only completion of the project, managers and company owners should think about long term maintenance of the code. In order to make sure easy code maintenance software engineers should be encouraged to improve coding standards, produce good documentation of their work, and practice peer code reviews. Also, managers should never force tight deadlines on the employees this would only result in failure of the product. Instead, the focus should be on producing a quality product.
3a. In the year of 1995, DIA planned to implement a fully automated baggage routing system for the huge airport. This system was to handle routing baggage’s from check-in point to the appropriate plane, plane to another connecting plane and also from plane to the point of baggage claim. However, the system was a huge failure. Initially the delivery date was postponed to over 16 months. Even after the launch of the system, there were issues such as the carts colliding with each other, baggage being trampled, mis-routing of baggage’s etc. Analysts identified various reasons for the failure, some of them are discussed below:
The development phase and testing phase did not have sufficient time: A project with such magnitude has to be properly planned, developed and thoroughly tested.
The requirement specifications were changed during the implementation phase: We should definitely accommodate changes in an Agile project, however the requirements of a particular sprint need to be prioritized and accommodated so as to adhere to the initial goal of the project. Continuously adding modules to current sprint forcing employees to work for longer hours would only result in more errors.
The electrical supply in the airport could not handle the amount of power consumption of the system and hence resulted in power outage which resulted in failure.
The mis-alignment of scanners or dirty scanners resulted in carts not being detected.
The carts were not latched properly and hence baggage’s were thrown off the cart.
Poor project management led to a low-quality product which had major bugs where in the carts were routed to baggage claims instead of connecting flights. Software errors led to delay in launching the system.
3b.While building complex software applications it is very important to use good principles and techniques of software engineering. It is important that at every stage be it requirement gathering, design specification, development or testing everyone involved should be encouraged to follow the procedures and guidelines of professional ethics as per ‘ACM and SE code of ethics.’ A project manager should choose a suitable model such as Kanban, Lean or other models which best suits the project in hand and adhere to the steps in the model. Deviating from the techniques and trying to include more specifications or skipping a phase such as testing would definitely result in faulty systems. Additionally, every engineer should be encouraged to follow best coding practices and stick to the tools and techniques available and trending in market. People who work on ensuring the safety of the application should be properly trained on the necessary tools. This would ensure increasing the safety and upholding the reliability of the software system.
4.Offshoring of work became popular during the 20th century when companies started moving work to countries where labor cost was a lot less, mostly Asian countries. Reasons for moving the work were many, while major reason is cost effectiveness; there are other reasons such as difficulty in finding skilled labor as mentioned by Steve Jobs. Most of the jobs in American companies lies in information technology sector like call center jobs, processing the payroll, medical transcription and so on are offshored to foreign countries such as India and China in a quest to find skilled workers and to gain good profit margin for cheap labor costs. This would mean millions of lesser jobs to Americans. When support centers are offshored to Asian countries, there are number of complaints from the customers regarding the difficulty in understanding the accent of foreigners, there are also complaints regarding the service personal not well-versed with the product that the consumer is talking about instead they just read out guidelines from manuals. Workers from the offshore locations too face problems, due to the time differences workers in offshore locations end up working late night shifts.
Many companies complained that highly skilled labor in India ended up resulting in high salary expectations from the workers in foreign countries like India, statistics show that the average salary rose to 75% of the salary from 25%. Due to reduced cost savings, extra efforts in managing the off-shore teams many American companies gave up on hiring people from foreign countries. However, in my opinion Indians demanding a raise in the salary is no wrong when they are expected to work longer hours compared to onsite counterparts and the costs of basic necessities in the country is gradually increasing.
There are controversies such as foreign workers are paid a lot less and the work environment in those countries are a lot different from the perks offered in onsite locations and hence feel foreign workers are exploited. However, critics in those countries say, one has to consider the standard of living in those countries is a lot lesser than American states and home-country based workplace situations are lot worse. Employees in India working for US companies do earn competitive salaries when compared to home-based IT companies.
However, Indian critics found that due to lot of skilled labor providing services to the US based companies created a lack of suitable talent for innovation in the home country. This would result in slow talent drain. Over the years, it has developed, and Indian IT services has started providing support and development activities to assist work which is much beyond the call-center jobs.
Foreign workers have slowly started realizing the future implications of wasting the talent of human resources on supporting the jobs in on-site locations and are starting to take necessary precautionary measures like starting their own manufacturing sectors etc. It would still take a long time to undo the damage.