[I.2] 个人作业:软件案例分析

这个作业属于哪个课程 北京航空航天大学2025年春季软件工程
这个作业的要求在哪里 [I.2]个人作业:软件案例分析
我在这个课程的目标是 锻炼开发大型软件项目能力,掌握软件工程相关知识
这个作业在哪个具体方面帮助我实现目标 通过对成熟的软件进行分析,学习需求分析、制定软件开发流程的方法

我选择的题目是项目管理工具,应用是Notion(主)和飞书(副)。

一、调研评测

1.1 软件评测

1.1.1 软件使用

Notion 是一个集笔记、文档、数据库、任务管理于一体的多功能协作工具,支持个性化组织和多人协作。

可以创建文档,创建文档的方式有从零创建空文档,基于模板创建,导入文件等方式。下图展示了通过导入文件的方式创建文档。

image-20250310215228793

导入后文档后可以进行编辑。支持markdown语法,还可以插入网页、数据库、任务看板等,下图展示了向其中插入github仓库和一个表格的效果。

notion还支持团队协作。首先需要创建一个团队协作区,在团队协作区内所有成员可以共同浏览编辑文档;创建好后,可以添加团队成员到协作区中并配置不同的访问权限。

image-20250310220222274

1.1.2 软件分析

作为一款文档类的生产力工具,Notion 的用户群体主要为团队组织、创作者和学生教师,主要用于进行高效地文档整理工作,对于部分用户可能还有团队协作编辑的需求。Notion 在笔记管理、知识整理、项目管理等方面提供了高度自定义的解决方案,能够满足学生、职场人士、团队等多种用户需求。

对于最基本的文档工作,使用产品的基本流程可能是:根据模板或者文件导入一个文档(或者创建一个空白新文档),在文档内添加文本、图片、表格、任务列表、代码块等元素,并根据不同需求对文档进行归档整理,相同类型的文档放在一个工作区内。

在团队协作开发项目的场景中,团队负责人需要管理团队成员,并根据工作内容、职位配置不同的权限,团队成员间共享文档,并且可以通过任务看板、时间线等工具管理项目任务安排、分配人员。

维度 优点 缺点
数据量 支持较大规模的笔记、数据库管理,云端同步 在处理大型数据库时加载较慢,查询功能较弱
界面 设计简洁美观,支持拖拽操作 使用较为复杂,初次使用这类软件的用户上手不易
功能 文档功能丰富,包含多种组件,拥有插件市场 在表格数据处理上较弱,只支持最简单的功能;对于免费用户,限制了部分高级功能(比如工作空间只能使用一个图标)
准确度 数据存储安全性高,大多数场景用用户输入校验 对 Markdown 部分语法支持存在问题,访问图片资源容易出现网络问题
用户体验 支持多人协作,提供了跨设备、平台同步 有时访问速度较慢;在网络不佳时,数据同步的时间较长

1.1.3 改进意见

  • 用户引导:在新用户首次使用时,提供更完整的新手引导,包括如何使用文档的高级功能,如何进行团队协作等。
  • 文档阅读:支持更多的检索方式,如正则表达式;推出阅读模式,在该模式下不会修改文档,提供更丰富的标注功能
  • 图片操作:学习WPS等软件,支持更丰富的图片操作,比如文本识别、图片编辑等
  • 表格操作:学习Excel,支持数学公式、表格颜色填充等功能,优化表格使用体验

1.1.4 用户调研

采访对象:计算机学院22学王同学(非本软工班)

需求:记录文档,小组项目管理

亮点:页面美观,文档组件丰富

问题:Notion相比飞书功能较少,文档不能自动生成目录结构

1.1.5 评测结论

相较于其他项目管理工具,Notion页面整洁美观,功能丰富,可拓展性强,我认为Notion非常推荐

1.2 Bug 分析和提交

1.2.1 测试环境

  • 操作系统:Windows 11
  • Google Chrome 133.0.6943.143
  • Notion windows 桌面版本 4.6.0

1.2.2 Bug危害评级

等级 描述
致命⭐⭐⭐⭐⭐ 应用崩溃后无法重启、数据库损坏导致数据丢失、关键业务逻辑无法执行
严重
⭐⭐⭐⭐
严重程序漏洞,影响到核心功能的正确执行,可能会引发不稳定的行为、数据不一致、重要功能缺失等
一般
⭐⭐⭐
移动端适配问题、某些浏览器下功能异常、按钮点击无响应但可通过其他方式操作
次要
⭐⭐
部分功能交互不够直观、展示效果出现明显错误,对用户体验造成了一定的影响
轻微
表面级别瑕疵,如界面布局上的小错位、提示信息不够友好。

1.2.3 Bug1:markdown文件导入后代码块格式错误

  • 可复现性:网页端和windows桌面应用都必然发生

  • 描述:导入markdown文件时,代码块无法根据语言自动格式化,会出现换行、缩进出错。

    左图为在Typora中打开markdown文件后预览效果,右图为该文件导入Notion后的样式。文件一个包含yaml和java代码块的markdown文件,在Typora中展示正常,在导入Notion后都出现了换行和缩进错误,所有内容都追加到了同一行上,导致了排版和代码高亮问题,严重影响了用户体验。

  • 分析:Notion 的 Markdown 解析器可能不兼容某些代码块格式,没有正确解析换行符或缩进格式。这一bug在国内外都已有反馈,但是官方并未做出修复。通过导入Markdown文件创建文档的方式很常见,为了清晰美观的展示代码,用户需要导入后手动换行,这一Bug影响了用户体验。Bug严重性:次要⭐⭐

1.2.4 Bug2:有序列表合并后编号错误

  • 可复现性:网页端和windows桌面应用都必然发生

  • 描述:两个独立的有序列表在合并后,两个列表会共同编号,但是如果两个列表原本的编号方式不同,合并后仍然会按原来的编号方式。左图有两个有序列表,编号为1、2和a、b、c,在合并后编号变成了1、2、c、d、e。

  • 分析:在记录有序列表编号时,可能是以数字的形式存储,在合并时没有考虑编号方式,只是单纯地将数字编号递增。由于对用户使用影响不大,只是前端展示的错误,bug严重性是轻微

    改进意见:在合并时应该检查编号方式

    可能原因:我纠结了一段时间这到底是一个feature还是一个bug。就上述的场景而言,如果我选择了分别用数字和字母进行编号,那么这两个任务列表必然是不同的类别,我希望删除中间一行后不进行编号递增合并,如果我的编号方式相同则进行合并,因此我认为这是一个bug。

1.2.5 Bug反馈

在应用内对上面的问题进行了反馈。

image-20250311171748412

后续收到了Notion团队的邮件,反馈了浏览器版本,操作系统等信息,并得到了反馈。

分析

2.1 工作量分析

Notion 这样复杂的多功能协作工具,涉及文档编辑、数据库管理、实时协作、权限控制、跨平台支持、API 集成等多个方面。在有专业UI支持的前提下,如果有6个计算机系毕业的学生分模块开发,各个核心模块的开发周期预估如下:

  • 文档编辑功能:最基本的文档功能有很多开源代码,在开源代码基础上进行改造,再加上项目初期环境搭建的开销。Notion的特点是有较为丰富的文档组件,美观且功能丰富的图标功能,加上这些预计可以在九个月内完成
  • 实时协作:为了实现多人协作,需要引入高性能的网络框架(如netty),并着力解决高并发问题,预计需要三个月时间完成
  • 权限控制:实现权限控制可以参考开源的鉴权系统代码,预计可以在一个月内完成
  • Web前端:Notion的前端实现较为复杂,如果和后端并行开发,预计可以在9个月左右完成
  • 电脑桌面端+移动端:可以将Web端移植到电脑和移动设备上,但是跨平台的开发有较高的成本,预计需要1年左右

因此,六人团队完成Notion的所有功能需要大概2年的时间。

2.2 软件质量分析

优点:相比于字节的飞书,Notion更加轻量级,界面设计简介,UI美观,比较适合中小型团队的项目开发工作,在个人笔记、知识管理领域更加强大,并且可视化数据库使其数据管理更灵活。

缺点:作为项目管理工具,Notion的多人实时协作体验较弱,编辑同步可能有延迟;同时,其移动端体验较逊色,加载速度较慢,离线模式支持有限。此外,权限管理较基础,不适用于复杂的企业级权限需求。

综上,Notion在同类产品里我认为可以名列第三至第五。

Notion可以参考飞书,在团队办公流做出一些探索,引进包括表单审批在内的流程性事务管理。

建议和规划

3.1 市场现状

3.1.1 市场概况

截至 2024 年 8 月,Notion 的注册用户数量已突破 1 亿。在生产力软件市场中,微软和谷歌等巨头仍占据主导地位,拥有约 20 亿用户,这表明 Notion 仍有巨大的潜在用户群体可以开发。

同时,知识管理是Notion的强项,这意味着庞大的学生、教师群体都可以成为潜在用户,每年都会有大量的新用户。

3.1.2 竞争产品

Notion 的主要竞争产品可分为知识管理类、团队协作类和企业办公类。在知识管理领域,Evernote 以强大的搜索和归档功能著称,Obsidian 提供本地 Markdown 笔记和知识图谱,更适合个人知识管理,而 Microsoft OneNote 深度集成微软生态,适用于手写和结构化笔记。对于企业办公,飞书 强调即时通讯与远程协作,Google DocsMicrosoft 365 以强大的文档和表格功能主导市场。Notion 需要在实时协作和企业级应用上进一步优化,以应对这些强劲竞争对手。

3.1.3 产品定位

Notion 定位为知识管理与轻量级数据库,面向个人用户、小团队及教育领域。Notion 的文档编辑与数据库结合非常灵活,支持富文本、任务管理、数据表格、看板等多种功能,适合用于个人笔记、团队协作及项目管理,尤其擅长知识管理。简洁的界面和高度定制化的内容结构,使其成为许多创业团队和教育群体的首选工具。在实时协作方面相对较弱,尤其是多人同时编辑时的同步性较差;同时,Notion 在企业级应用中的功能不如 Google Docs 和 Microsoft 365 强大,缺乏一些如权限管理和深度集成等功能。

飞书定位为企业级即时通讯与协作工具,面向团队和企业,支持高效沟通与工作流管理,结合了即时通讯、文档协作、任务管理、日程安排等功能,非常适合远程办公和团队。它支持企业级权限管理,并具备强大的如日历、审批等集成功能。但是,飞书在知识管理和个性化数据组织方面较弱,且其界面和功能较为复杂,可能对部分用户不够友好。

3.2 市场与产品生态

Notion 的核心用户群主要包括以下几类:

  1. 个人用户
    • 学历和年龄:大部分是大学生、研究生及高学历专业人士,尤其在学术、设计、工程技术等领域。
    • 收入:收入水平较为广泛,包含在校学生、初级职员以及自由职业者等收入层次。
    • 需求:灵活的知识管理、项目管理、任务安排、日常笔记、文档和数据库结合。
  2. 小型团队
    • 学历和年龄:与个人用户相似,以年轻的团队成员为主,学历普遍较高。
    • 需求:协作与项目管理,尤其适合小团队的日常沟通、任务跟踪和知识管理。
    • 收入:多为创业团队或小型企业,收入水平较为多样。
  3. 教育群体
    • 学历和年龄:学生和教师群体,通常是18-40岁之间,学生群体包括本科和研究生,教师群体则以各学科教师为主。
    • 需求:个人学习、教案设计、知识管理和课程内容创建。
    • 收入:收入多为固定工资,学生群体收入较低,教师群体通常为中等收入水平。

Notion 的不同用户群体之间存在紧密的关系,特别是在教育和团队协作方面。学生和教师之间的互动尤为重要,教师可以利用 Notion 设计教案和管理课程资料,而学生则通过记录笔记、整理学习内容来提高效率,形成良好的教学和学习生态。自由职业者与小型团队也有共同点,自由职业者使用 Notion 进行项目管理和知识管理,而小型团队则利用 Notion 进行协作、任务分配和工作流优化,促进合作与资源共享。

Notion 的产品和相关工具之间的生态关系:

  • 通过丰富的模板,Notion 可以快速为不同用户群体提供定制化的解决方案,例如教育领域的学习计划、项目管理领域的任务追踪等。此外,Notion 提供的 API 和集成工具使得用户能够将其与 Google Calendar、Slack、Trello 等第三方应用结合,促进跨平台的数据同步与工作流管理。

  • 这些产品间的互补性为 Notion 构建了一个强大的生态系统。通过与 Coda、Airtable 等工具的协同工作,Notion 能为用户提供更加全面的项目管理和数据管理解决方案。

3.3 产品规划

3.3.1 需求分析

可以在 Notion 中引入 IM(Instant Messaging)功能。 Notion 缺少团队实时沟通,现有的协作工具(如飞书)已广泛提供即时通讯功能,这导致Notion用户在切换应用程序时可能遇到效率低下的问题。通过在 Notion 中引入 IM 功能,可以使得用户在同一平台上完成所有任务管理、知识分享和沟通交流,进一步提升工作效率和用户体验。

  1. Need(需求):Notion 缺乏集成的即时通讯功能,导致用户需要频繁在多个平台之间切换。
  2. Approach(方法):Notion 可以通过集成即时通讯功能与现有的文档、任务和知识管理系统结合,使得团队成员在讨论、分享和决策时不需要跳出 Notion。这种方法不仅减少了信息孤岛,还能让团队成员在处理任务时实时获取反馈,从而加速工作进程。
  3. Benefit(收益):通过在 Notion 中引入 IM 通信功能,用户可以在同一平台上进行文档编辑、任务管理和即时沟通。这样一来,团队能够更高效地沟通和协作,提升了整体的工作效率和用户的满意度。
  4. Competitors(竞争):现有的竞争者,如 飞书,虽然提供强大的即时通讯和团队协作功能,但这些工具并没有完全结合知识管理功能。Notion 引入 IM 通信功能后,能够弥补这一空白,将即时通讯和知识管理无缝连接,形成一个更完整的团队协作平台,挑战现有的市场格局。
  5. Delivery(推广):在Notion中内嵌推广与引导,通过工具提示、弹窗通知或引导教程,帮助用户迅速了解并使用该功能。

3.3.2 人员配置

在客户端,需要使用下面技术栈,实现难度不大,分配两名人员即可:

  • Web端:可以使用 JavaScriptWebSockets 来实现实时通信。常用框架包括 React 或 Vue.js。
  • 移动端:可以使用 React NativeFlutter 或原生开发(Swift、Kotlin)来实现跨平台功能。
  • 桌面端:可以使用 Electron 来开发跨平台桌面应用。

在服务端,为了实现高并发的通信功能,需要专门构建消息服务,涉及的技术栈有 WebSocketMQTTFCM,技术挑战较大,需要分配两到三位后端开发人员。最后,需要一名测试人员负责消息服务的稳定性、可靠性、安全性测试。

3.3.3 时间规划

周次 目标 任务
第1周 需求分析与产品规划 与相关团队讨论需求,确定功能模块。进行市场调研,了解类似产品特点。
第2周 技术选型与架构设计 选择前端技术栈、后端技术栈、数据库等。 设计IM功能的系统架构,制定技术文档和接口标准。
第3-4周 前端和后端基础设施搭建 搭建前端框架、后端服务,设置数据库和消息队列。
第5-7周 核心IM功能开发——文本消息 实现消息的发送和接收,支持多用户聊天,完成消息记录和数据库存储功能。
第8-10周 群聊和多设备同步 开发群聊功能,进行设备间的消息同步,设计离线消息处理功能。
第11周 消息通知和推送功能 设计并实现实时消息通知,集成推送服务实现移动端通知。
第12-13周 用户界面优化与体验提升 优化聊天界面的设计,优化快速发送、消息撤回、引用回复等功能。
第15周 性能测试与优化 进行压力测试,评估系统在高并发下的表现,分析系统瓶颈并进行资源调度,提升性能。
第16周 部署、推广与用户反馈 将IM功能部署到生产环境,加入使用教程、引导,进行内测,收集用户反馈改进产品。
posted @ 2025-03-11 20:57  XuanxuanRao  阅读(105)  评论(0)    收藏  举报