A software standard is a standard, protocol, or other common format of a document, file, or data transfer accepted and used by one or more software developers while working on one or more than one computer programs. Software standards enable interoperability between different programs created by different developers.
The use of software standards
Software standards consist of certain terms, concepts, data formats, document styles and techniques agreed upon by software creators so that their software can understand the files and data created by a different computer program. To be considered a standard, a certain protocol needs to accepted and incorporated by a group of developers who contribute to the definition and maintenance of the standard.
For example, the protocols HTML, TCP/IP, SMTP, POP and FTP are software standards that an application designer must understand and follow if their software expects to interface with these standards. For instance, in order for an email sent from Microsoft Outlook can be read from within the Yahoo! Mail application, the email will be sent using SMTP, which the different receiving program understands and can parse properly to display the email. Without a standardized technique to send an email, the two different programs would be unable to accurately share and display the delivered information.
Some widely used data formats, while understood and used by a variety of computer programs, are not considered a software standard. Microsoft Office file formats, such as .doc and .xls, are commonly converted by other computer programs to use, but are still owned and controlled by Microsoft, unlike text files (TXT or RTF.)
Creating a standard
In order for all parties to agree to a certain software standard that they all should use to make their software connect with each other, there are software standards organizations like W3C and ISOC that consist of groups of larger software companies like Microsoft and Apple Inc.. Representatives of these companies contribute their ideas about how to make a single, unified software standard to address the data problem they are trying to handle.
Complexity of a standard can vary depending on what kind of problem that they are trying to solve. For instance FTP (file transfer protocol) tries to solve a different problem than SMTP, which is concerned with sending and receiving email. Standards also need to be simple, maintainable and understandable. The software standard document that they create needs to detail every possible condition, types, elements, etc. in order to retain utility and serve the role for which it was created.
Open v. closed standards
Standard can be a closed standard or an open standard. The documentation for an open standard is open to the public and anyone can create a software that implements and uses the standard. The documentation and specification for closed standards are not available to the public, enabling its developer to sell and license the code to manage their data format to other interested software developers. While this process increases the revenue potential for a useful file format, it may limit acceptance and drive the adoption of a similar, open standard instead.