代码之家  ›  专栏  ›  技术社区  ›  Milan Novota

Web开发过程由哪些步骤组成,每个阶段需要多长时间?

  •  4
  • Milan Novota  · 技术社区  · 16 年前

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

    我对每个阶段的具体活动比率也很感兴趣,例如编写测试、后端编码、前端编码、可视化设计、数据库设计等。

    多谢!

    编辑:

    只是为了说明问题,我不是在谈论网站设计——我对更“严肃”的Web开发感兴趣,比如定制的商业Web应用程序。我知道,一切都取决于每个项目的具体情况,但是我认为各个项目的比率可能大致相同。

    编辑2:

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

    9 回复  |  直到 15 年前
        1
  •  8
  •   krosenvold    16 年前

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

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

    在开发团队中,通常有两个开发人员对客户端开发很敏锐,在后端也有类似数量的开发人员。这些人员发现也倾向于反映资源的使用情况;)测试是开发和团队测试人员工作的一个组成部分。

    你的当地情况当然会有所不同,但这些数字只是为了给你一些建议。

        2
  •  4
  •   Captain Sensible    15 年前
    • 第1步:否认
    • 第2步:愤怒
    • 第3步:接受

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

        3
  •  3
  •   JayTee    16 年前

    我同意每一个从“这取决于项目”开始的人。

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

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

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

    其中一些看起来是理想化的;但是当您有一个经过良好审查、创建良好的规范时,您会惊讶于您能够以多快的速度发送应用程序。

        4
  •  1
  •   Helen Toomik    16 年前

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

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

        5
  •  1
  •   max    16 年前

    可能 we 是一家不寻常的开发商店。我们的整个存在(至少在工作时间)是需求收集。开发人员必须在其他部门工作。无论是在售后服务支持部门接电话(与CRM软件打交道),在仓库里开叉车(与移动终端打交道),还是在货运站打包板条箱(与混乱的送货单打交道)。

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

    但我们现在似乎遇到了一个复杂的障碍。这是非常令人沮丧的,因为比起hack和slay编码,转向“更重”的过程会导致生产力的显著损失。

        6
  •  1
  •   John Topley    16 年前

    只是要明确一点——你基本上是在限制你的工作——这直接关系到有一个固定的预算(4个开发人员x$x每天x 100天——假设它是100天的持续时间,而不是100天的工作努力)。如果是这样的话,那么在平均值上,你会花费:

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

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

        7
  •  1
  •   Gambrinus    16 年前

    这确实是个棘手的问题。如果我们采用经典的设计、实现、测试和部署方法,您需要了解项目成员的规范和专业知识,才能对每一步所需的时间比例进行准确的估计。 如果你以麦康奈尔的书“软件评估”(我强烈推荐)为例,你会在他们的历史数据中有一章,以及如何将其用于未来的项目。 我不认为,你有以前项目的确切历史数据——嗯——我没有——尽管我总是提醒我要记录它们;) 因为设计阶段的最小故障或不确定性是最关键的。 花很多时间来指定你想做什么 . 确保每个人都以同样的方式理解它,并把它写下来。 为了缩短长话短说,我在设计中投入了50%-75%的时间(如果75%,这将包括一个消除所有不确定性的原型),以及在实现和测试中的同等部分。 如果您使用的是TDD,那么您将混合设计和测试一点,这样您将进入设计阶段并将其添加到测试阶段。

        8
  •  0
  •   UnkwnTech    16 年前
    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%工作,很漂亮,没有 已知的 Bug,开发人员很乐意发送它
      这和步骤5同时发生。
    7. 部署10秒。

    然后是2周、2个月和6个月后,我们会做一个回顾,以确保没有问题。

    所以,如果你不复习,这通常需要8-20天,我想知道你将如何工作到100天。


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

        9
  •  0
  •   Community CDub    8 年前

    刚刚找到 this thread 回答我问题的“什么”部分。至少部分。