Process 你或你的公司是什么';什么是编程过程?
我正在寻找流程建议,我在网站上看到了一些。我很想听到的是你在公司里特别使用的东西,或者只是你和你的爱好项目。当然,欢迎链接到其他讨论这些主题的网站 根据以下问题得出答案:Process 你或你的公司是什么';什么是编程过程?,process,workflow,Process,Workflow,我正在寻找流程建议,我在网站上看到了一些。我很想听到的是你在公司里特别使用的东西,或者只是你和你的爱好项目。当然,欢迎链接到其他讨论这些主题的网站 根据以下问题得出答案: 用户如何向您报告错误/功能请求?你用什么软件来跟踪他们 bug/功能请求如何转化为“工作”?你计划好工作了吗?你有时间表吗 你有规格并遵循它们吗?有多详细 你有技术领导吗?他们的角色是什么?他们自己做编程,还是仅仅做架构/指导 你有单元测试吗?它对你有什么帮助?你认为你的保险范围是多少 你有代码审查吗?当工作期限很紧时,代码可
为了给出更好的答案,我公司的政策是尽可能多地使用XP,并遵循敏捷宣言中概述的原则和实践 这包括故事卡、测试驱动开发、结对编程、自动化测试、持续集成、一键安装等。我们对文档不是很在行,但我们意识到我们需要生成足够的文档来创建工作软件 在螺母壳中:
- 创建足够的用户故事来开始开发(这里的用户故事是与业务对话的开始,不是完整的规范或充分充实的用例,而是可以在不到一次迭代中实现的少量业务价值)
- 根据业务最重要的优先顺序反复实施故事卡
- 从业务部门获得关于刚刚实施的内容的反馈(例如,好的、坏的、差不多的等等)
- 重复此步骤,直到业务部门认为软件足够好为止
- 我们首先设计UI。这对我们的设计来说是绝对关键的,因为复杂的用户界面几乎会立即疏远潜在的买家。我们在纸上制作设计原型,然后在决定设计细节时,准备视图和任何适当的控制器代码,以便对我们的设计进行连续交互式原型制作
- 当我们走向一个可接受的UI时,我们会为应用程序的工作流逻辑编写一个纸面规范。纸是便宜的,翻来覆去的设计保证了你至少花了一点时间考虑实现,而不是盲目编码
- 我们的规范与我们的来源一起保存在版本控制中。如果我们决定进行更改,或者想要进行实验,我们会对代码进行分支,并立即更新规范,以详细说明我们试图通过这个特定分支实现什么。不需要对分支进行单元测试;然而,对于我们想要合并到主干中的任何东西,它们都是必需的。我们发现这鼓励了实验
- 天赋不是神圣的,也不是属于任何特定的个人。通过将规范提交到源代码控制的民主环境中,我们鼓励不断的实验和修改——只要它被记录在案,这样我们以后就不会说“WTF”。
在最近的一款iPhone游戏(尚未发布)中,我们得到了近500个分支,这些分支后来转化为近20个不同的功能,大量概念简化(“点击取消”而不是单独的按钮),一些被拒绝的想法,以及3个新项目。伟大的事情是,每一个想法都有文档记录,因此很容易想象这个想法如何改变产品 - 在每个主要构建之后(主干中的任何内容都得到更新,单元测试通过),我们尝试让至少两个人测试这个项目。大多数情况下,我们试图找到对计算机知之甚少的人,因为我们发现设计复杂而不是简单太容易了
- 我们使用DOxygen生成文档。我们还没有将自动生成纳入到构建过程中,但我们正在努力
- 我们不进行代码审查。如果单元测试有效,并且源代码没有引起问题,那么这可能没问题——但这是因为我们能够依赖程序员的质量。这可能不适用于所有环境
- 单元测试是我们编程实践的天赐良机。由于没有适当的单元测试,任何新代码都无法传递到主干中,因此我们的主干覆盖率相当高,分支覆盖率适中。然而,它并不能替代用户测试——它只是一个帮助实现这一点的工具
- 对于bug跟踪,我们使用bugzilla。我们不喜欢它,但它现在起作用了。我们可能很快就会推出自己的解决方案,或者迁移到FogBugz。我们的目标是在达到0已知错误状态之前不发布软件。由于这种立场,我们对现有代码包的更新通常相当少
- 论文用户界面规范+计划»心理测试»步骤1
- 查看代码+单元测试»用户测试»步骤1或2
- 纸张控制器和模型规范+计划»心理测试»Ste
- 对于我的(小型)公司: