我很快就会领导一个新项目。我一直在思考软件项目的基本基础设施是什么。这些是我认为每个项目都应该具备的东西:
- 编码风格约定
- 命名约定
-标准项目目录结构(如maven标准目录布局等)
-项目管理和问题跟踪(例如trac、redmine等)
- 持续集成服务器(例如,hudson、巡航控制等)
我不确定我是否错过了什么。有人想补充吗?
我很快就会领导一个新项目。我一直在思考软件项目的基本基础设施是什么。这些是我认为每个项目都应该具备的东西:
- 编码风格约定
- 命名约定
-标准项目目录结构(如maven标准目录布局等)
-项目管理和问题跟踪(例如trac、redmine等)
- 持续集成服务器(例如,hudson、巡航控制等)
我不确定我是否错过了什么。有人想补充吗?
作为初步答案,请查看 Joel 测试: http ://www.joelonsoftware.com/articles/fog0000000043.html
只是开胃菜:
- 你使用源代码控制吗?
- 您可以一步构建吗?
- 你做日常构建吗?
- 你有错误数据库吗?
- 在编写新代码之前你会修复错误吗?
- 你有最新的时间表吗?
- 你有规格吗?
- 程序员有安静的工作环境吗?
- 您是否使用金钱可以买到的最好的工具?
- 你有测试人员吗?
- 新候选人在面试时会写代码吗?
- 你做走廊可用性测试吗?
除了你的,我会说:
我也会将文件共享服务器加入其中。我认为版本控制是如此基础,以至于我什至懒得把它放在列表中。但它是一个很好的版本控制。
配置管理计划。您需要有一个记录在案的方法来处理您的开发工作流,以及您将如何在它们之间进行合并等。
知识管理至关重要。由于您已经计划使用 wiki(如 Trac 或Redmine),您也可以将其用于 KM。
功能测试是任何项目的强制性部分。单元测试很棒,它适用于敏捷项目,但功能测试仍然是必要的。您至少需要一个基本的测试计划。如果您计划有多个项目或子项目,则测试策略文档或 Wiki 页面会很好。测试用例、验收测试用例等可以由您的用户故事或其等价物驱动,但它们仍然必须以某种形式存在。