SearchWiki:

Huvudmeny (edit)

Innehåll

Mina andra siter

Recent Changes Printable View Page History Edit Page

Note that this is a preliminary work draft, and should not be used in this form. Keep checking it as it takes form and feel free to discuss it here in the wiki? or in the thread on RPG Lab.

Ethical Software Design Manifesto

Basic principles

The Ethical Software Design Manifesto (ESDM) is a declaration of principles for the behaviour which software should adhere to, and is created as a response to a growing lack of sound business practices in software development.

It is our conviction that the wishes, privacy, security and integrity of the user and the user's system must be respected. It is also our conviction that the software evolution is best served if a level playfield is maintained.

Usage rules

Software developers can, by adhering to the principles laid out in this manifesto, make a statement that they have taken every care to guarantee that the software will behave respectfully towards the user. This will both give the user a better experience and give the developer a marketing edge.

To brand your software as compliant to the principles laid out in this manifesto, the following must be done:

  1. Make sure that your software actually is in compliance with the manifesto.
  2. Include the full text of the manifesto, without alterations, additions or omissions.
  3. Include a link to the original dokument (Link here)

Once this is done, put the Ethical Software Design logo on your product (logo here).

There is no central body for certification or enforced compliance, and thus, the only one responsible for the actual compliance is the developer who choose to put the ESDM brand on a product. This is a manifesto, not a certificate. Be advised, though, that your users will quickly notice any failure to comply and bad-will will spread quickly.

The manifesto

We consider it imperative that any software shows basic respect for the user and the computer on which it runs. We also consider it important that a friendly and healthy spirit of fair play is maintained in the software development industry.

As such, the following principles must be adhered to, and as developers, we consider them a matter of professional honour, responsibility and respect for the users, and thus guarantee that our software adheres to them.

No call home

The software does not require any contact back to the developer's sever to operate. This typically includes such practices as license verification, usage informataion gathering, sofware integrity verification or automated updates.
If such practices are used, they are volontary, shown clearly to the user and not required for proper operation.

No online requirements

The software does not require any online connection in order to operate, unless this is an intrinsic part of the expressed purpose of the software, for example a chat client or a web server.

No hidden information gathering

The software never gathers information which is not necessary for its operation. This includes, among other things, such information as user information, serial numbers, passwords, usage statistics, what software is installed, operating system information and settings.
If information is gathered, it is only done after confirmation by the user, and the user is informed about the exact extent of the information as well as its usage. This include all third party requests, including requests from legal authorities.

No hidden outbound connections

The software never sends any data without the consent of the user, as this could constitute a breach of privacy. When outbound connections are made outside the expressed purpose of the software, the user is fully informed about what the software is about to send and able to reject it with no ill consequences for the program execution and usage.

No hidden inbound connections

The software does not recieve any data that the user has not asked for, as this constitutes a potential security risk.

No disclosure

The software treats all information from the user or the user's system as confidential and never divulge it to a third party unless the user explicitly allowed publication. This includes services where the information is stored outside the user's system, such as web based services or mail accounts.
Third party requests for information is either denied immediately or, if that is not an option, relayed to the user and letting the user make the decision.

No non-technical restrictions

The software does not contain any restrictions not based in technical restrictions. This includes code that exists only to stop it from running on certain operating systems, market segmenting through different capabilities or different regions or exclusion of specific hardware.
This is not meant to mean that everything theoretically technically possible should be implemented. It means that no intentional restrictions are put in place that restricts the usage possibilities for the user unless they are technically motivated.
This restriction does not prohibit limited try before you buy versions.

No misrepresentation of purpose

The software states its purpose and function openly and correctly. This means that it does not contain any trojans, spyware or malware which is not explicitly stated. The software does not operate outside this stated purpose.

No deviation from normal run process

The software follows normal procedures for how a program should behave with regards to the operating system. This means that such practices as hidden processes, rootkits, unkillable processes, unremovable installations, modification of the operating system or other processes, preloading executables to facilitate faster startup or priority manipulation is not used. The software is well behaved and follows good coding practice.
If, and only if, it is deemed necessary or beneficial to bypass normal procedures, it may be done as long as explicit consent from the user is given.

No changes to system settings without user consent

The software does not interfere with the system settings unless the user has given an informed consent. This is key to maintain a stable and safe environment.

No execution of unknown executables without user consent

The software does under no circumstances execute unknown executables without the user's consent, as this constitutes a serious security risk. All executables except those provided by the software itself or which is part of the operating system is to be considered unknown. This also includes banners with active content (usually in the form of Java or ActiveX).
If a specific, known, third party software needs to be called, it's allowed as long as it is clear to the user what is happening. If practical, it is verified first, preferably though a secure hash.

No autostarted processes without user consent

The software never adds anything as an autostarted process without user consent, as it is a security risk and an annoyance. If the software has components which are autostarted, it also provides a way to remove the autostart that is at least as simple and obvious as it was to activate the autostart.

No hidden installations

The software never installs anything without informing the user and getting user consent. All installers contain information on what the user is about to install, including description, and allows the user to abort the installation.

No hidden upgrades

The software never upgrades itself without the consent of the user. Having software upgrading itself without informing the user is a serious stability problem and makes it very hard to find the cause of problems.

No forced upgrades

The software will never force the user to upgrade, as the user might rely on certain functions in a certain version, or wish to stick with a version known to work. This means that licenses, support, technical interaction and backwards compatibility will continue to work for older versions, at least for a significant time.
File formats used by the software will be kept usable throughout the life cycle of the product, and newer versions are always be able to read all versions of the file formats. Open and documented file formats are used to ensure that files will continue to be usable, unless a clear, demonstrable and significant benefit can be shown to using a proprietary format.

No leftover executables after uninstall

The software makes a complete uninstall when uninstalled. The sole exception to this rule is user settings, if the user wants to keep them. There is, if applicable, an option to uninstall them as well, for privacy reasons.

No deviations from established standards

The software follows the standards it uses to the letter, without alterations, additions or limitations. The user will be able to know that the software will work according to the standard just by checking that it has support for the standard. This is necessary for efficient and reliable interaction between different softwares.

No nonstandard user interface designs

The software follows established standards and guidelines regarding how the user interface should look and work, thus providing ease of use and a coherent look over all applications.
The software also respects user settings regarding look and feel, as this is good for the average user and essential to a handicapped user.

No intended interference with other products

The software is not be designed to interfere with other software. This includes intefering with the normal execution of other software, refusal to run if other software is installed and uninstallation or destruction of other software.
If technical circumstances makes it impossible for different software to coexist, the user is informed and given a choice on how to handle the situation. Only technical circumstances are valid exceptions, and only if they are related to the core purpose of the software.

No misrepresentation of other products

The software is not designed in such a way that it misrepresents other products. It will, for instance, not have incompatibilites targeted against specific competitiors or give unreasonably bad perfomance when interacting with competing products.

No hogging of screen space

The software does not force the user to dedicate the entire screen to the software, and it does not use more screen space than needed by the application. If full screen usage is useful, for example for video playback, there is still a fallback to a smaller window mode if the user so wishes. This rule does not apply to screen savers, which by definition is full screen only.
The software does not have unnecessary persistent use of screen space. For instance, tray icons are only displayed when needed, and there is an option to disable them.
Edit Page - Page History - Printable View - Recent Changes - WikiHelp - SearchWiki
Page last modified on June 11, 2010, at 03:49 PM