企业级大厂项目开发的三大要素
• 流程:工作流程,15个环节
• 人员:用户(C端用户,B端客户)、产品/项目经理(PD/PM)、UI设计师、交互设计师、前端开发、后端开发、测试开发
• 文档:需求设计文档(PRD)、交互稿、UI 稿、技术方案、接口文档、冒烟测试用例、测试用例、发布日志、上线报告、复盘文档
流程
- 需求分析:
在这个阶段,项目经理、产品经理和相关利益相关者会收集和分析项目需求。这通常包括市场调研、用户访谈、竞品分析等,以确保对产品需求有清晰的了解。需求文档会被创建,它详细说明了产品应该做什么,以及期望达到的目标。 - PRD(产品需求文档)评审:
产品经理会编写一个产品需求文档(PRD),其中包含了产品的目标、功能、性能和界面需求。这个文档会在团队内进行评审,以确保所有团队成员对产品有统一的理解,并且同意需求的可行性和优先级。 - 交互/UI评审:
设计师会根据 PRD 设计交互稿和 UI 稿,然后提交给团队评审。评审的目的是确保设计符合用户体验最佳实践,并且与产品需求相匹配。同时,也是为了确认设计的可实施性。 - 技术方案评审:
技术团队将基于需求文档和设计稿制定技术实施方案。这个方案将详细说明如何构建系统,包括技术栈选择、系统架构、数据模型、安全性等。这个方案需要团队成员评审,确保技术选择的合理性和实施的可行性。 - 接口设计评审:
后端开发人员会设计系统的 API 接口,并编写接口文档。前后端开发人员需要对接口文档进行评审,确保接口设计满足前端需求,同时后端能够高效实现。 - 代码开发:
开发人员根据技术方案和接口设计开始编写代码。这个过程中可能会有持续的代码评审和单元测试,以确保代码质量。 - 前后端联调:
前端和后端开发人员会一起工作,确保前端能够正确调用后端服务,并且后端正确返回数据。 - 冒烟测试:
在代码初步完成后,QA(质量保证)团队会进行冒烟测试,以确保最基本的功能可以正常工作,没有明显的错误。 - 提测:
完成冒烟测试并修复发现的问题后,QA 团队会开始更详细的测试工作,包括功能测试、性能测试、安全测试等。 - 测试:
QA 团队会执行一系列测试用例,确保产品符合需求规格,并且没有缺陷。 - 预发验收:
在产品通过所有测试后,它会被部署到一个与生产环境相似的预发环境中。在这个环境里,产品会被进一步测试和验收,以确保上线后能够稳定运行。 - 发布上线/验证:
产品通过预发验收后,会计划一个上线时间。在上线后,团队会密切监控产品的表现,包括性能指标、错误率等,确保产品稳定运行。 - 复盘:
项目结束后,团队会进行复盘,总结项目中的成功和失败,学习经验教训,以便在未来的项目中做得更好。 - 观察用户数据:
产品上线后,团队会通过各种数据分析工具来观察用户的使用情况,包括用户行为、功能使用频率、用户反馈等。
什么项目才能叫企业级大厂项目?
企业级大厂项目(Enterprise-Level Project)通常指的是在大型企业、知名公司或行业领头羊公司中进行的项目。这些项目往往具有以下特点:
- 高可靠性和稳定性:企业级项目通常需要确保高可用性,因为它们往往支撑着关键的业务流程。这意味着系统需要设计成能够处理高负载,并且在出现故障时能够快速恢复。
- 可伸缩性:随着企业的发展,系统的用户量和数据量都会增长。企业级项目需要能够平滑地扩展以满足增长的需求,无论是水平扩展(增加更多的服务器)还是垂直扩展(增强现有服务器的能力)。
- 安全性:企业级项目必须遵守严格的安全标准,以保护公司和客户的数据不受威胁。这包括数据加密、安全认证、访问控制和常规的安全审计。
- 维护性和可扩展性:随着业务需求的变化,系统需要进行维护和更新。企业级项目的代码和架构应该是清晰的、模块化的,以便于进行迭代和添加新功能。
- 兼容性:企业级项目往往需要与其他系统集成,包括旧系统和第三方服务。这就要求系统具有良好的兼容性和集成能力。
- 性能:高效的性能是企业级项目的必要条件。这意味着系统在处理请求时的延迟低,吞吐量高,且资源利用率要合理。
- 监控和日志记录:为了确保系统的稳定运行和快速定位问题,企业级项目通常会有详尽的监控和日志记录系统。
- 遵守法规:企业级项目需要遵守相关的行业法规和标准,例如金融服务行业的 PCI DSS 标准,医疗行业的 HIPAA 法规等。
- 多租户支持:在一些情况下,企业级项目需要支持多租户架构,以便为不同的客户提供服务,同时保持数据的隔离性。
- 灾难恢复和数据备份:企业级项目通常会有详细的灾难恢复计划和数据备份策略,以防止数据丢失和服务中断。
- 用户和权限管理:企业级项目需要有一个健全的用户和权限管理系统,以确保只有授权的用户才能访问特定的资源和数据。
- 国际化和本地化:对于跨国企业,其项目可能需要支持多种语言和文化的本地化,以适应不同地区的用户。
- 项目管理规范:使用成熟的项目管理方法和工具,如敏捷开发、瀑布流开发等。
相比之下,其他类型的项目可能有所不同:
- 课程项目:通常是在教育环境中为了学习某种技术或概念而进行的项目。这些项目规模较小,复杂度低,主要目的是教育和学习,而不是商业应用。
- 外包项目:由一家公司外包给另一家公司或个人完成的项目。这些项目可能是企业级的,也可能是较小的商业项目,质量和复杂度可能参差不齐,取决于外包公司的技术实力和管理能力。
- 创业项目:通常是由初创公司或个人发起的,目的在于验证商业模式或市场需求。这些项目可能在早期规模较小,但随着公司成长,有些创业项目可能发展成为企业级的项目。
总结来说,企业级大厂项目在规模、复杂度、安全性、稳定性、性能、维护性、遵循的标准和规范以及项目管理方面都有较高的要求。这些项目往往需要大量的资源投入,以及高水平的技术和管理团队来支持。
所以我们要时刻具备企业级思维:稳定、性能、复用、质量、体验。
PRD 的五个部分
产品需求文档(Product Requirements Document,简称 PRD)是定义产品功能、目标、特性和用户体验的关键文档。它是沟通团队成员、利益相关者和最终用户之间共享产品愿景的重要工具。一个标准的 PRD 通常包含以下五个部分:
1. 需求背景
在这部分,撰写者需要提供产品的背景信息,解释为什么该产品需要被开发。这通常包括市场分析、用户需求、业务目标或公司策略。需求背景应该清楚地阐述产品解决的问题,以及它将如何满足市场需求或改善用户体验。
- 市场分析:调研市场上现有的解决方案,分析竞争对手,确定产品的市场定位。
- 用户需求:通过用户调研或反馈收集用户的核心需求,明确产品要解决的痛点。
- 业务目标:描述产品预期达成的商业目标,如提高收入、市场份额或用户满意度。
2. 需求简介
这部分应简洁明了地描述产品的总体需求。这通常包括产品的基本功能、目标用户群体、预期的用户行为以及产品如何与现有的产品或服务互动。需求简介需要足够详细,以便任何阅读文档的人都能快速理解产品的核心功能和目的。
- 功能概述:列出产品的主要功能和特性。
- 目标用户:定义目标用户群体,包括他们的特征和使用场景。
- 用户行为:预期用户如何与产品互动,包括用户旅程的关键步骤。
3. 业务架构
业务架构部分描述产品如何融入整个业务流程中,包括与其他系统或服务的集成。这里可能会涉及到流程图、系统架构图或数据流图,以便清晰地展示产品的工作原理和它在业务中的位置。
- 流程图:展示用户通过产品完成任务的流程。
- 系统架构图:如果产品是一个软件或技术平台,展示它的技术架构和组件。
- 数据流图:解释数据如何在系统内部流动和被处理。
4. 产品原型
产品原型是产品设计的初步可视化,它可以是草图、线框图或更高保真度的交互式原型。原型应该展示产品的界面布局、用户交互和关键功能。这可以帮助团队成员和利益相关者更好地理解产品的外观和操作方式。
- 界面布局:界面元素的布局和设计。
- 用户交互:用户如何与产品的各个部分进行交互。
- 关键功能:展示产品如何实现其核心功能。
5. 非功能性需求
非功能性需求描述产品必须满足的技术标准和约束,这包括性能、安全性、合规性、可维护性和质量标准。这些需求对于确保产品的稳定性和可靠性至关重要。
- 性能:产品的响应时间、处理能力和并发用户数等性能指标。
- 安全性:保护用户数据和防止未授权访问的安全措施。
- 合规性:产品需要遵守的法律、规定和标准。
- 可维护性:产品代码和架构的可维护性,包括易于升级和修复。
- 质量标准:产品质量的衡量标准,如缺陷率、用户满意度等。
每个部分都应该详细、清晰,并且相互之间保持一致性。PRD 文档是一个活文档,它应该随着项目的进展和市场情况的变化而更新。
最后,注意要特别关注 投入产出比(ROI),产品效果(PV UV 等指标)
- PV(页面浏览量)指的是网站在一定时间内被访问的总页面数。每当用户打开一个页面,就会记录一个 PV。如果一个用户在同一天内多次访问同一个页面,每次访问都会被计入 PV。
- UV(独立访客)指的是在一定时间范围内访问网站的不同访客数。UV 通过识别不同的访客(通常通过 cookie 或 IP 地址来区分)来计算。即使一个用户在同一天内访问网站多次,也只被计为一个 UV。
除了 PV 和 UV,还有其他一些重要的网站流量指标:
- Sessions(会话):一个会话包括用户在网站上的一系列活动,从打开网站到关闭网站或一段时间不活动。如果用户在30分钟内无活动,通常会话会自动结束。
- Bounce Rate(跳出率):指访问者访问网站后只浏览了一个页面就离开的比例。这通常表示访问者没有找到他们想要的内容或者网站的用户体验不佳。
- Average Session Duration(平均会话时长):用户在网站上的平均停留时间,这可以反映网站内容的吸引力。
- Conversion Rate(转化率):指访问者完成了网站预定的目标行为(如购买、注册或下载)的比例,是衡量网站商业效果的重要指标。
- Page per Session(每次会话页面数):用户在一个会话中平均访问的页面数量,这可以反映用户对网站内容的兴趣程度。
- Traffic Sources(流量来源):指用户是通过什么渠道访问网站的,如搜索引擎、直接访问、社交媒体、推荐链接等。
- Exit Rate(退出率):每个页面的退出率是指从该页面离开网站的访问者占访问该页面总人数的比例。与跳出率不同,退出率关注的是用户在浏览多个页面后离开的情况。
排期
在前端开发中评估工时是一个复杂的过程,因为它需要考虑多个因素,包括项目的需求、复杂性、团队的经验以及可能遇到的风险等。以下是一些评估前端开发工时的方法和步骤:
- 需求理解与分析 :
- 仔细阅读项目需求文档,理解项目的目标和预期成果。
- 与项目管理者、设计师和后端开发人员沟通,确保对需求有相同的理解。
- 确认需求的明确性和可实施性,对于不清晰的地方要求澄清。
- 任务拆分 :
- 拆分模块,如前端可以将大组件拆分成小组件,考虑组件的静态效果 + 动态逻辑,注意拆分粒度的适中。
- 对每个任务进行详细描述,包括其目标、功能、依赖关系和完成标准。
- 历史数据参考 :
- 查看过去类似项目的工时记录,了解类似任务通常需要多少时间。
- 使用这些数据作为参考点,但同时考虑到当前项目的特殊性。
- 估算每个任务的工时 :
- 对每个拆分出的任务,基于其复杂性、团队成员的技能以及之前的经验来评估所需时间。
- 考虑到可能的学习曲线,特别是当涉及到新技术或工具时。
- 风险评估 :
- 考虑需求熟悉时间、前后端联调、编写测试、需求变更、第三方服务的不稳定等风险因素
- 为这些风险分配额外的缓冲时间,一般我建议根据风险等级,最终估时为实际评估时间的 1.5 - 2.5 倍。
- 总结和调整 :
- 将所有任务的估算时间汇总,得到总体工时估算。
- 根据团队的工作效率和历史表现进行调整。
- 专家咨询 :
- 如果可能,让有经验的前端开发者对工时估算进行审查和建议。
- 持续更新 :
- 开发过程中定期回顾和更新工时估算。
- 如果遇到预料之外的挑战,及时调整工时预算。
- 使用工具和技术 :
- 使用项目管理工具,如 Jira、Trello 或 Asana,来帮助跟踪任务和时间。
- 考虑使用敏捷方法论,如 Scrum 或 Kanban,这些方法论鼓励短周期内的持续评估和调整。
每个项目都是独特的,因此在评估工时时需要灵活和适应性。重要的是要记住,估算是一个迭代过程,随着项目的进行,你可能需要重新评估和调整你的估算。
项目经理和产品经理的区别
角色定位:
- 项目经理:负责规划、执行和监控项目。他们的主要任务是确保项目按时、按预算和按照既定的质量标准完成。项目经理通常涉及项目范围的管理、时间表的制定、资源的分配、风险的评估和问题的解决。
- 产品经理:负责引导产品的发展和迭代。他们需要了解市场需求、用户体验和产品战略,并据此制定产品路线图。产品经理通常负责定义产品愿景、收集和优先排序需求、与利益相关者沟通以及协调跨职能团队以实现产品目标。
关注点差异:
- 项目经理关注的是"项目"。项目是临时性的,有特定的开始和结束时间,目的是创造一个独特的产品、服务或成果。项目经理专注于如何高效地完成这个有明确期限和目标的任务。
- 产品经理关注的是"产品"。产品是长期的,可能会持续多年,随着市场和用户需求的变化而不断进化。产品经理专注于产品的整个生命周期,从概念化到市场推出,再到产品退市。
职责差异:
- 项目经理 的职责包括:
- 制定项目计划和时间表
- 管理项目预算和资源
- 确保项目团队的沟通和协作
- 监控项目进度和解决问题
- 管理项目风险和变更请求
- 项目交付和关闭
- 产品经理 的职责包括:
- 研究市场和用户需求
- 定义产品愿景和策略
- 制定产品路线图和功能规格
- 协作设计和开发团队
- 进行产品测试和用户反馈收集
- 产品推广和市场定位
工作成果:
- 项目经理的工作成果通常体现在项目是否成功交付,即是否在规定的时间内,按照预算完成,且满足了项目的质量和范围要求。
- 产品经理的工作成果则体现在产品是否在市场上成功,即是否满足了用户的需求,是否实现了商业目标,并在竞争中获得了优势。
技能和工具:
- 项目经理通常需要具备项目管理的专业技能,比如使用项目管理工具(如Microsoft Project, JIRA)进行时间线规划,资源分配,以及使用各种沟通和协作工具。
- 产品经理则需要具备市场分析、用户研究和产品设计的技能,通常使用如用户故事地图、原型工具(如Sketch, InVision)和产品路线图工具。
总结来说,项目经理和产品经理在组织中扮演着不同的角色,关注点和职责有所差异。项目经理更多地关注项目的执行和交付,而产品经理则关注产品的整体成功和市场表现。两者都需要良好的沟通能力和组织能力,但所需的专业技能和工具有所不同。
发展路径:在IT行业中,一个比较舒适的发展路径是从研发到项目经理,再到产品经理。项目经理最好具备技术背景,而产品经理不一定需要懂技术。