Process 你或你的公司是什么';什么是编程过程?

Process 你或你的公司是什么';什么是编程过程?,process,workflow,Process,Workflow,我正在寻找流程建议,我在网站上看到了一些。我很想听到的是你在公司里特别使用的东西,或者只是你和你的爱好项目。当然,欢迎链接到其他讨论这些主题的网站 根据以下问题得出答案: 用户如何向您报告错误/功能请求?你用什么软件来跟踪他们 bug/功能请求如何转化为“工作”?你计划好工作了吗?你有时间表吗 你有规格并遵循它们吗?有多详细 你有技术领导吗?他们的角色是什么?他们自己做编程,还是仅仅做架构/指导 你有单元测试吗?它对你有什么帮助?你认为你的保险范围是多少 你有代码审查吗?当工作期限很紧时,代码可

我正在寻找流程建议,我在网站上看到了一些。我很想听到的是你在公司里特别使用的东西,或者只是你和你的爱好项目。当然,欢迎链接到其他讨论这些主题的网站

根据以下问题得出答案:

  • 用户如何向您报告错误/功能请求?你用什么软件来跟踪他们
  • bug/功能请求如何转化为“工作”?你计划好工作了吗?你有时间表吗
  • 你有规格并遵循它们吗?有多详细
  • 你有技术领导吗?他们的角色是什么?他们自己做编程,还是仅仅做架构/指导
  • 你有单元测试吗?它对你有什么帮助?你认为你的保险范围是多少
  • 你有代码审查吗?当工作期限很紧时,代码可读性会受到影响吗?你打算晚些时候回去清理一下吗
  • 你有文件吗?您或您的公司对多少评论感到满意?(类、每个方法和内部方法的描述?或者只是代码中的棘手部分?)
  • 您的SCM流程是什么样子的?是否使用要素分支、标记?你的“躯干”或“主人”是什么样子的?它是新开发的地方,还是代码库中最稳定的部分

  • 为了给出更好的答案,我公司的政策是尽可能多地使用XP,并遵循敏捷宣言中概述的原则和实践

    这包括故事卡、测试驱动开发、结对编程、自动化测试、持续集成、一键安装等。我们对文档不是很在行,但我们意识到我们需要生成足够的文档来创建工作软件

    在螺母壳中:

    • 创建足够的用户故事来开始开发(这里的用户故事是与业务对话的开始,不是完整的规范或充分充实的用例,而是可以在不到一次迭代中实现的少量业务价值)
    • 根据业务最重要的优先顺序反复实施故事卡
    • 从业务部门获得关于刚刚实施的内容的反馈(例如,好的、坏的、差不多的等等)
    • 重复此步骤,直到业务部门认为软件足够好为止
      • 对于我的(小型)公司:

        • 我们首先设计UI。这对我们的设计来说是绝对关键的,因为复杂的用户界面几乎会立即疏远潜在的买家。我们在纸上制作设计原型,然后在决定设计细节时,准备视图和任何适当的控制器代码,以便对我们的设计进行连续交互式原型制作

        • 当我们走向一个可接受的UI时,我们会为应用程序的工作流逻辑编写一个纸面规范。纸是便宜的,翻来覆去的设计保证了你至少花了一点时间考虑实现,而不是盲目编码

        • 我们的规范与我们的来源一起保存在版本控制中。如果我们决定进行更改,或者想要进行实验,我们会对代码进行分支,并立即更新规范,以详细说明我们试图通过这个特定分支实现什么。不需要对分支进行单元测试;然而,对于我们想要合并到主干中的任何东西,它们都是必需的。我们发现这鼓励了实验

        • 天赋不是神圣的,也不是属于任何特定的个人。通过将规范提交到源代码控制的民主环境中,我们鼓励不断的实验和修改——只要它被记录在案,这样我们以后就不会说“WTF”。
          在最近的一款iPhone游戏(尚未发布)中,我们得到了近500个分支,这些分支后来转化为近20个不同的功能,大量概念简化(“点击取消”而不是单独的按钮),一些被拒绝的想法,以及3个新项目。伟大的事情是,每一个想法都有文档记录,因此很容易想象这个想法如何改变产品

        • 在每个主要构建之后(主干中的任何内容都得到更新,单元测试通过),我们尝试让至少两个人测试这个项目。大多数情况下,我们试图找到对计算机知之甚少的人,因为我们发现设计复杂而不是简单太容易了

        • 我们使用DOxygen生成文档。我们还没有将自动生成纳入到构建过程中,但我们正在努力

        • 我们不进行代码审查。如果单元测试有效,并且源代码没有引起问题,那么这可能没问题——但这是因为我们能够依赖程序员的质量。这可能不适用于所有环境

        • 单元测试是我们编程实践的天赐良机。由于没有适当的单元测试,任何新代码都无法传递到主干中,因此我们的主干覆盖率相当高,分支覆盖率适中。然而,它并不能替代用户测试——它只是一个帮助实现这一点的工具

        • 对于bug跟踪,我们使用bugzilla。我们不喜欢它,但它现在起作用了。我们可能很快就会推出自己的解决方案,或者迁移到FogBugz。我们的目标是在达到0已知错误状态之前不发布软件。由于这种立场,我们对现有代码包的更新通常相当少

        因此,基本上,我们的流程通常是这样的:

      • 论文用户界面规范+计划»心理测试»步骤1
      • 查看代码+单元测试»用户测试»步骤1或2
      • 纸张控制器和模型规范+计划»心理测试»Ste