Do Software Testers Need Engineering Ethics?

By Jerry Cavin, Senior Software Engineer

Jerry Cavin is also an Adjunct Professor of Computer Science and Astronomy at Park University.

When I was student learning to become an engineer, one course not required for my degree was Ethics. But because of my curiosity (and friends that were Philosophy majors) I took some classes in Logic and Ethics. The study of Ethics is the branch of Philosophy that examines the principles upon which something is determined to be right or wrong; and I quickly became fascinated with its history and the many debates on ethical issues. But, I was also surprised to learn of the links between the ancient philosophy of ethics and modern day engineering.

One of the most important Philosophical works on Ethics is Aristotle’s collection of scrolls called Nicomachean Ethics, which became the foundation in the study of theology and law from medieval times and is still relevant today. Aristotle asserts that the highest aim in life is happiness, which is attainable by living a life of virtue. He identified two types of virtue that must be realized. The first is moral virtue, which is developed by the daily repetition of moral acts. Moral virtues are an individual’s positive acts as defined by their societal system of beliefs. They were implemented as judicial laws and theological laws.

The other type of virtue Aristotle declared is intellectual virtue, which is developed through education. Aristotle’s intellectual virtue rose to prominence during the medieval times in the form of Guilds — a word derived from the Saxon word “gilden” which means “to pay”. Guilds were originally established to provide its members in a small geographic area with a stronger voice to protest the excessive taxes levied by the lords and land owners. Members of each profession would often create their own guilds. From Apothecary Guilds to Writer Guilds, these Guilds created the first ethical guidelines for the professional worker. In addition, the guilds also regulated pricing policies and quality of workmanship to protect the end consumer.

As the free market expanded geographically, the localized medieval guilds became impediments to rapid economic growth. Trade over vast regions could not be controlled by the guilds whose members were confined to cities and villages. During the Industrial Age the field of engineering experienced rapid growth and the guilds were replaced by trade unions to represent the workers. And professional qualifications became managed by universities and professional societies. Professional societies were created for many occupations including architecture, law, medicine, and engineering. During the 19th century, engineering evolved into its own distinct profession, as well, and professional societies soon followed. In the United States, the American Society of Civil Engineers was formed in 1851, the American Society of Electrical Engineers in 1871 and the American Society of Mechanical Engineers in 1880. However, in the early professional societies, ethics were more commonly regarded as a personal responsibility rather than a professional one.

At the beginning of the 20th century there were a number of catastrophic failures with significant loss of life due to poor quality of engineering practices. In 1904 a train was crossing the Eden Colorado Bridge when the bridge collapsed killing 111 people. In 1907 and 1916 there were two Quebec City Bridge collapses with a combined total of 86 people killed, and the Division Street Bridge in Spokane Washington collapse with 5-7 (reports vary) people killed. These are a few of the major structural failures that had a profound effect on the engineers and professional societies. In response to these failures they established a set of formal qualifications for professional engineers that involved a combination of education and experience.

Today’s professional societies continue a long and noble goal of protecting the public by establishing a standard of intellectual knowledge and ethics of their members. In addition, these professional societies established and adopted the first ethical guidelines for engineers. Societies such as the ACM Codes of Ethics, the IEEE Code all have created ethical guidelines for software engineers and electrical engineers. The professional society for software testers is the Association for Software Testers, which has simply adopted the ACM Code of Ethics. Consequently, some software testers are concerned that existing ethical guidelines for testers are not specific enough. One of them is James Bach – software tester, author and lecturer – and I encourage you to read his thoughts on the subject and his list of ethical principles.

At the turn of the 19th century the establishment of ethical guidelines for engineers was produced after a series of catastrophic events that resulted in loss of life. Recently we have witnessed a series of catastrophic software failures. After spending millions of dollars the government rollout of the Healthcare website has been a total flop. In 2007 software bugs that were found in medical devices caused tens of thousands of the devices to be recalled. In 2004 the Air Traffic Control System in the Los Angeles airport lost contact with 400 airplanes when software caused the voice communication system to shut down. In 1999, the NASA Mars Orbiter, a $125 million spacecraft, was sent crashing into Mars because of a simple mathematical software mismatch. In light of these events, perhaps it’s time again to remind the next generation of test engineers of their ethical responsibilities to protect the safety, health, and welfare of the public. As Aristotle put it, “we are what we repeatedly do; excellence, then, is not an act but a habit.”

Leave a comment

Continued Education: Whose Responsibility Is it – Employer or Employee?

by Phil Smith, Vice President Client Services

PhilThere is a large volume of material circulating on the Internet, providing philosophical approaches to lifelong learning for individuals. The concept of “continuous learning”, as it applies to the workplace, tends to revolve around these two generally accepted definitions:

  1. “Ongoing learning process that seeks to incorporate the lessons learnt (from the results of already implemented changes) into a continuous improvement program” (http://www.businessdictionary.com/definition/continuous-learning-activity.html), and…
  2. “Total quality philosophy in which every process and system in a firm is subject to constant scrutiny to (1) eliminate waste, (2) reduce response time, and (3) simplify process or product design” (http://www.businessdictionary.com/definition/continuous-improvement-program.html).

These links will take you back to the core concept that organizations must base their manufacturing and/or services on processes, and that once established, processes must always be under formal measurement, scrutiny, and improvement. If you are in a knowledge-based industry, such as software engineering and quality, then you have to extend the concept into your training program. Training must be viewed as a process and must always be improving. This applies to your own skill set as well—it’s not just about process capability, but also about people capability.

There is some overlap with workplace continuous learning (employer sponsored improvement) and self-improvement (individual sponsored improvement) in a few articles that I recently stumbled onto where the authors were clearly unhappy with current or past employers’ training programs. I’m not providing links because in many cases it was obvious which employer had caused enough emotion to ignite a blog. However, these articles do raise interesting points, specifically, who is responsible for an employee remaining current with their technical skills:  the employee, or the employer?

I’m referring to widely accepted workplace concepts related to improvement; not just improvement of the product or service, but also improvement of the human capital used to deliver. I’ll state my opinion clearly right here: the employer is responsible. Organizations that rely on people’s knowledge, skills, and efficiencies have a significant responsibility and market incentive to keep their workforce as far ahead of the competition’s workforce as possible.  These organizations have a social and economic responsibility to provide formal plans for training and they need to execute those plans with relevant material. The results and methods the training uses must be measured and improved over time.

I use the term “economic responsibility” because training is actually a pursuit of efficiency and improvement. Without these investments, companies lose ground to competition and ownership value erodes. Additionally, leaving training solely in the hands of employees will result in poor alignment with company objectives and unpredictable results.

I use the term “social responsibility” because the software industry typically keeps people so busy working billable hours that we don’t make time for training programs. We create them; we just don’t execute them. Cost pressure from offshore providers has left US-based resources in a predicament, because training costs are no longer easily hidden inside billing rates. Therefore training programs get sorted to the bottom of the priority list and do not receive attention. In some cases, recent graduates end up more qualified in relevant technologies than long-term industry experts. Technologists who do not take it upon themselves to learn relevant technologies may end up on the wrong side of the cost benefit curve, which certainly feels unfair to the many who work long billable hours to make their company successful.

Other industries such as health and legal, which are knowledge based, require that people be licensed, and that licenses be maintained over time on the basis of formal, ongoing education. We’ve missed this concept in the software industry, which has been convenient in that it allows us to be informal with our staffing decisions and enables us to exchange hours that should be dedicated to training and certification for more billable hours.

On the flip side, you can’t argue with free market economics. Graduating students will always have some advantages that may or may not outweigh their lack of experience, and offshore resources will always have some cost advantage that may or may not outweigh distance and other factors. Employers will always have challenges with cost and commitments, resulting in pressure for more billable hours. In the end, the only person that can be held responsible for a person’s career plan, training, and marketability is the person. Life just works that way.  Making sure you are marketable is basically the same as being a gazelle out on the plains. Fast and capable is essential. With that in mind, if I could personally meet the people whose blogs read like, “it’s not my fault,” I think I’d have difficulty finding sympathy.

So, is the employer responsible for training, or is it the employee? Yes.

1 Comment

Growing Pains — How to Grow From Small to Big

by Brenda Hall, CEO

Brenda_Hall_100_x_120I’ve often been asked, “How hard was it to start your company?” My answer continues to be, “It’s not hard to start a company; it’s hard to grow it!” Simply said, anyone can start a company as long as they desire to. It takes someone willing to take risk, believes they have something someone else is willing to buy, and believes passionately enough in their idea to push other, more ‘stable’ options aside such as working for someone else for a paycheck. Getting started isn’t difficult. There are endless examples of people baking their products at home and selling them through local outlets. Or, perhaps you know someone who has exceptional knowledge in a specific area (think software development) who is keen to develop that perfect app for our phones. A short cruise across the internet can provide the applications to fill out for the Secretary of State for your local state, open a business account at your bank, and without much more ado…you’re in business.

Growth, however, requires tenacity, dedication, gathering smart people around you and hard work day-in and day-out. There will be times when mistakes are made, and standing up to them to preserve your reputation while ensuring your clients don’t pay for them is paramount. You will never grow if you don’t have delighted clients. Here are a few, key lessons I’ve learned that will help any entrepreneur get off on the right foot.

  1. Make sure your company values are visible to all of your employees. Even more, try to hire employees who SHARE your values. Values are important because people need to work with other like-minded people. For example, you want people who not only respect your leadership and believe in the mission of your company, but also people who ACT on those same values especially when challenges enter the picture. Not every effort or client engagement will go smoothly or perfectly. You need to have people who will quickly work to fix errors and repair relationships. You need people you can count on to Do The Right Thing.
  2. Speaking of employees, I’ve learned it’s critical to hire well. Take your time to find the right person. It’s not always about whether you like someone, or assume someone is a good fit because they worked at a major company before landing in a chair in front of you for a job. WAIT…do your due diligence. Make sure you investigate their background thoroughly. Talk to people they worked with. Check them out on LinkedIn. Check them out on Facebook. I learned from a dear man who utilized LinkedIn to garner as much ‘intelligence’ about a potential employee he was planning to hire. Then, he went to Facebook to find out what kind of person he was planning to hire. Good advice.
  3. Surround yourself with people smarter than you. This is extremely important, and there is no room for ego to get in the way. Networking is essential in order to meet the kinds of people you would hire if you could…but necessarily can’t. For example, I’ve met several, extraordinary people through the years who have become trusted friends and mentors. They’ve guided me through tricky decisions, helped me sort through the noise and chatter to achieve specific goals, and continue to support my company’s growth in a way that brings efficiency as well as success.
  4. Listen, listen, listen to your clients. For me, the sales process is very personal. I’ve no professional sales experience, but I learned a long time ago that sales is truly about listening and keeping the lines of communication open and active. Once you make a ‘sale’…don’t forget that sale involved someone trusting you to deliver the goods. Make sure you deliver them. Make sure you follow through with your client to see if they have any questions. The world is ripe with people who feel let down after a sale was made. Don’t let that happen. If you want your company to grow, you’ll need strong referrals, testimonials and REPEAT business because you did well the first time around. You LISTENED to your client, you did what you said you were going to do for them, and you made sure they were delighted throughout the experience. This is a formula that should NEVER change.
  5. Enjoy the journey. This isn’t about how big, how much, how well known your company becomes. This is about making sure you recognize the achievements of your people, the successes they’ve brought with each client effort, and how well they’ve made your life — and kept the breath of life in your company. I don’t believe anyone gets very far on only the leadership of a few people at the top; it takes a team. I once went to the top of the mountain to visit Neuschwanstein Castle in Bavaria, Germany. The road is very steep and the wagons we rode were pulled by a team of strong (and beautiful) draft horses. I thoroughly enjoyed the journey, but I’ll also never forget the hard work those horses had to give to provide me that enjoyment. Enjoy the journey, but don’t forget your team that brings you success.

There is so much more to share, but I believe if you adhere to these 5 guidelines, you’re well on the way to building the solid foundation that gives your company all the growth potential you will need through the years.