我所在的软件企业,生态环境比较复杂,主要由四方组成,第一是业務(wù)委托方,第二是软件承建方,第三是我们软件总包商(shāng),第四是开发商(shāng)。
在这种生态下,四方工作的拆分(fēn)就成了很(hěn)棘手的事情。很(hěn)多(duō)同事都反馈,搞不清楚自己当前所做工作是否该自己来做?特别是在需求定义阶段,这种疑惑更加严重。
下面就试着找到一个能(néng)够让多(duō)方能(néng)认可(kě)的准则,去指导工作中的责任边界划分(fēn)。在需求定义方面,我个人是这么考虑的:
层级 | 类似于 项目制 | 类似于 大型企业中 | 责任 产出 | 向下级交付 | 具體(tǐ)职责描述 |
委托方 | 最终用(yòng)户团队 | 业務(wù)用(yòng)户部门 | 商(shāng)业需求 | 商(shāng)业需求定义 | 产生业務(wù)诉求 |
甲方承接方 | 甲方客户 | IT部的产品定义部门 | 业務(wù)诉求 | 业務(wù)需求定义 | 统筹考虑业務(wù)需要是否需要实现,什么方式实现,是否要新(xīn)建系统 |
乙方总包商(shāng) | 乙方项目管理(lǐ)部 | IT部的项目开发部门 | 开发诉求 | 软件需求定义 | 将业務(wù)需求翻译成开发团队能(néng)理(lǐ)解的明确开发需求 |
乙方开发商(shāng) | 乙方软件开发部 | 软件开放商(shāng) | 开发实现 | 软件实现设计,开发 | 理(lǐ)解需求,将需求细化,拆分(fēn),执行开发实现 |
类似的疑问,还发生在测试,验收,运维阶段,想想就头痛。
去找ChatGPT问问,验证下我的想法吧:
我:麻烦您,介绍下需求定义,MRD、BRD、PRD等等有(yǒu)哪些,區(qū)别是什么?
ChatGPT:
需求定义,通常是指明确产品或项目所需的功能(néng)、特性和性能(néng)等方面的过程。它是产品或项目开发的重要一环,也是确保项目成功的关键环节之一。在软件开发中,需求定义通常由多(duō)个文(wén)档来描述和定义,包括MRD、BRD和PRD等。
MRD (Market Requirements Document):市场需求文(wén)档,主要定义产品在市场上的需求、定位、目标用(yòng)户、市场规模等。它是由市场部门或市场营销人员编写的,目的是提供给产品团队一个产品定位的参考,确定产品的目标市场、目标用(yòng)户群、竞争情况等信息,以便后续的产品规划、设计和开发等工作。
BRD (Business Requirements Document):业務(wù)需求文(wén)档,主要定义产品的业務(wù)需求、商(shāng)业模式、收益模式、功能(néng)和流程等。它是由业務(wù)分(fēn)析人员编写的,目的是為(wèi)产品团队提供关于产品的业務(wù)要求、业務(wù)流程和商(shāng)业模式等信息,以确保产品能(néng)够满足业務(wù)需求,同时还能(néng)够為(wèi)公司带来商(shāng)业价值。
PRD (Product Requirements Document):产品需求文(wén)档,主要定义产品的功能(néng)需求、用(yòng)户需求、界面设计、性能(néng)指标、测试用(yòng)例等。它是由产品经理(lǐ)或产品团队编写的,目的是明确产品的具體(tǐ)功能(néng)需求和用(yòng)户需求,以便设计和开发人员能(néng)够理(lǐ)解产品要求并实现产品开发。
以上三个文(wén)档的主要區(qū)别在于侧重点不同。MRD更注重市场需求、竞争情况和定位;BRD更注重商(shāng)业模式、商(shāng)业价值和业務(wù)流程;PRD则更注重产品的功能(néng)、性能(néng)、用(yòng)户需求等方面。同时,这些文(wén)档之间也有(yǒu)很(hěn)多(duō)重叠的内容,例如市场规模、竞争情况、用(yòng)户需求等都会在不同的文(wén)档中涉及。因此,这些文(wén)档的编写和使用(yòng)需要在实际情况中灵活运用(yòng),以确保产品开发的顺利进行。
我:除了MRD、BRD、PRD,还有(yǒu)其他(tā)类型的需求定义文(wén)档么?
ChatGPT:
除了MRD、BRD、PRD之外,还有(yǒu)一些其他(tā)类型的需求定义文(wén)档,包括但不限于以下几种:
FRD (Functional Requirements Document):功能(néng)需求文(wén)档,主要用(yòng)于描述软件或系统的功能(néng)需求和功能(néng)规格,以确保设计和开发人员能(néng)够按照要求实现系统的各项功能(néng)。
SRD (System Requirements Document):系统需求文(wén)档,主要用(yòng)于描述系统的性能(néng)、安全、可(kě)靠性、可(kě)维护性等方面的要求,以确保系统能(néng)够满足用(yòng)户需求和业務(wù)要求。
TRD (Technical Requirements Document):技术需求文(wén)档,主要用(yòng)于描述系统的技术要求和技术规范,包括系统架构、数据结构、算法、编程语言和开发工具等,以确保系统能(néng)够按照技术标准实现。
UI/UX Design Document:UI/UX 设计文(wén)档,主要用(yòng)于描述产品的用(yòng)户界面和用(yòng)户體(tǐ)验设计,包括用(yòng)户界面元素、交互设计、信息架构、用(yòng)户流程等,以确保产品能(néng)够提供良好的用(yòng)户體(tǐ)验。
Use Case Document:用(yòng)例文(wén)档,主要用(yòng)于描述系统或软件的使用(yòng)场景和用(yòng)例,以便设计和开发人员能(néng)够根据不同的使用(yòng)场景设计和开发相应的功能(néng)和模块。
不同类型的需求定义文(wén)档主要侧重点不同,涉及的内容也有(yǒu)所不同,但它们都是产品或项目开发过程中必不可(kě)少的文(wén)档,有(yǒu)助于确保产品或系统能(néng)够满足用(yòng)户需求和业務(wù)要求。
我:问下,软件总包商(shāng)职责有(yǒu)哪些?
ChatGPT:
软件总包商(shāng)(Software Contractor)通常是一家公司或个人,与客户签订协议,承担為(wèi)客户开发软件的任務(wù)。以下是软件总包商(shāng)的一些职责:
需求分(fēn)析:软件总包商(shāng)必须了解客户的需求,并将其转化為(wèi)软件系统的功能(néng)要求。在这个过程中,他(tā)们可(kě)能(néng)需要与客户沟通,并提出建议和解决方案。
软件设计:软件总包商(shāng)需要设计软件系统的结构和组件,确保系统可(kě)以实现客户的要求,并且易于维护和扩展。
编码和测试:软件总包商(shāng)需要编写高质量的代码,并进行测试,以确保软件系统的稳定性和可(kě)靠性。
项目管理(lǐ):软件总包商(shāng)需要管理(lǐ)整个项目,包括计划、进度控制、团队协调、风险管理(lǐ)等,以确保项目能(néng)够按时交付,并符合客户的质量要求。
文(wén)档编写:软件总包商(shāng)需要编写软件开发过程中所需要的文(wén)档,例如需求规格说明书、设计文(wén)档、用(yòng)户手册等。
培训和支持:软件总包商(shāng)需要向客户提供培训和技术支持,以确保客户可(kě)以使用(yòng)软件系统,并解决系统中出现的问题。
合规性:软件总包商(shāng)需要确保软件系统符合相关的法律和标准,例如安全性、隐私性和可(kě)访问性等要求。
总的来说,软件总包商(shāng)需要在整个软件开发生命周期中,负责管理(lǐ)和实现软件系统的各个方面,以确保项目能(néng)够按时交付、符合质量要求,并得到客户的认可(kě)。
我:你说的这个是软件开发商(shāng)的工作职责吧?下面有(yǒu)多(duō)家开发商(shāng)的情况下,软件总包商(shāng)的工作职责呢(ne)?
ChatGPT:
如果有(yǒu)多(duō)家软件开发商(shāng)参与项目,软件总包商(shāng)的职责可(kě)能(néng)会更加复杂。以下是一些可(kě)能(néng)的职责:
协调各方:软件总包商(shāng)需要与各个软件开发商(shāng)协调沟通,确保各个开发商(shāng)能(néng)够遵循项目计划,按时交付质量符合要求的成果。
风险管理(lǐ):软件总包商(shāng)需要识别和管理(lǐ)项目的风险,包括技术、进度和质量等方面。他(tā)们需要确保各个开发商(shāng)能(néng)够遵循项目计划和质量要求,避免项目进度和质量方面的风险。
项目管理(lǐ):软件总包商(shāng)需要管理(lǐ)整个项目,包括协调各个开发商(shāng)、跟踪项目进度、协调资源、管理(lǐ)项目成本等,以确保项目能(néng)够按时交付,并符合客户的质量要求。
交付管理(lǐ):软件总包商(shāng)需要确保各个开发商(shāng)的工作成果能(néng)够协同工作并进行集成测试。在项目交付前,软件总包商(shāng)需要对整个软件系统进行测试,确保系统满足客户的需求和质量要求。
质量保证:软件总包商(shāng)需要确保项目的质量符合客户的要求,并在项目交付前进行质量保证工作,包括软件质量检查、测试管理(lǐ)等。
总的来说,软件总包商(shāng)需要在整个软件开发过程中,协调各个软件开发商(shāng)之间的协作,管理(lǐ)整个项目并确保项目能(néng)够按时交付、符合质量要求,并得到客户的认可(kě)。同时,软件总包商(shāng)还需要承担风险管理(lǐ)和质量保证的职责,确保项目顺利进行和成功交付。
我:软件项目,在有(yǒu)用(yòng)户,有(yǒu)甲方客户,有(yǒu)乙方软件总包商(shāng),有(yǒu)软件开发商(shāng),四方协同情况下,工作职责切分(fēn)应该怎样比较合适?
ChatGPT:
在软件项目中,用(yòng)户、甲方客户、乙方软件总包商(shāng)和软件开发商(shāng)之间需要进行协作和分(fēn)工以确保项目能(néng)够按时交付、符合质量要求,并得到客户的认可(kě)。以下是一些可(kě)能(néng)的工作职责划分(fēn):
1.用(yòng)户: 用(yòng)户通常是软件项目的最终使用(yòng)者。他(tā)们的职责是提供系统需求、测试软件质量和向甲方客户提供反馈和建议。
2.甲方客户:甲方客户是软件项目的委托方,他(tā)们的职责是定义系统需求、审核软件质量提供项目资源和进行项目决策等。
3.乙方软件总包商(shāng):乙方软件总包商(shāng)是负责整个软件项目的开发和管理(lǐ)。他(tā)们的职责是协调和管理(lǐ)软件开发商(shāng)、管理(lǐ)项目进度和资源、实施软件质量管理(lǐ)和交付软件系统等.
4.软件开发商(shāng): 软件开发商(shāng)是根据乙方软件总包商(shāng)的指导,负责软件系统的设计、编码和测他(tā)们的职责根据需求规格书完成软件开发任務(wù),并提供………(问题太难?ChatGPT居然卡死了)
好吧,ChatGPT它好像比我更专业,我可(kě)以洗洗睡了。