FOUNDATIONS OF PROGRAMMING : TESTING AND SECURITY : 06.02 THE ETHICS OF PROGRAMMING

STUDY
PLAY
Ethics for the Win
A programmer's job isn't just writing program code, but also maintaining it—ensuring accuracy and security. Because programmers have access to LOTS of sensitive information, they have an ethical responsibility to protect user privacy and data. Just because a program can be written to do something, doesn't mean that it (ethically speaking) should.


Here are just a few ethical guidelines from the Association for Computing Machinery (ACM) Code of Ethics and Professional Conduct:

CODE OF ETHICS
Contribute to society and human well-being. A programmer should develop programs that help improve society and reduce threats, making everyday activities easier.
Avoid harm to others. Programmers have a responsibility to minimize the risk of harm due to loss of information by adhering to testing and design standards to avoid coding errors or security issues.
Respect the privacy of others. Programmers should create programs that maintain the privacy and integrity of user information, as well as protecting it from unauthorized access.
Give proper credit for intellectual property. Programmers are obligated to recognize and credit any use of other people's work, even if it is not protected by copyright law or patent. It is unethical to take credit for someone else's work as your own.
Protecting Yourself
Spam, phishing, hackers... it seems like there are tons of ways to get in trouble online. If everybody behaved ethically, this wouldn't be an issue, but unfortunately, not everybody can be trusted.

Let's take a look at some common examples and how to catch them—before they catch you!

Email Scams
email
link.
If you have an email address, you've likely seen one of these. Scammers and phishers will often send emails trying to get you to respond, click on links, or provide personal information. Sometimes they'll disguise a scam by making it look like it's coming from someone you know. So if anything seems off, like a lack of subject line or irregular grammar, chances are, it's phishy.
Sharing Passwords

Image of a computer with password on it.
© Shutterstock.com
It should go without saying, but we'll say it anyway: Don't share your passwords. Most people use the same password for multiple accounts. So while sharing your Instagram password might seem like a "relationship" milestone, you may not be as keen to share your bank account information. Many sites now provide two-step verification, by sending a text or email, which is a good extra step to make sure your information is secure.

Privacy Settings
Image of a computer hacker stealing personal information.
© Shutterstock.com

Here's the scoop: it doesn't matter how meticulous you are with your privacy settings and password complexity if you volunteer personal information via the internet. It might seem like a good idea at the time to post a pic of your new driver's license, but consider you've just informed the entire world wide web of your name, birth date, and home address—more than enough for an amateur hacker to steal your identity.

Dummy Sites

Image of a fake prompt on a computer
© Shutterstock.com
Unfortunately, clicking on these online pop-ups does not make you a winner. These are usually easy to spot as fakes, but more advanced hackers will go as far as creating almost perfect duplicates of well-known sites to trick you into inputting personal information. Be on the lookout for inconsistent URLs, if you're forced to navigate to an external link, and look for consistent copyright tags at the bottom of each page.
Business Security
enterprise software
© Shutterstock.com
Just like you have to protect your personal information, businesses are also responsible for keeping their information secure. On a business level, that information is integrated with its enterprise software. This is software that meets the needs of an organization, rather than individual users. These organizations include businesses, schools, clubs, or governments.

Have you ever logged into a portal to check your grades? Then you've used enterprise software. This type of software performs different business functions, like customer information management, accounting, file storage, and more.

Enterprise software helps organizations function more efficiently because the software is built specifically for business, rather than individual use.

In the world of enterprise software, many companies end up with access to a lot of information. This can range from email addresses and phone numbers to birth dates and social security numbers. A business has a responsibility to keep that information secure. Otherwise, it could have catastrophic consequences.

In 2013, over 70 million Target customers had their personal information stolen due to a basic malware infection created by hackers. The data breach cost the company over $10 million in a class action lawsuit.
Have a plan. Use that plan.
There it is. The blue screen of death.

Suddenly your life's worth of music, photos, videos, documents, and all other files hang in limbo. Maybe they can be recovered, or maybe it's time for your machine to go kaput for good. Either way, waiting for one or the other to eventually happen isn't the best plan.

Think about how devastated you would be about losing all of your files on your personal laptop. Now compare that to Google or the IRS losing all of their programs, applications, and files. Luckily, they've got a plan. A disaster recovery plan (DRP), to be specific.

Every company—nay, every individual—should have some form of a disaster recovery plan.

This plan is a set of processes and procedures that are put in place to guide a business or individual in the event of a disaster. There are two types of disasters: manmade—such as hackers, a terrorist attack, or dropping your phone in a toilet—and natural—like an earthquake, fire or tornado.

Parts of a Disaster Recovery Plan—
Backup: Having a backup of your data ensures you can restore files and return to normal ASAP.

Mitigation: Mitigation is the effort to reduce the impact of a disaster. In other words be prepared with backups, checklists, and a solid plan.

Monitoring: By regularly monitoring your systems, you can get ahead of any potential risks and know the moment anything goes wrong.

Redundancy: Having redundant backups and services in place is not only smart, but dead useful. Redundancy reduces downtime and allows for a faster recovery phase.

Response: Within a DRP is an emergency response plan. This outlines how you or your business will respond immediately after a disaster hits and prioritize actions accordingly.
Back. It. Up.
Image of Toy Story 2 logo.
© Shutterstock.com
Back when Toy Story 2 was being created, a single command almost derailed the entire project. In his book Creativity Inc., Pixar cofounder Ed Catmull recalls that someone entered the command '/bin/rm -r -f *' on the drives where the film's files were kept. This essentially told it to remove all files from a given location. And it did. "First, Woody's hat disappeared. Then his boots. Then he disappeared entirely," recalls Catmull. "Whole sequences—poof!—were deleted from the drive."

So what happened? Naturally, they went to restore the files from a backup...only to find that their backup system had failed. Toy Story 2 was gone. LUCKILY, another employee had made an entire copy of the film to use while she worked from home, saving the day.

Let's say this together: Back. Up. Your. Files. And do it right.

There are a few different types of backups, as well as different technology used to store backups.

Type Full Backup
Data Backed Up All data
Backup Time Slowest
Restore Time Slowest
Storage Space High

Type Incremental Backup
Data Backed Up Only new or modified files/folders
Backup Time Fast
Restore Time Moderate
Storage Space Lowest

Type Differential Backup
Data Backed Up All data since last full backup
Backup Time Moderate
Restore Time Fast
Storage Space Moderate


Type Mirror Backup
Data Backed Up Mirrors new or modified files/folders
Backup Time Fastest
Restore Time Fastest
Storage Space High

So whether it be a human error or a hurricane, having a plan with the right backups will definitely help. Not only will it reduce downtime, but it will also have you up and running as soon as possible.

External Hard Drive
This traditional backup stores your data to local media that is external to your computer. This backup includes: thumb drives, external USB hard disk drives, or tape backup devices.

Network Attached Storage (NAS)
This backup storage option syncs your files and folders onto a storage device located on your network. Only those authorized on your network will be able to access it.

CD/DVD-ROM
Optical drives like CDs or DVDs are ideal for storing low storage data you'd like to share, like music, movies, pictures, or applications. They are low cost, but have a short life span with slower read and write speeds.

Online Backup Services
Also known as "the cloud," this is a storage option that allows you to access your backup data via an online service. It is accessible anywhere with an internet connection. Limited storage space is often free, with increased storage offered at a rate.
YOU MIGHT ALSO LIKE...