【问题标题】:What steps make up your web development process and how much time does each phase take?您的 Web 开发过程由哪些步骤组成,每个阶段需要多少时间?
【发布时间】:2009-01-24 10:52:19
【问题描述】:

假设您在一个项目上工作了 100 天。您流程的每个阶段(需求分析、规范等)需要多少天?

我还对每个阶段的特定活动的比例感兴趣,例如编写测试、后端编码、前端编码、视觉设计、数据库设计等。

非常感谢!

编辑:

为了清楚起见,我不是在谈论网站设计 - 我对更“严肃”的 Web 开发感兴趣,例如自定义业务 Web 应用程序。我知道,一切都取决于每个项目的具体情况,但我认为各个项目的比例可能大致相同。

EDIT2:

正如海伦所说,这个问题真的很难回答,因为项目可以如此不同,团队也可以如此。更具体地说,假设您有一个由四名开发人员组成的团队 - 其中两名负责后端工作,一名负责前端编程,一名负责设计和 html/css 编码(团队中的一名成员充当项目经理),你应该开发 StackOverflow.com 网站。

【问题讨论】:

    标签: project-management process methodology


    【解决方案1】:

    我们正在运行敏捷 Scrum 项目,因此我们通常并行运行所有这些活动。因此,虽然我无法回答您的确切问题,但我可以为您提供一些我们发现有效的比率的想法:

    一名客户端程序员 (html/css)、一名团队测试员和一名交互设计师(与客户一起设计线框)可以为 4-5 名开发人员提供服务。对于大多数应用程序,这样的团队通常需要 50% 的图形设计师,但您的工作量可能会有所不同。然后是项目经理,还有其他各种不属于核心开发团队的利益相关者。

    在开发团队中,您通常有几个开发人员精通客户端开发,而后端开发人员数量相近。这些人员配备也往往反映资源使用情况;)测试是开发的一个组成部分,也是团队测试人员的努力。

    您当地的条件当然可能会有所不同,但这些数字只是为了给您一些想法。

    【讨论】:

      【解决方案2】:
      • 第 1 步:拒绝
      • 第二步:愤怒
      • 第三步:接受

      每个步骤所花费的时间对于所有参与的团队成员都是不同的。

      【讨论】:

        【解决方案3】:

        我同意每个人的观点,“这取决于项目”。

        另一方面,我确实认为可以遵循一致的流程;只调整工作百分比以匹配项目:

        通常,我遵循以下基本原则:

        1. 发现 - 确定系统的特性/功能。最简单(也是最糟糕)的事情是接受所要求的并接受它。
          例如,“构建 stackoverflow.com”是一个非常广泛的请求 - 实际上是 错误 请求。该项目必须从“我需要一个程序员可以协作的在线位置”开始。 基于你试图解决的那一件事,你可以深入了解你想要的所有细节——比如如何回答、询问、评价问题等。 我认为这是最关键的一步!输出=要求/规范;在这里可以安全度过 20/100 天
        2. 线框图 - 这是我喜欢使用基本 HTML 页面、paint.NET 甚至是施工纸和胶水来模拟最终网站功能的各个方面的地方。我喜欢用纸,因为它很容易做出改变 :) 经历这个过程会迫使您考虑用户体验的几乎每个方面,并让您可以灵活地添加/删除功能并根据需要调整您的要求。在您投入大量时间编写代码之前,您的客户已经对更改进行了一些输入。 一个额外的好处是你可以使用 paste :) 10/100 天
        3. 实施/测试 - 我将实施和测试组合在一起,因为我认为开发整个网站而不进行测试是短视的。 (同时,还需要第 4 步)。这是橡胶碰到路面的部分。如果您在第 1 步和第 2 步中正确处理了您的客户,那么您将愉快地编写代码,而不会在最后一刻更改范围(或至少很少更改)。我尝试遵循一套通用的实施步骤:
          • 数据开发(数据库设计、查询设计、样本数据设置)
          • 网站框架(设置您的环境;生产、开发和质量保证)
          • 前端结构(css、标准类、标准html结构)
          • 开始编码! 55/100 天
        4. SQA - 希望您可以让一些非相关方/最终用户随时测试应用程序。需要制定测试计划,以确保清楚应该测试什么以及期望的结果。我喜欢用真人来测试前端;自动化工具适用于代码/后端模块 这是让客户看到事情进展的好时机——他们此时做出改变的能力应该非常有限。 10/100 天
        5. 交付/后期制作蜜月期 - 您已经构建、测试并准备好部署。把代码拿出来,让客户玩。你不应该有太多的调整;但我相信会有一些调整。 5/100 天

        其中一些看起来很理想化;但是,当您拥有经过充分审查、精心创建的规范时,您会惊讶于您能以多快的速度发布您的应用程序。

        【讨论】:

          【解决方案4】:

          不可能对这个问题给出有意义的答案。各个项目的比率甚至不会大致相同。对于某些项目,视觉设计几乎不重要(只要它或多或少有效),但数据库是关键且复杂的。对于其他人来说,这一切都是为了通过大量 AJAX 好东西和其他吸引眼球的东西来提供流畅的用户体验,但底层数据的组织和存储非常简单。

          听起来您主要考虑的是单人项目,但对于较大的团队来说,团队的规模和设置以及您的开发过程也很重要。

          【讨论】:

            【解决方案5】:

            可能we 是一家不寻常的开发商店。我们的整个存在(至少在工作时间)都是需求收集。开发人员也必须在其他所有部门工作。无论是在售后支持中接听电话(与 CRM 软件作斗争)、在仓库中驾驶叉车(与移动终端作斗争)还是在发货站包装板条箱(以及与混乱的交货单作斗争)。

            当我们处理一个新项目时,“需求收集”通常是在白板上的一个下午,通常与使用新软件最多的部门的某个人一起。很少有前期设计和大量重构和重写。我们对此非常满意,并生成了大约 100.000 行架构良好且稳定的代码。

            但我们现在似乎遇到了复杂性障碍。这非常令人沮丧,因为转向比 hack 和 slay 编码更“繁重”的流程会导致生产力的巨大损失。

            【讨论】:

              【解决方案6】:

              要明确一点 - 您基本上是在对工作进行时间限制 - 这与拥有固定预算(4 个开发人员 x $x 每天 x 100 天 - 假设它是 100 天的持续时间而不是 100 天的工作量)直接相关)。如果是这种情况,那么,平均。你会花:

              • 25% 的前期规划,包括范围、规格开发、技术方法、物流(计算机、服务器、工作空间)、资源收集。
              • 50% 开发 - 测试用例 (TDD) 开发、模式设计和实现、前端编码、后端编码、部署
              • 15% 测试 - 基本中断/修复活动
              • 10% 开销/管理 - 项目管理、沟通和协调。

              非常粗略的估计。- 需要考虑的许多“领域”包括资源技能/成熟度、正在使用的技术、资源的位置(一个房间或全国各地)、要求水平等。“特定技能”资源的使用会使计划变得更加困难,因为您可能需要资源来执行多角色 - 一个建议是让 3 名可以帮助规范/设计/计划的通才和一名技术向导,以确保正确设置平台和数据库(关键一旦你有尽可能好的要求就成功了)

              【讨论】:

                【解决方案7】:

                这确实是一个棘手的问题。为了对您需要申请每个步骤的时间比例给出一个准确的估计——如果我们采用经典的设计、实施、测试和部署方法——需要了解项目成员的规范和专业知识。 如果您阅读 McConnell 的“软件估计”一书(我强烈推荐),那么您在他们的书中有一章是关于历史数据以及如何将其用于未来项目的。 我不认为你有以前项目的确切历史数据——嗯——我没有——尽管我总是提醒我记录它们;) 由于设计阶段最小的失败或不确定性是最关键的需要花费大量时间来指定您想要做什么。确保每个人都以相同的方式理解并写下来。 长话短说——我将 50% - 75% 的时间用于设计(如果 75% 这将包括一个原型以清除所有不确定性),并在实施和测试中投入相同的部分。 如果您使用的是 TDD,您需要混合设计和测试,这样您就可以在设计阶段进行一些操作并将其添加到测试阶段。

                【讨论】:

                  【解决方案8】:
                  1. 建立客户需求列表需要 1-2 天
                    这取决于客户、他们的需求以及他们的准备情况。
                  2. 设计师在 2-3 天内完成初步草图制作
                    这里会发生一些分支,因为 2 和 3 会同时发生。
                  3. 程序员在 1 天 - 1 个月内构建我们现有系统中尚未包含的任何功能
                    这取决于客户,以及他们最需要的东西。
                    这也只会产生功能代码。
                  4. 重复第 2 步和第 3 步,直到客户对我们所拥有的总体感觉感到满意。
                    可能是 1 次迭代可能是 100 次(如果到 10 次我们无法让他们高兴,我们会将他们发送到其他地方,则不太可能。
                  5. 构建最终设计需要 1-5 天
                    这是最终的,没有错误,有效的 CSS/HTML/JS,一切都是跨浏览器等
                  6. 构建最终功能需要 2-3 天
                    这段代码“完美”,它 100% 工作,很漂亮,没有 已知 错误,开发人员很乐意发送它
                    这和第 5 步同时发生。
                  7. 部署 10 秒。

                  然后在 2 周、2 个月和 6 个月后,我们会进行审核以确保没有问题。

                  因此,如果您跳过审核,这通常需要 8-20 天,IDK 您将如何工作到 100 天。


                  如果我们只是为客户构建应用程序(或扩展应用程序),我们将花费 2-3 时间定义确切他们需要什么,然后无论构建需要多长时间它。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2016-05-17
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-01-05
                    相关资源
                    最近更新 更多