cnblogs / crowd

以开源的方式建设博客园众包平台
44 stars 0 forks source link

众包平台的一点想法——开发一个面向整个软件开发过程中的所有人员的平台 #7

Open weisiqian opened 3 months ago

weisiqian commented 3 months ago

现在软件开发过程已经高度分工,以WEB开发为例,一个功能要经历产品需求、UI设计、前端开发、后端开发、接口联调、测试、上线等阶段。平常在工作中一个人往往只负责其中的一个阶段,一个人很擅长自己所负责岗位的任务但是在其他阶段往往有很大的不足,在这种情况下如果只靠处于其中某一个岗位的人员来开发一款软件很容易受限于自己所擅长之外的其他技能,最终导致烂尾,所以需要全栈人员或一个团队来完成整个软件的开发。但是真正的全栈人员是很少的、往往全而不精,而软件开发团队的方式又和现有的外包项目没有什么差异,而且没法接纳众多的个人开发者,作为一个众包平台,个人以为应该将受众定位于整个软件开发过程中的任意岗位的人员,而不是一个软件开发团队,应该支持整个软件开发过程中的产品经理、UI设计师,前端开发人员,后端开发人员等人员以个人的身份运用自己所擅长的技能来共同完成整个软件的开发,而不是必须要由一个具有整个软件开发过程中所需所有技能的完整团队来完成。比如说一个产品经理,他擅长需求分析,那么他可以仅接下这个软件的需求分析部分,然后产出软件的高保真原型设计图或者需求文档,而UI设计人员就可以仅寻找已经产出了高保真设计图的任务然后完成软件的UI设计部分,后面的前端开发就可以仅寻找已有原型和设计图的任务,然后基于前面的产出物完成前端部分,通过这种方式,每个人寻找并负责自己所擅长技能的任务,通过一步步的方式来完成整个软件开发过程中的每个阶段,最终实现一个完整的软件。在此过程中每个人只使用自己擅长的技能来众包平台接受自己所擅长技能的任务。就像是OJ平台一样,每个人在平台上面做自己擅长的题目,平台将题目定义好,明确好输入和输出,然后每个人在拿到题目后根据题目内容、输入、输出来完成程序的编写,然后提交自己的程序,平台判断是是否通过,然后将结果返回给提交者。这种方式可以极大的降低参与的门槛,让大量的开发者参与进来,每个人都能在上面找到适合自己的任务,并通过完成任务来获得报酬。平台需要定义并规范好整个流程,包括任务的定义、任务的分配、任务的完成、任务的审核、任务的结算等,平台需要提供一套完整的机制来支持整个流程的顺利进行。

weisiqian commented 3 months ago

提案:一个面向整个软件开发过程中的所有人员的众包平台

概述

本提案以WEB应用开发为例提出一种众包平台,旨在让软件开发过程中各个阶段的专业人员以个人身份贡献自己的专业知识。平台支持从产品需求、UI设计、前端开发、后端开发、接口联调、测试到上线的整个开发生命周期。每个阶段都可以由不同的个人完成,使专业人员能够专注于他们最擅长的领域,通过协作完成完整的软件产品。

解决的问题

  1. 专业能力分散:许多专业人员在其特定角色中表现出色,但缺乏其他领域的技能。这导致了效率低下,如果由单个人处理整个项目,可能会导致项目未完成或质量不佳。
  2. 高参与门槛:现有的软件开发模式要么要求全栈技能,要么需要完整的团队,使得个体专家难以有效参与和贡献。
  3. 资源分配:传统外包模式未能有效利用分散的专业技能,导致成本高且开发周期长。

解决方案

提出的平台允许个人在软件开发过程中完成与其专业技能相关的任务。以下是平台的具体工作流程:

工作流程

  1. 需求阶段

    • 产品经理:进行需求分析,生成需求文档和高保真原型设计图。
    • 输出:需求文档和高保真原型设计图。
    • 审核:提交的文档和原型设计图需经过审核,确保完整性和准确性。
  2. 设计阶段

    • UI设计师:根据需求文档和高保真原型设计图完成UI设计。
    • 输出:完整的UI设计资源。
    • 审核:设计资源需经过审核,确保符合需求和可用性标准。
  3. 前端开发阶段

    • 前端开发人员:根据UI设计图实现前端代码。
    • 输出:前端代码库。
    • 审核:代码需经过审核,确保质量、响应性和符合设计。
  4. 后端开发阶段

    • 后端开发人员:根据需求文档和前端开发的接口要求实现后端开发。
    • 输出:后端代码库和API。
    • 审核:代码需经过审核,确保功能性、安全性和性能。
  5. 测试阶段

    • 测试人员:进行功能测试、性能测试和安全测试。
    • 输出:测试报告和bug日志。
    • 审核:测试结果需经过审核,必要的修复工作需进行沟通。
  6. 上线阶段

    • 项目经理:协调上线事宜,确保项目顺利上线。
    • 输出:上线的软件产品。
    • 审核:上线产品需经过最终审核。

平台功能

  1. 任务发布与管理

    • 支持分阶段发布任务,并按需分配任务。
    • 支持任务进度跟踪和管理。
  2. 审核机制

    • 每个阶段的输出物需要经过审核才能进入下一阶段。
    • 审核人员可以是平台自有的专业人员,也可以通过众包模式进行审核。
  3. 结算机制

    • 完成每个阶段任务后,平台根据预设的报酬标准进行结算。
    • 结算可以按阶段进行,完成一个阶段结算一次。
  4. 协作工具

    • 提供需求管理、设计协作、代码管理、测试管理等工具。
    • 支持在线沟通与协作。
  5. 质量保障

    • 平台需要制定一套质量保障体系,确保每个阶段的输出物质量。

优势

  1. 降低参与门槛:让更多的开发者能够参与进来,每个人只需要完成自己擅长的部分。
  2. 提高效率:通过分阶段分工协作,提高整体开发效率。
  3. 灵活性:个人可以根据自己的时间和能力选择适合的任务。
  4. 高质量:通过专人专职的方式,提升每个阶段的工作质量。
  5. 成本效益:减少了对全栈开发者或完整团队的需求,降低了开发成本。

挑战

  1. 任务定义与分配:如何合理地将一个完整的软件项目分解成多个阶段的任务。
  2. 审核机制:如何确保每个阶段的输出物质量,防止低质量的产出影响整个项目。
  3. 沟通与协作:如何在不同阶段的开发人员之间实现高效的沟通与协作。
  4. 报酬与激励:如何制定合理的报酬机制,激励开发者高效、高质量地完成任务。

结论

该众包平台旨在通过让专业人员在自己擅长的领域贡献力量,来革新软件开发过程。通过将开发生命周期分解为可管理的任务,并通过集成工具促进协作,平台希望高效、低成本地交付高质量的软件产品。

prosscode commented 3 months ago

分阶段的来分解项目/需求,实际上是有一定的上下游依赖,也要明确平台和各个独立开发者在各阶段的责任分工,比如延期怎么计算,质量把关怎么交付,怎么对客户负责。在开始前需要有一个各个阶段的明确说明和协议。 如果是交与团队开发,说明和协议应该是对团队整体。

zhangxiucai12 commented 3 months ago

感觉做众包平台要有一个前提,就是自己手里要有足够的客户项目资源,能提供足够且稳定的订单,在这种前提下,才能保证平台的良性运行. 光靠主动在众包平台上下的订单是远远不够的.

ls0001 commented 3 months ago

赞同,我设想的也是如此,但目前,平台明确只做任务不做项目。

我提个核心建议:

两个补充建议:

一、任务可以竞标

 竞标的不是价格,而且是设计方案稿及质量等级,这需要平台有评估审核的能力,当然这 也可是以众包的形式存在。

二、平台需作支付担保 建立开发者信用和能力评价体系,方案参考X宝、拼夕夕。

  • 如果说这是一个什么商业模式,那么就称之为开发能力交易平台