John Ashley is a software developer for a computer software company in NY. The company designs and develops custom software for a variety of private and public clients. John is in charge of a software development team. For the past three months, his group has been working on a multimillion dollars trading and accounting system for a financial institution. They encountered some very difficult problems in the development process during these three months. Every time it took them longer than expected time to find and solve the problems. That caused the project almost two weeks behind the schedule. During the meeting with the client, John was told that if they could not deliver the software on time, the contract would be withdrawn and their client would leave the company. John's boss Sam also told him a bad news that the company is considering laying off its employees if the company cannot maintain its profitability. Sam promised John that he would help him in any way he could on this project with his limited resources. Sam said if his group could not complete the project and if his client left the company, the entire development team would be laid off and possibly more people from other groups in his department would be let go as well.
After meeting with his client and Sam, he called a group meeting and told his group that they have to work over time without extra pay so that they could finish the project on time. John told his group that they had to do whatever they could to speed up the work and to finish it on time to avoid the severe consequences. His boss Sam agreed to let one programmer Adam to help his team with the coding. It seemed that everything was moving smoothly.
A few days later, John had another bad news. This time it was not work related, but his wife Susan. Susan is a housewife with their two children Amy of age 9 and Nick of age 6. Susan was just diagnosed with breast cancer in its late stage. Fortunately, his company's medical insurance covers his wife and children. She had the surgery and received proper medical treatment. During those days, except going to the hospital to see his wife and being with his children at nights, John spent all his time with his group on the project. It was the worst time in his life.
The entire team worked so hard, days and nights and many extra weekends. Finally, they finished the project two days ahead of the delivery date, which was a Friday. John decided to ask everybody in the group out including Adam to celebrate on Wednesday night. Everybody was so happy and relieved. They were laughing and talking everything from the difficulties of the project to the many sleepless nights and so on. During the conversation with Adam, John thanked Adam for his help for the project. After a couple of drinks, Adam told John that the reason that he finished his part so easily and quickly was because he worked on a similar project at a competing software company before he came to this company. He used exact software code that was written by his coworkers at that competing company in the project as well as some code he found in a commercially produced software package. John did not say anything.
The next day, John meets with his boss Sam. What should John say about the project?
Case OverviewThis case involves a software developer and his personal and working experiences in the process of developing software for a customer. John Ashley is responsible for a software developing team to design and build software for a client. After the software is completed for delivery, he accidentally found some serious problem with the software. John's action will have profound impacts on himself, his wife, his team members and his company. The issues involved are also complicated by many other factors.
Case ObjectivesAfter analyzing and discussing this case, the students will be able to:
- Identify the problems in the case
- Discuss these problems from the perspective of John, John's wife, Adam, Sam, John's software developing team, the client and the company
- Realize the seriousness of the problem
- Realize the consequences to various actions that could be taken
- Recognize the importance of ethics, and professional issues
- Study the ACM Code of Ethics and Professional Conduct
- Recognize that ethical and professional conducts are always in contrary to self-interest
- Identify the actions that professional can take when faced with ethical dilemmas
- Give credit and acknowledgement to other people's work and protect property
- Analyze accountability from various perspectives
- Distinguish between copyright, patents, and trade secrets
- Identify the need to work effectively within a team
GuidelinesThe case is designed to bring the real life problems to the classroom so that students can be aware of ethics, professional issues in their profession. Also from the case study, students can realize the importance of software design, development, individual role and impact in a team environment
- What are the problems?
- How did the problem(s) develop?
- What are the constraints?
- What are possible actions John can take?
- What are the consequences to various actions John could take?
- What is the responsibility of John?
- What is the responsibility of Adam, Sam and other constituents?
- What are the solutions?
- How to avoid similar problems?
- Do role-play to realize John's dilemma
- What could Sam do?
- What could the developing team do?
- What could the client do?
- Should they tell the client what has happened?
- What is the role of Adam in the team project?
- Why did Adam do what he did?
- Analyze the accountabilities from Adam, John, Sam, and the software company
- What is the differences between copyright, patents and open source code?
- What is the problem with software piracy?
- ACM website: www.acm.org
- Communications of the ACM, February 1993
- M. David Ermann, Mary Williams, and Michele Shauf. Computers, Ethics and Society, 2nd Ed. Oxford.
- G. R Morrison, S. M. Ross and J. E. Kemp. Designing Effective Instruction 3rd ed. John Wiley and Sons.