15.10. The reuse of software raises a number of copyright and intellectual property issues. If a customer pays a software contractor to develop a system, who has the right to reuse the developed code? Does the software contractor have the right to use that code as a basis for a generic component? What payment mechanisms might be used to reimburse providers of reusable components? Discuss these issues and other ethical issues associated with the reuse of software.
Business Ethics(in software)
The ethical reuse of software is an interesting topic that made me think about other industries and how they develop new products or technologies and how that related to software development. I think one of the first issues to tackle is the legal aspect of the situation. If a company contracts the services of a software contractor and in the terms explicitly forbids the reuse of the software they develop while working on their project then the contractor is obligated to perform their services in accordance with the terms of the contract. I think this is an important distinction to make because companies have options and if a contractor is unwilling to meet their terms then the company may choose another contractor. That being said, if a company were to do that, it may be difficult to delineate from what is reused and what may be standard practice for the contractor. For example, if a contractor is asked to create a system they are familiar with and already have a previous application framework that suits those needs, it would be unfair to now limit its reuse in the contractors' future projects. This may be the case from any number of things from architectural patterns, design patterns, and even program libraries. The more company-specific software development may have a better case to limit reuse.
Patent Law
I found myself digging into some patent law while writing this blog and came across some interesting cases. In 2014 in
Alice Corp. v. CLS Bank International the Supreme Court ruled that the patents given to Alice Corp. for software that dealt with escrow transactions were invalidated. Justice Thomas wrote " “Simply appending conventional steps, specified at a high level of generality,” to a method already “well known in the art” is not “enough” to supply the “ ‘inventive concept’ ” needed to make this transformation". This was because the process that Alice Corp. had effectively computerized did not meet the criteria for a typical patent and simply performing a well-known task on a computer was not enough. Articles reviewing the case noted that the case did not decide future cases involving computer software but more or less stated why Alice Corp.'s software did not meet the criteria for a patent by law. This may seem a bit off-topic but it has similarities to software being reused by a contractor. If by law software that is generic in nature cannot be patented, it seems wrong to restrict its reuse unless contractually obligated and even then the problems involved in that were outlined above.
Closing
A situation where this becomes more complicated would be when an employee from one company goes to another. If the employee physically (or digitally?) brings over the code from various projects this is unethical and likely illegal if the employee had some sort of NDA with the previous employer. Time, effort, and expertise must be taken into account when considering whether we should be able to 'borrow' code from others, but it seems like once the cat is out of the bag there's little way to stop it.
Comments
Post a Comment