Computers and technology are continually advancing. To match this advance, the programming techniques utilized by programmers have had to evolve to keep up. Sometimes these changes have been small and sometimes they have been large. Recently, a new project management software, Manuscript, has been released, which hopes to once again change software development by squashing bugs that may otherwise be ignored.
There are always problems during software development. Back in the 1990s, programmers faced “the application development crisis.” The problem during the crisis was that programs took too long to be developed. So long, in fact, that many projects were stopped halfway and many of the programs that were finished were obsolete. Both programmers and companies seeking computer programs to assist in their businesses felt frustrated over the crisis. So, a potential solution was developed. At the time, program development followed the waterfall method. The waterfall method required each step to be taken one at a time, and the programmer could never go backward. So, the programmers had to know every requirement of the program before starting the coding, which could lead to difficulties when the program needed to be changed. In 2001, the Snowbird meeting was held in Utah by a group of programmers to consider a solution to the problems caused by waterfall development. Thus, the Agile Manifesto was created which advocated a development method that was more responsive to change and focused on creating working software rather than following a specific plan. Today, agile development has become more common than ever, and new development methods are being built on its ideals.
Now, some fear that programming is facing a new crisis. One that is very different than the one faced in the 1990s. A crisis of ethics. In recent years, incidents, where programs have been used unethically or illegally, have come to light. Volkswagen had software that made their cars appear to be more environmentally friendly for the sake of passing emission standards. One programmer revealed that his employer made him write a program that helped salespeople target customers who opted out of email newsletters. Another programmer was told to use channels reserved for emergency services when programming a radio device. There are countless ways that programmers can be asked to do unethical or illegal things with their programming talents. Some will choose to take a stand against these crimes, but there are countless programmers who will just do as they are told.
As things are right now, there is little to no ethical training required to be a programmer. There are no ethical guidelines that programmers are taught to follow. Ethics are taught in business schools across the country. Debates rage on about the best way to teach ethics, but almost every business school makes some attempt. Lawyers must study ethics in law school and are held to the ABA’s Rules of Professional Conduct. Yet, programmers who feel uneasy with an order from their superior have little guidance in how to handle it.
Recently, Fog Creek Software released a project management tool called Manuscript. Fog Creek claims they took the ethical crisis into consideration when developing Manuscript and features were added that can hopefully provide some help. In Manuscript, problems with the program are put into cases. These cases are easily searchable by any member of the development team and each case can be assigned to a specific member. Thus, this member will bear the responsibility if the case is not settled. Ethical issues can be put in as cases to be solved, and they must be solved or the member assigned to that case will face the consequences. This can partially mitigate the bystander effect that was present before. Since any member of the team could fix the issue, none would do it. The members knew that the issue would be a difficult problem to solve, and they found it easier to let someone else take care of it. Eventually, the program would be released with the issue still there and no one to take the blame. Of course, this is not always the sequence of events in reality, but it is something that can happen.
It is doubtful that Manuscript alone can fix all of the ethical issues in programming. Manuscript can serve as a process to handle ethical issues, but that does not mean the programmers will have the confidence to use it. Programmers still need to be educated about ethics and how to handle pressure to create unethical programming. Maybe one day soon ethical education in programming can become a reality, but Manuscript may be a good first step.