|
Huvudmeny (edit)Innehåll
Mina andra siter |
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 ManifestoBasic principlesThe 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 rulesSoftware 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:
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 manifestoWe 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 homeThe 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 requirementsThe 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 gatheringThe 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 connectionsThe 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 connectionsThe software does not recieve any data that the user has not asked for, as this constitutes a potential security risk.
No disclosureThe 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 restrictionsThe 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 purposeThe 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 processThe 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 consentThe 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 consentThe 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 consentThe 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 installationsThe 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 upgradesThe 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 upgradesThe 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 uninstallThe 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 standardsThe 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 designsThe 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 productsThe 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 productsThe 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 spaceThe 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.
|