Table of contents
开源技能和资源清单
活动编号:GGI-A-17。
描述
在任何阶段,从管理者的角度来看,都应该有一个清晰的开源资源清单,包括开源的资源和资产的使用情况和状态,以及潜在需求和可行的解决方案。此外,还需要评估实现这些解决方案所需的工作量和技能。
此项工作旨在对组织机构内部及市场上的开源状况进行一次快照式的盘点,并评估两者的资源对接情况。
- 盘点在软件研发过程中以及软件供应链中所使用的软件产品和组件中,开源软件的使用情况。
- 识别可以满足您的需求并帮助改进软件研发流程的开源技术(解决方案、系统框架和创新功能)。
但不包含,
- 识别并评估相关开源软件生态系统和社区。(文化目标)
- 识别相关开源软件库和组件的依赖关系。(信任目标)
- 识别实现开源项目所需的技术技能(如编程语言、框架等)和非技术技能(如协作、沟通等)。(这属于下一阶段工作:开源软件能力增长和开源软件开发技能)
可行性评估
编制一份开源资源清单,以帮助优化资源投入和优先技能的培养。
此项工作为提高生产力创造了有利条件,特别是在现代应用系统和基础设施开发中,开源组件、开发理念和工具的高效性和普适性尤为突出。
- 这可能需要对开源软件资源的组合进行简化。
- 这可能需要对人员进行二次培训。
- 这有助于明确需求,也有助于补充完善IT发展路线图。
进度评估
以下验证点将呈现此项工作的进展:
- 生成一个可行的开源软件资源列表,如"我们使用了什么", “我们集成了什么”, “我们研发了什么”, “我们托管了什么”, 以及相关技能
- 我们是否正在通过使用最先进的方法和工具来提高效率。
- 我们是否发现了之前未被记录过的开源软件资源 (这些资源可能一直在悄然增加,而我们是否有方法来定义与此相关政策)
- 我们要求新项目认可或复用现有的开源软件资源。
- 我们对组织机构内部开源软件的使用范围是否有了相对安全的认识和理解。
工具
有许多不同的方法来建立此类清单。其中一种方法是将开源资源分为四类:
- 我们使用的开源软件:我们在研发和生产过程中使用的软件
- 我们集成的开源软件: 例如, 我们集成到定制应用程序中的开源软件库
- 我们研发的开源软件: 例如, 我们在 GitHub发布的, 或者是由我们研发或定期参与贡献的开源软件库。
- 我们托管的开源软件: 我们为了对内提供服务而运行的开源软件, 例如 CRM, GitLab, nexus 等。示例图表如下所示:
| 我们使用了 | 我们集成了 | 我们研发了 | 我们托管了 | 相关技能 |
|---|---|---|---|---|
| Firefox, OpenOffice, Postgresql | Library slf4j | Library YY on GH | GitLab, Nexus | Java, Python |
以同样的方法识别相关的技能
- 现有团队所具备的技能和经验
- 可以通过内部培训, 指导和历练获得的技能和经验
- 可以通过合作伙伴外包或在市场上找到的技能和经验
建议
- 行事保持简单。
- 这是一项相对高阶的实践工作,而不是会计部门的详细清单。
- 尽管此项工作是一个很好的起点,但您不需要100%完成之后再开展其他工作。
- 在#42工作中处理与软件开发相关的问题、资源和技能。
- 清单应涵盖所有IT类别:操作系统、中间件、数据库、系统管理、研发和测试工具等。
- 开始识别相关的社区:在这些社区了解你后,你会更容易获得他们的反馈和支持。
资源
- 这里有一个由Dirk Riehle教授开设的关于自由/开源软件的优秀的课程。
下一步工作建议
- GGI-A-18 - 开源能力增长 识别开源技能和资源有助于组织机构开始巩固和提升其意识和能力。
- GGI-A-19 - 开源监管 一旦这份开源软件和技能的清单完成,人们就可以对组织机构内部的开源软件使用进行管控。
- GGI-A-28 - 人力资源视角 人力资源部门可以根据此工作清单制定适当的人力资源培养和发展计划、员工或外包合同以及与开源相关的人力资源管理流程。
- GGI-A-33 - 与开源供应商合作 人们需要先了解他们的开源软件和技能情况,然后再与外部供应商建立关系。
- GGI-A-42 - 管理开源技能和资源在完成开源资产和技能清单后,就可以对其进行管理,并在现有内部资源的基础上来构建程序。