EOF - 开源使用加速软件开发
许多软件开发者有一些共同的特点。除了大量的咖啡因和富有创造力的工作时间表,开发者们喜欢从事有趣的新问题。他们希望尽可能高效和高产地工作。他们也从不想从头开始;他们更喜欢剪切、粘贴、修改和扩展。
当今最优秀的开发者是那些能够最有效地找到、组装然后优化可重用软件组件的人——无论这些组件是开源的还是在他们自己的组织内开发的。开发者对 Google 和 SourceForge 的运用技巧现在与他们对软件架构和实现的知识同样重要。
这种新的“组装”模式正在从根本上改变软件设计和开发的方式。它加速了开发,提高了软件质量,并降低了成本。简而言之,它正在改变一切。
现在的软件由公司拥有的代码、开源和商业库以及外包商提供的代码混合组成。通过将外部组件与他们的专有技术相结合,公司创建了一组混合知识产权,或混合IP资产。在这种新的混合IP环境中,管理软件许可的最佳实践正在涌现。
所有软件——无论是商业软件还是开源软件——都带有公司必须遵守的许可义务。这种新的混合IP环境通过将各种类型的许可证混合在一起,增加了流程的复杂性。为了使公司和个人开发者免于麻烦,需要正确地管理这些许可证及其限制。
以下是一套软件合规管理“最佳实践”,这些实践是通过我与世界上最擅长利用这种新环境的公司讨论后制定的。
重用现有组件——为了降低开发成本、加速上市时间、提高质量和降低业务风险,在适当的地方使用现有的内部和外部组件。明确考虑功能、性能、可靠性、成熟度、风险、敏感性和许可义务。
跟踪和控制内部组件的更改——为了建立和维护所有内部组件的出处,识别和保护关键IP,并避免无意中违反许可证、商标、专利、版权和商业秘密。跟踪内部组件的创建和修改,并控制那些敏感组件的修改。
控制敏感或外部组件的重用——为了避免最后一刻的意外、猜测、妥协和冒险,并防止知识产权的损失,并促进及时有效的补救。审查并批准在项目中使用任何外部或敏感的内部组件或片段。
验证每个构建和发布版本——以确保及时发现项目中无意包含的材料以及对组件未经批准或被排除的修改。识别并纠正所有未经批准的组件或片段以及对任何这些组件所做的更改。记录相关物料清单中所有外部组件的元数据。
在项目阶段转换时审查合规性——以防止知识产权的损失,并确保及时发现项目中无意包含的新组件。在主要的开发里程碑,验证项目中是否使用了任何未经批准的组件或是否被更改然后使用。审查项目中使用的所有外部组件的许可义务,并确保遵守这些义务。
控制组件的贡献和处置——为了避免许可违规以及随之而来的中断,并限制有风险软件的传播。在向开源项目贡献任何组件或片段或将所有权转让给另一方之前,评估该材料的敏感性。验证您进行该贡献或转让的权利。
在收购前评估软件组件——以防止收购后出现负面意外。在购买软件组件之前,识别该资产中使用的所有内部和外部组件。识别任何活动项目中使用的所有外部组件,并评估其许可义务,包括合规性、业务目标和法律政策。评估任何必要的返工或更改对成本、收入、质量等的影响。
这些最佳实践鼓励使用开源和重用软件组件,同时确保遵守许可义务。它们还保护组织的知识产权资产。除了采用这些最佳实践外,许多组织还在使用市售的自动化解决方案作为建立和管理这些流程的平台。
开源软件和组件重用将继续存在。现在是公司开始思考如何改变其软件IP管理的时候了,以便他们能够利用这种新的开发模式。通过这样做,他们将领先于问题,并将开源的力量用于他们的组织。
Palle Pedersen 是 Black Duck Software 的首席技术官,该公司是领先的软件合规管理解决方案提供商 (www.blackducksoftware.com)。