You might ask what Ethics has to do with Software Engineering? Let us start with what the word means. Ethics is defined in the free dictionary by Farlex as a system or set of moral principles. Ethics is “The rules of conduct governing a particular class of human actions or a particular group, culture, etc.” Rules of conduct… Programming in it’s simplest form is a set of instructions with rules governing how the computer will function. However, the focus of this discussion is how the Software Engineer governs his actions to provide a quality software product at a fair price to his customer. Recent news reports that the single website for the Affordable Care Act implementation costs the American People over $1 Billion U.S. Dollars. And, it doesn’t work. How can contractors bill a customer for a product that doesn’t work? Simple, it all falls into the project management aspect of the software on both the contractor and the government. The complexity of what should have been a rather simple system grew as the policy was interpreted by the administration through regulations. Each new regulation developed greater complexity into the software system requirements. Since the requirements continued to change so did the development and likely redevelopment of the system as well as design and redesign. Since programming is labor intensive and costly, see my prior blog on Understanding Software Engineering, then the cost naturally grew from the initial bid price to the current price. Lack of planning creates cost overruns on the customer side which is not necessarily within the contractors control. Additionally, over 50 contractors were involved because of the extensive integration the website would have with other systems across government, insurance, and healthcare. Quality software is something that must be purposed. It doesn’t just happen. A disciplined and conscious effort and investment must be made to have quality an important ingredient in the formula for success. When contractors knowingly prey on the ignorance of their customer, is this ethical? What about the ethics of accepting payment for something that is broken? The reason this may not be contractual is because in many cases the government only pays for programmers time, not the end product. The details would need examined to see if it is true in this case. Therefore, no rules may have been broken from a legal stand point which is all most companies look at. However, ethics is a much deeper question that must be considered by each person. An individual example is passing a unit of code along to the testing team knowing that it has errors throughout. The programmer looks good to the manager because he met the deadline but knowingly passed poor quality product onto the next step of the process. Is this ethical?
We explore many of these ideas in the Master of Science in Software Engineering program at West Virginia University. By having a strong foundation in software engineering with a strong emphasis on quality and the customer, ethical concerns are minimized. You can learn more by applying today!