软件项目的基础设施[关闭]
-
01-07-2019 - |
题
我很快就会领导一个新项目。我一直在思考软件项目的基础设施是什么。我认为每个项目都应该具备以下内容:
- 编码风格约定
- 命名约定
-标准项目目录结构(例如maven标准目录布局等)
-项目管理和问题跟踪(例如trac、redmine等)
-持续集成服务器(例如,hudson、巡航控制等)
我不确定我是否错过了什么。有人愿意补充吗?
没有正确的解决方案
其他提示
作为初步答案,请查看 Joel 测试:http://www.joelonsoftware.com/articles/fog0000000043.html
只是开胃菜:
- 您使用源代码管理吗?
- 你能一步完成构建吗?
- 您进行每日构建吗?
- 你有错误数据库吗?
- 在编写新代码之前你会修复错误吗?
- 您有最新的时间表吗?
- 你有规格吗?
- 程序员的工作环境安静吗?
- 您是否使用金钱能买到的最好的工具?
- 你们有测试人员吗?
- 新候选人在面试时会写代码吗?
- 你们进行走廊可用性测试吗?
- 版本控制系统(例如颠覆、CVS、git)
除了你的之外我还会放:
- 单元测试策略
- 集成测试策略
- 定义流程
- 发布(交付)策略(如里程碑、工作包等)
- 源代码控制分支策略
- 文档怎么样——如何(代码中的注释、高级规范)、何时、金额、谁
- 您将如何测试 - 单元/验收/用户测试
- 代码版本控制,一些 SVN/Git(或者它包含在 trac 中吗?)
- 团队角色和职责 - 需要在项目的 ocntext 中完成
知识管理至关重要。由于您已经计划使用 wiki(例如 Trac 或 Redmine)你也可以将它用于 KM。
功能测试是任何项目的强制性部分。单元测试很棒,对于敏捷项目也很有效,但功能测试仍然是必要的。您至少需要一个基本的测试计划。如果您计划有多个项目或子项目,测试策略文档或 Wiki 页面会很好。测试用例、验收测试用例等可以由您的用户故事或其等效物驱动,但它们仍然必须以某种形式存在。
我也会将文件共享服务器加入其中。我认为版本控制是如此基本,以至于我什至懒得将它放在列表中。但它是一个很好的版本控制。
配置管理计划。您需要有一个记录的方法来处理您的开发工作流,以及如何在这些工作流之间进行合并等等。
不隶属于 StackOverflow