2009-01-24 35 views
4

假设你在一个项目上工作了100天。您的流程的每个阶段(需求分析,规格等)需要多少天?什么步骤组成您的网站开发流程,每个阶段需要多少时间?

我在每个阶段的具体活动,如编写测试,后端编码,前端编码,视觉设计,数据库设计等

许多感谢的比例也感兴趣!

编辑:

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

EDIT2:

海伦正确指出,这个问题真的很难回答,因为项目可以如此不同,如此可球队。为了使它更具体一点,假设你有一个由四个开发人员组成的团队 - 其中两个用于后端工作,一个用于前端编程,一个用于设计html/css编码(团队的一个成员充当项目经理),你应该开发StackOverflow.com网站。

回答

8

我们正在运行敏捷scrum项目,所以我们通常并行运行所有这些活动。所以虽然我不能回答你的确切问题,但我可以给你一些关于我们发现的有效比率的想法:

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

在开发团队中,您通常会有一些开发人员在开发客户端,并且在后端开发类似的开发人员。这些人员也倾向于反映资源使用情况;)测试是开发过程中不可或缺的一部分,也是团队测试人员的努力。

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

+0

感谢您的有用答案! – 2009-01-25 04:16:50

0
  1. 建立客户名单需要1-2天
           这取决于客户端,他们需要什么,以及如何充分的准备,他们是。
  2. 设计者们最初的草图UPS 2-3天
           分支的位发生在这里的2和3将同时发生。
  3. 编程人员在我们现有的系统1天建立任何功能尚未 - 1个月
           这取决于客户端,以及他们需要更多的那么大多数别的。
           这也只会产生功能代码。
  4. 重复步骤2 & 3直到客户满意我们所拥有的一般感觉。
             可能是1次迭代可能是100(如果不是10,我们不能让他们开心,我们会把他们送到别的地方。
  5. 生成最终的设计1-5天
           这是最后的,没有错误,有效的CSS/HTML/JS,一切都是跨浏览器的ECT
  6. 构建最终的功能2-3天
           这个代码是“完美”它的工作原理100%,这是相当,没有错误,并且开发者们高兴地把它
           这和第5步同时发生。
  7. 部署10秒。

然后2周,2个月和6个月后,我们做一个审查,以确保没有问题。

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


如果我们只是建立一个应用程序(或扩展的)的客户,我们会花2-3定义EXACTLY他们需要什么,然后但需要多长时间来构建它。

1

这是不可能给这个问题一个有意义的答案。从项目到项目的比例不会大致相同。对于一些项目来说,视觉设计几乎不重要(只要它或多或少的工作),但数据库是关键和复杂的。对于其他人来说,这完全是为了提供流畅的用户体验以及许多AJAX好东西和其他视觉效果,但底层数据对于组织和存储来说非常简单。

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

0

刚发现this thread,它回答了我的问题的“什么”部分。至少部分。

1

可能we是一个不寻常的开发商店。我们的整个存在(至少在工作时间内)是需求收集。开发人员必须在其他部门工作。无论是在售后支持(并与CRM软件作斗争),在仓库(与移动终端作斗争)中驾驶叉车或在货运站打包货箱(以及扑灭令人困惑的交付票据),都可以接听电话。

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

但是现在看来我们正在打破复杂性障碍。这是非常令人沮丧的,因为转向“更重”的流程比黑客和强制编码导致生产力大幅下降。

4
  • 步骤1:拒绝
  • 步骤2:愤怒
  • 步骤3:acceptence

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

1

只是要清楚 - 你基本上是对你的工作进行时间限制 - 这与固定预算直接相关(4位开发者x x x每天x 100天 - 假设它的持续时间为100天而不是100天工作努力)。如果是这样的话,在平均水平。你会花:

  • 25%了前期规划,其中包括范围,规范发展,技术方法,物流(计算机,服务器,办公区),资源采集。
  • 50%的开发 - 测试案例(TDD)的开发,架构设计和实施,前端编码,后端编码,部署
  • 15%的测试 - 基本中断/修复活动
  • 10%的开销/管理 - 项目管理沟通和协调。

非常粗糙EST - 许多“区域”考虑包括资源的技能/到期日,所用的技术,资源的位置(一个房间或在全国范围内),要求水平等使用的技能的特定的“资源会使计划变得更加困难,因为您可能需要资源来执行多种角色 - 一个建议是获得3位可协助规范/设计/计划的通才,以及一位确保平台和数据库设置正确的技术向导(一旦你有尽可能好的要求,成功的关键)

1

这真是一个棘手的问题。为了对您需要申请每个步骤的时间比例进行某种精确估计 - 如果我们采用经典的设计,实施,测试和部署方法 - 您需要了解项目成员的规格和专业知识。 如果你拿麦康奈尔的书“软件估计”(我强烈推荐),你会有一章关于历史数据以及如何在未来的项目中使用它。 我不认为,你有以前的项目的确切的历史数据 - 好 - 我没有 - 虽然我总是提醒我记录他们;) 由于设计阶段最小的失败或不确定性是最至关重要的需要很多时间来指定你想要做什么。确保每个人都以同样的方式理解并写下来。长话短说 - 我会在设计中投入50%到75%的时间(如果75%,这将包括一个清除所有不确定因素的原型),并在实施和测试中保持相同的部分。 如果您使用TDD,您可以混合设计和测试一下,这样您就可以稍微设计阶段并将其添加到测试阶段。

3

我同意所有人的观点:“这取决于项目”。

另一方面,我认为有一个一致的过程可以遵循;只有调整的努力,以配合项目的百分比:

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

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

这其中有些似乎是理想主义的;但是当你有一个经过精心审查并且创建好的规范时,你会多么快就能发布你的应用程序。

相关问题