Open Source: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Chapter | {{Chapter | ||
| | |image=OpenSource.jpg | ||
| | |poc=Wilfred Pinfold | ||
| authors = Wilfred Pinfold | |authors=Wilfred Pinfold | ||
| | |blueprint=Data | ||
| email = wilfred.pinfold@urban.systems | |chapter=3800 | ||
| document = 20170824-City-Platform-Supercluster-Report-FINAL.pdf | |sectors=Data | ||
|summary=Open source refers to a type of software or technology whose source code is publicly available and can be modified and distributed by anyone. This means that the underlying code that makes the software or technology work is freely accessible to the public, and can be modified, improved, or distributed by anyone without the need for permission from the original creator. | |||
|email=wilfred.pinfold@urban.systems | |||
|document=20170824-City-Platform-Supercluster-Report-FINAL.pdf | |||
}} | }} | ||
Open source software is typically developed by a community of developers who work together to improve the software and share their modifications with the rest of the community. This collaborative approach to development allows for rapid innovation and can result in high-quality software that is widely used and widely supported. | |||
Open source is in contrast to proprietary software, which is developed and distributed by a company or individual who retains exclusive control over the software's source code and distribution. | |||
Open source is a fundamental concept in the software development field but has been extended to other areas such as education, research, and technology. Open-source hardware, Open-source content and Open-source drug discovery are some examples. | |||
Open source is a philosophy that encourages collaboration and sharing, which aims to foster innovation, creativity, and community development. | |||
==Best Practices== | |||
There are several best practices that are commonly followed in open-source development: | |||
#'''Use version control''': Using a version control system such as Git allows multiple developers to work on the same codebase simultaneously and helps track changes to the code over time. | |||
#'''Write clear and readable code''': Open-source code should be easy to read and understand by other developers, which helps to ensure that others can contribute to the project and that the code can be easily maintained. | |||
#'''Write documentation''': Well-written documentation helps others understand the project and how to contribute. | |||
#'''Write tests''': Writing automated tests helps to ensure that the code works as intended and that any changes made to the code do not break existing functionality. | |||
#'''Use a well accepted license''': Open-source projects should have an open-source license which clearly states the terms under which the code can be used, modified, and distributed. | |||
#'''Encourage community involvement''': Encouraging contributions from the community and fostering a welcoming environment helps to build a strong and active community around the project. | |||
#'''Continuously improve''': Continuously improve the codebase, fix bugs, and add new features to keep the project active and relevant. | |||
#'''Be inclusive''': Be inclusive and respectful of all contributors regardless of their background or experience. | |||
By following these best practices, open-source development teams can create high-quality, well-maintained, and widely adopted code that benefits the entire community. | |||
Continuously improve van be achieved from the outset by using Agile development methodologies. Agile software development emphasizes flexibility, collaboration, and customer satisfaction. It is often used in open-source software development to manage the collaborative process of developing and maintaining software. | |||
In Agile development, a software project is broken down into small, manageable chunks called iterations or sprints, usually lasting a few weeks. Each iteration or sprint is focused on delivering a working piece of software that contains a set of specific features or improvements. The team works closely with the stakeholders, such as users and customers, to prioritize and plan the work for each iteration. | |||
In an open-source software context, Agile development allows for a flexible and collaborative process where developers from different backgrounds, locations, and skill levels can work together to deliver a high-quality product. The stakeholders, such as the users and contributors, can provide feedback and suggestions at any point in the development process. | |||
Some of the key principles of Agile development in open-source software include: | |||
Working software is the primary measure of progress | |||
*Welcome changing requirements | |||
*Deliver working software frequently | |||
*Collaboration between developers and stakeholders | |||
*Continuous improvement | |||
The Agile development approach in open-source software can provide a transparent and flexible development process that allows for rapid innovation and customer satisfaction. | |||
==Barriers to Use== | |||
Two barriers currently exist to effective and powerful smart city solutions. First, many current smart city ICT deployments are based on custom systems that are not interoperable, portable across cities, extensible, or cost-effective. Second, a number of architectural design efforts are currently underway (e.g. ISO/IEC JTC1, IEC, IEEE, ITU and consortia) but have not yet converged, creating uncertainty among stakeholders. To reduce these barriers, NIST and its partners convened an international public working group to compare and distill from these architectural efforts and city stakeholders a consensus framework of common architectural features to enable smart city solutions that meet the needs of modern communities. |
Revision as of 06:13, January 17, 2023
Data | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sectors | Data | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contact | Wilfred Pinfold | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Topics | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Activities
Press
|
- Authors
Open source refers to a type of software or technology whose source code is publicly available and can be modified and distributed by anyone. This means that the underlying code that makes the software or technology work is freely accessible to the public, and can be modified, improved, or distributed by anyone without the need for permission from the original creator.
Open source software is typically developed by a community of developers who work together to improve the software and share their modifications with the rest of the community. This collaborative approach to development allows for rapid innovation and can result in high-quality software that is widely used and widely supported.
Open source is in contrast to proprietary software, which is developed and distributed by a company or individual who retains exclusive control over the software's source code and distribution.
Open source is a fundamental concept in the software development field but has been extended to other areas such as education, research, and technology. Open-source hardware, Open-source content and Open-source drug discovery are some examples.
Open source is a philosophy that encourages collaboration and sharing, which aims to foster innovation, creativity, and community development.
Best Practices
There are several best practices that are commonly followed in open-source development:
- Use version control: Using a version control system such as Git allows multiple developers to work on the same codebase simultaneously and helps track changes to the code over time.
- Write clear and readable code: Open-source code should be easy to read and understand by other developers, which helps to ensure that others can contribute to the project and that the code can be easily maintained.
- Write documentation: Well-written documentation helps others understand the project and how to contribute.
- Write tests: Writing automated tests helps to ensure that the code works as intended and that any changes made to the code do not break existing functionality.
- Use a well accepted license: Open-source projects should have an open-source license which clearly states the terms under which the code can be used, modified, and distributed.
- Encourage community involvement: Encouraging contributions from the community and fostering a welcoming environment helps to build a strong and active community around the project.
- Continuously improve: Continuously improve the codebase, fix bugs, and add new features to keep the project active and relevant.
- Be inclusive: Be inclusive and respectful of all contributors regardless of their background or experience.
By following these best practices, open-source development teams can create high-quality, well-maintained, and widely adopted code that benefits the entire community.
Continuously improve van be achieved from the outset by using Agile development methodologies. Agile software development emphasizes flexibility, collaboration, and customer satisfaction. It is often used in open-source software development to manage the collaborative process of developing and maintaining software.
In Agile development, a software project is broken down into small, manageable chunks called iterations or sprints, usually lasting a few weeks. Each iteration or sprint is focused on delivering a working piece of software that contains a set of specific features or improvements. The team works closely with the stakeholders, such as users and customers, to prioritize and plan the work for each iteration.
In an open-source software context, Agile development allows for a flexible and collaborative process where developers from different backgrounds, locations, and skill levels can work together to deliver a high-quality product. The stakeholders, such as the users and contributors, can provide feedback and suggestions at any point in the development process.
Some of the key principles of Agile development in open-source software include:
Working software is the primary measure of progress
- Welcome changing requirements
- Deliver working software frequently
- Collaboration between developers and stakeholders
- Continuous improvement
The Agile development approach in open-source software can provide a transparent and flexible development process that allows for rapid innovation and customer satisfaction.
Barriers to Use
Two barriers currently exist to effective and powerful smart city solutions. First, many current smart city ICT deployments are based on custom systems that are not interoperable, portable across cities, extensible, or cost-effective. Second, a number of architectural design efforts are currently underway (e.g. ISO/IEC JTC1, IEC, IEEE, ITU and consortia) but have not yet converged, creating uncertainty among stakeholders. To reduce these barriers, NIST and its partners convened an international public working group to compare and distill from these architectural efforts and city stakeholders a consensus framework of common architectural features to enable smart city solutions that meet the needs of modern communities.