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

项目 内容
这个作业属于哪个课程 首页 - 2025年春季软件工程(罗杰、任健) - 北京航空航天大学 - 班级博客 - 博客园
这个作业的要求 [I.2] 个人作业:软件案例分析 - 作业 - 2025年春季软件工程(罗杰、任健) - 班级博客 - 博客园
我在这个课程的目标是 体验软件开发的整个流程,对软件工程有更深的了解
这个作业在哪个具体方面帮助我实现目标 通过全方位分析市场上的现有软件,了解软件工程原理在软件上所起的作用

第一部分 调研,评测

软件评测

软件使用

软件分析

我选用的软件是Notion,该产品是一个项目管理工具,包括task任务、project工程等个人项目管理(在“私人”模块),也包括团队项目管理(在“团队协作区”模块),多人可以实时编辑同一页面。

产品使用的基本流程是:在用户注册登录后,可以创建或加入一个工作空间,在这个工作空间内可以创建各类页面(如Tasks、Projects、Docs、自定义的界面等等)来管理组织项目。同时可以邀请别的用户加入这个工作空间,以便团队项目管理和任务分配。

产品的项目管理基本流程是:先创建项目,可以设置项目状态、负责人、日期范围、优先级等属性⁠⁠⁠⁠;接着把项目拆分成具体任务,分配给团队成员⁠⁠⁠⁠;项目实施过程中可以跟踪进度,通过状态(如"Planning"、"In progress"、"Done")标记任务和项目的完成情况。

软件在数据量上,可以支持大量项目存储与管理,适合个人,也适合团队。但并不支持过大的数据量,比如“文件和媒体”该属性就要求每个上传的文件大小不超过5MB。

软件在界面上,有多种视图,如日历视图、任务列表视图、时间轴视图等等,因此美观且简洁易懂。但各种页面支持的功能繁多,可能新手需要一段时间才能熟练使用。

软件在功能上,有任务管理、项目管理、文档管理、会议管理、团队协作等等,支持多种视图和模板。但某些高级功能需要付费,如文件上传大小、协作成员数量等等功能有限制。

软件在准确度上,每个任务都有很多属性,不仅包括文本信息,也可以添加图片、附件、ddl日期等信息,可以让用户完整准确地描述某个任务。但关联复杂数据时可能出现延迟。

软件在用户体验上,提供了很多优质模板以供用户快速上手,管理组织项目。界面风格多样、项目组织方式灵活,可以满足不同团队的需求。

改进意见

我认为Notion作为一个项目管理软件,虽然支持很多附加功能,但项目和任务管理才是最重要的。我仔细使用了项目管理的各个功能,联系我的生活经验,在某个大型项目里,我们可能要设置定期的重复任务,如每周一都要完成的重复任务,但Notion并不支持重复任务的设置,必须借助社区的模板或者在日历视图手动重复设置。因此我认为Notion还可以开发更多的项目任务管理功能。

用户调研

采访对象的背景:2206学生,我的室友,非罗杰老师班。选择原因:作为一个j人(MBTI人格类型),她对项目管理有很大需求,平时就经常使用Notion。需求:在平时的学习和研究项目中,需要一个项目管理软件辅助其进行个人时间管理;在团队任务中,需要一个项目方便她和队友进行协作。

Q1:你一般使用Notion的什么产品栏目或功能呢?

A1:我在上学期刘瑞老师的数据库小组作业中,经常使用Notion的Task功能来完成组内分工,以及共享文档的实时编辑功能。

Q2:你使用Notion过程中遇到过什么问题和亮点吗?

A2:我觉得问题主要是编辑文档超过一定字数就要收费。亮点是能够实时共享编辑,方便组内整合文档。

Q3:你觉得Notion可以从哪些地方改进?

A3:太贵了!可以优化会员制度,比如从原先的单一的收费变成每日签到领取会员,或者开设学生免费版。

评测结论

d好,不错。

软件的核心功能:项目管理,项目可以增添状态、负责人、日期、优先级、完成度等等属性,已经能够非常完备地支持常规项目管理,但如上所提到,仍存在可以改进的空间。

软件的用户体验是很好的,界面整体是简洁风格,使信息一目了然。

软件的辅助功能很完善,提供模板以供用户借鉴使用,又可以自定义页面,满足个性化需求。

软件的差异化功能,比如支持文件上传、会议预约,这一般是项目管理软件较少涉及的。

软件的适应性很好,在Windows和Mac系统上都能显示出美观的UI,且界面自适应也做得很好。

软件的成长性一般,没有根据用户的选择进行个性化推荐。

Bug分析和提交(一):Markdown导出问题

1.测试环境

所用操作系统版本:Windows 11 家庭中文版

所用浏览器版本:Google Chrome 版本 134.0.6998.35(正式版本) (64 位)

前因后果:本人日常使用Notion期间

2.可复现性及具体复现步骤

该bug为必然发生。

复现步骤:

在使用Notion的文档编辑功能时,虽然Notion支持Markdown语法,也支持导出成Markdown文件,但导出的文件兼容性较差。可能带有额外的HTML代码,例如“”等;嵌套引用中,超链接会变成普通文本;Emoji、特殊符号会丢失或者变形。

3. Bug具体情况描述

在从Notion导出的Markdown文件中,可能带有额外的HTML代码,例如“”等;嵌套引用中,超链接会变成普通文本;Emoji、特殊符号会丢失或者变形。

使用以上Notion的导出功能。

用本地Typora打开导出文件,对比Notion网站上渲染的Markdown文件,可以看到:带有额外的HTML代码,例如“”;引用块中,超链接变成了普通文本(无下划线,且无法直接点开链接);Emoji、特殊符号变形严重。

我还尝试了不同内容的文档导出,确定此bug不是偶然现象或乌龙:

在上面这个导出的文件中,可以看到OpenAI的超链接被处理成普通文本;“”仍存在。

4. Bug分析

在bug分析前,我先提出一个各项指标的量化标准:

⭐ 轻微影响,用户仍可正常使用功能,无安全风险

⭐⭐ 影响某些用户,但有简单可行的临时解决方案

⭐⭐⭐ 影响大部分用户,需要用户花费很多时间解决,可能影响数据完整性

⭐⭐⭐⭐ 核心功能出现问题,可能导致用户的流失,可能造成数据泄露

⭐⭐⭐⭐⭐ 软件出现重大故障甚至瘫痪,用户完全无法使用,可能造成数据严重泄漏和恶意攻击

Notion的Markdown导出bug可能是因为:Notion本质上是一个富文本编辑器,采用的是块结构存储数据。而Markdown是纯文本标记语言,采用的是文本标记来解析和渲染。因此Notion把富文本内容导出成Markdown时必须格式转换,联系我自己做编译器的经历,两种语言之间的转换绝不是简单的查找替换,且这种转换涉及超链接、图片等等不同格式的数据,比起纯文本更加困难。而最终渲染的效果与原本的富文本内容有较大差异也是可以理解的了。

该bug的严重性我认为是3星的。系统功能上,Markdown的导出功能仍然是正常的,但影响了格式化和兼容性。安全性上,没有数据丢失或篡改风险。用户体验上,大部分用户都受到影响,需要手动清理多余的HTML代码,手动修改Markdown甚至重新排版,增加了用户写作的工作量。

该bug软件团队不修复可能是因为Markdown不是他们开发的核心功能,Notion团队可能更关注协作功能、AI等等,Markdown并不享有很高的优先级。并且,技术实现也有难度,Notion的富文本格式与标准Markdown格式不兼容,因此导出时只能转换成近似格式,而不是严格的Markdown语法。

5. Bug改进建议

富文本内容导出成Markdown后不应该存在过多排版变形和冗余内容,可以局部进行优化,使用标准的Markdown语法,而不是简单的文本翻译。

Bug分析和提交(二):项目视图切换问题

1.测试环境

同上

2.可复现性及具体复现步骤

该bug为偶然发生。

我连续十天使用Notion进行自己的项目和任务管理,每天使用2-3次,在这20余次中,此bug发生了5次。

复现步骤:

在使用Notion的项目管理功能时,在切换项目不同视图过程中,可能会有明显卡顿和数据显示异常,需要手动刷新或者等待较长时间后才会正常。当项目条数较多时,这种卡顿尤为明显。

3. Bug具体情况描述

在项目管理工作空间中,从Active切换到Timeline、Board等视图,再切换回来后(即频繁切换视图),就可能出现卡顿死机的状况,具体表现为:视图数据显示异常,点击别的视图或侧边栏其他功能无响应。

这是Active视图正常的项目显示。

这是频繁切换视图后,Active视图异常的项目显示。

这是异常时,点击Board视图无响应。

4. Bug分析

在bug分析前,我先提出一个各项指标的量化标准:

⭐ 轻微影响,用户仍可正常使用功能,无安全风险

⭐⭐ 影响某些用户,但有简单可行的临时解决方案

⭐⭐⭐ 影响大部分用户,需要用户花费很多时间解决,可能影响数据完整性

⭐⭐⭐⭐ 核心功能出现问题,可能导致用户的流失,可能造成数据泄露

⭐⭐⭐⭐⭐ 软件出现重大故障甚至瘫痪,用户完全无法使用,可能造成数据严重泄漏和恶意攻击

Notion的项目视图切换bug可能是因为:视图频繁切换时,前端重复进行渲染,后端数据库未快速响应、提供相应视图所需的数据,因此前端显示异常。在出错时我查看浏览器的开发人员工具,报错如下:

{level: 'error', from: 'RenderQueue', type: 'rerenderTimeOut', data: {…}}
	data: 
		miscDataToConvertToString: {componentNames: Array(3)}
		[[Prototype]]: Object
	from: "RenderQueue"
	level: "error"
	type: "rerenderTimeOut"
	[[Prototype]]: Object

结合报错,我认为该bug可能是因为组件渲染逻辑过于复杂,且数据更新过于频繁,触发了过多的重新渲染,导致前端显示异常。

该bug的严重性我认为是4星的。系统功能上,rerenderTimeOut 表明系统在尝试渲染某些组件时超时,导致页面无法正常显示,这是一个较严重的功能性问题。安全性上,攻击者可能利用该bug,构造大量项目条、频繁切换项目各视图,恶意造成渲染超时,导致系统崩溃。用户体验上,页面卡顿、交互失效、页面布局错乱且数据缺失,大部分用户都受到影响,可能造成用户的不信任和流失。

该bug软件团队不修复可能是不愿意放弃前端美观的组件,导致渲染逻辑过于复杂甚至出现死循环。

5. Bug改进建议

减少前端不必要的渲染,进行组件逻辑优化,或使用缓存。优化后端的视图架构。在页面卡顿时显示加载弹窗,告知用户即将完成渲染,增加交互性能。

第二部分 分析

工作量分析

该网站的核心功能是Project和Task管理:

  • 从后端来看,项目和任务的属性大体相似但有所不同,用户对项目和任务数据库的增、删、查(包括搜索、筛选、排序等等)、改操作也是可以互相借鉴的,因此后端开发上有很好的代码复用性。
  • 从前端来看,Notion网站提供了非常丰富的视图机制,可以从日历视图、任务列表视图、时间轴视图、仪表盘视图等等多种视图查看项目和任务,前后端接口实现的工作量相对较大,前端的页面美化工作量也很大。

Notion的一大特色是支持多人实时协作,涉及大量的数据同步:

  • 允许多个用户同时编辑同一个页面或数据库,所有更改会即时同步到所有用户的设备上。除网页端外,Notion的移动端应用也支持大部分协作功能,方便用户随时随地参与协作。
  • 通过光标追踪查看其他协作者的编辑位置。
  • 在项目、任务的各个属性中设置评论功能,团队成员可以看到评论及其发布者,还可以在评论里@用户,对方在Notion的收件箱收到通知。
  • 可以把任务分配给团队特定成员,并通过任务状态跟踪任务进度。

而Notion还有其他附加功能,做得较优秀的有文档编辑、NotionAI辅助功能、市场模板上传:

  • 文档编辑支持Markdown,我做了详细测试,标题格式、列表、引用、任务列表等等都可以直接从Typora复制到Notion网站上,且仍能正常显示Markdown的格式。并且Notion 允许在文档中插入多媒体内容,可以通过上传本地文件或插入链接来显示图片、视频、音频等。
  • NotionAI辅助功能可以回答简单的问题,帮助用户更快上手Notion网站。
  • 市场模板上传主要是用户可以在市场里上传自己优秀的模板,也可以下载别人发布的模板使用。

综上所有功能,Notion是一个完善的项目管理工具。若有6位团队成员一起开发,我预估的工作量是两年左右。

软件质量分析

优点:Notion的多视图机制能让它在一众项目管理工具中脱颖而出,它给用户提供了不同视角来查看自己的任务安排。且其强大的数据同步功能,使Notion是一个很好的团队协作平台。

缺点:Notion的自由度非常高,因此新用户很难上手(本人在最初使用时也曾困惑了很久)。相比于轻量级的笔记型项目管理,Notion更适合有层次、有结构的庞大项目管理。且Notion的数据存于云端服务器上,离线模式差,离线缓存明显劣于本地存储的项目管理工具。

总之,Notion在同类产品中大致能排入前三,其美观简洁的界面和同步的功能使其吸引特定人群,拥有自己的独特竞争力。

而我认为该软件团队在软件工程方面可以提高的部分是,应当进行更深入的用户需求调研。通过强大的UI支持,赋予Notion极高的自由度,本身是一件很棒的创新。但其忽视了部分用户对快速项目管理的需求,强制用户对软件进行深入摸索学习,这会劝退一部分用户。

第三部分 建议和规划

市场现状

1.市场概况

Notion主要面向个人和团队、企业用户,目标是项目管理和企业协作市场,Notion 自 2018 年以来用户数增长迅猛,官方数据显示:截至 2023 年,注册用户超过 4000 万,企业客户超过 10 万家,包括Slack、Nike、Samsung、McKinsey等。而全球项目管理和协作工具的潜在用户可达5-10 亿人,包括个人用户和学生、自由职业者、团队和企业。且Notion在中国的市场渗透率仍然较低,中国有着庞大的潜在需求,Notion未来仍有很大增长空间。

2.竞争产品

目前市场上的项目管理软件竞品主要有:Coda、Obsidian、monday.com等等。

3.产品定位

Coda注重表格和数据库功能,和Notion功能近似,是一款功能完备的文档工作平台。优势是特别适合需要处理复杂数据的用户,且提供了很好的自动化功能。缺点是用户的学习成本更高,且界面不如Notion简洁。

Obsidian是本地Markdown笔记工具,更适合个人用户。优势是本地存储快,离线模式好。缺点是协作性差,且因为其完全基于Markdown,对不熟悉Markdown的用户而言上手困难。

monday.com是一款项目管理工具,它做得比较好的方面是数据可视化。同Notion相似,其优势在于支持多种视图。其缺点是文档编辑能力弱,只支持最基本的文档编辑,且monday.com相较于Notion的会员贵了一倍,穷鬼跑路ing

市场与产品生态

1.用户群体

Notion的用户群体很广泛,涵盖 个人用户和学生、自由职业者、团队和企业 等。其核心用户具有项目管理需求,并倾向于使用灵活、私人定制的工具。典型用户就是一个计算机专业的大学生,Ta使用Notion来做管理项目、制定任务计划、摘录笔记、整理代码。

学历或许是大学生、研究生等相对高知分子,年龄在18-40岁,专业涉及面较广,爱好是学习、整理、产品开发、内容创作等等,收入有高有低(有些可能使用免费版,有些更愿意付费),表面需求是项目管理、文档管理、团队协作,潜在需求是时间管理、提高团队协作效率和沟通效率。

2.用户群体之间的关系

学生用户在毕业后可能会成为自由职业者,或加入团队和企业。小型团队也可能逐渐发展成大型企业。因此,利用这些关系,Notion可以积极在教育领域推广自己的产品,牢牢把握住这部分用户,可能学生会在学习阶段使用免费版,但在工作后会向团队成员推荐Notion的产品,也会更愿意付费。

3.产品生态

Notion和其子产品NotionAI就存在密切关联,AI能辅助写作,帮助用户快速上手网站的功能。但当前NotionAI的功能还十分有限,需要深入模型训练。

Notion和Notion Calendar也是如此,Notion中有日历视图,可以直接在Notion Calendar中打开,看到项目的时间安排。

同一系列的产品,类似的UI风格,会让用户更愿意选择同系列产品,形成良好的产品生态。

产品规划

1.新功能

我要实现的新功能是支持用户设置定期的重复任务,用户可以自定义重复规则,如每周一都要完成的重复任务,且重复任务支持用户手动调整(单个任务调整和全部调整均可)。做这个功能是因为Notion的核心功能是项目和任务管理,新增这个功能会大大丰富Notion的项目管理方式。

N上看,根据我们以往的经验,在一个项目中,很多任务都是定时重复执行的,其任务有高度相似性。因此直接设置可重复的任务(在某一时间段内定期重复),会大大提高用户的效率和体验感。

A上看,这种重复任务可以通过在后端数据库创建多个任务,或者新增任务属性,分为普通任务和重复任务实现。前端则在任务创建界面添加“重复”选项。

B上看,这对用户管理项目和任务是很有收益的,不需要再手动一个个创建相同的任务。

C上看,使产品有更大的市场竞争力,且与Notion现有功能无缝衔接。

D上看,可以把重复任务勾选放在任务创建页面的明显位置,使用户注意到该新增功能,如有需要可以录制教程视频或文档,做进一步的说明。

2.配置角色

我会配置1名PM(即我自己),2名后端开发,1名前端开发,1名测试人员,1名美工(同时也负责用户体验优化)。由于该新增功能主要体现在后端逻辑的改变,因此后端开发是重点。

3.详细规划

1-2周,需求分析与调研,通过问卷、采访等形式调查用户对新增功能的想法,PM和团队成员讨论功能需求,确定优先级。

3-4周,搭建框架、制定计划。前后端开发人员各自搭建框架和制定开发计划,测试人员制定测试计划。

5-9周,核心功能开发,后端实现重复任务的逻辑和存储,前端开发实现用户界面和交互逻辑,美工优化界面设计。

10-11周,进一步开发自定义的重复规则。对于用户自定义的重复规则,可能处理逻辑较复杂,后端开发需要进一步研究更高效的数据库处理方式。测试人员辅助进行相关功能测试。

12-13周,测试与Bug修复,测试人员全面进行测试,前后端开发人员修正bug,优化性能,美工进行界面调整。

14-15周,邀请用户进行测试,收集反馈并优化。

16周,发布新功能,撰写文档教程,录制视频教程,在Notion中推广。

posted @ 2025-03-12 20:43  六拾一61  阅读(136)  评论(0)    收藏  举报