个人作业:阅读和提问
作业要求
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 北京航空航天大学2025年春季软件工程 |
| 这个作业的要求在哪里 | 个人作业:阅读和提问 |
| 我在这个课程的目标是 | 掌握软件工程的基本技能,学习大型项目的开发流程和技巧 |
| 这个作业在哪个具体方面帮助我实现目标 | 通过阅读书籍,思考软件工程的基本流程和注意事项 |
阅读提问
- 诚然,由程序的作者来编写单元测试是非常有必要的,但为什么不能由其它人员也负责编写一定数量的单元测试?
教材P25:单元测试必须由最熟悉代码的人(程序的作者来写)
代码的作者最了解代码的目的、特点和实现的局限性。所以,写单元测试没有比作者更适合的人选了。
我认为作者的这个观点有点过于绝对了。诚然如书中所言,程序的作者对程序的了解最深,可以依据程序的特点针对性地编写单元测试。但正如古话所言:“当局者迷,旁观者清”。程序的作者常常会因为对程序的目的、功能与实现过于了解,从而对程序形成了思维定势,反而很容易忽视一些对其他人而言比较显而易见的bug。正如下图那个经典的程序员笑话

最后顾客问厕所在哪,酒吧炸了。
这就是很显然的测试人员对酒吧功能形成了思维定势,从而忽视了另外的显而易见的bug
我在自己的学习过程中也经常出现这个问题:自己幸幸苦苦de一个下午bug无功而返,最后请教室友。室友却能在十分钟内迅速破案。我在学习过程中也经常和同学交换着互相debug,并且取得了非常好的效果。因此我认为,尽管可能造成单元测试的冗余,但出于程序的健壮性考虑,让一些只对程序功能有基本了解的人员参与编写单元测试是非常有必要的。
- 在软件工程的实战中,如何把握与团队与顾客交流的程度?或者说,是否在某些条件下(比如商业利润过于庞大的情况下),可以拒绝与用户合作?
教材P145:MSF强调产品团队与顾客的交流与合作,并不是产品团队拿到合同后,旧闭门造车,直到产品完成才告诉用户,给他们一个惊喜。
读了书上这句话,我产生了一些思考。事实上,很多产品团队推出的产品功能,在很多情况下与用户的需求是相抵触的。比如近几年来疯狂寄生到各类手机APP中的“开屏摇一摇广告”,应该不会有用户觉得“这个摇一摇广告好啊,完美符合我对这个APP的需求“。
但结果就是,开屏摇一摇广告从最开始的少数流氓软件的专利,逐渐蔓延到了几乎所有主流手机APP,让不少用户叫苦不送。但不可否认的是,”摇一摇广告“获得了巨大的商业成功,其创始人更是通过”摇一摇广告“专利获利百万以上。
依据”摇一摇广告“商业上的成功,我们是否可以认为,在有些时候,拒绝与用户的合作,与用户的期望背道而驰,也不失为一个正确的商业选择?
- 我认为,对产品的全部投资集中在”最基本功能“也是一个可行的道路,也有可能带来成功。
教材P176:一个极端的例子是,如果你对产品的全部投资都集中在”最基本功能“,那么产品的平均分不会超过3分。
教材在此处写这句话,意图凸显产品“惊喜功能”的重要性。但我的观点与作者有所不同。
当代国产主流软件一个被诟病的点就是过于臃肿:不管是什么软件,都要加网购功能,加短视频功能,加理财借贷功能,加装扮功能……这些所谓”附加功能”反而给用户带来了许多负反馈,比如资源占用高,软件流畅度降低,界面繁乱等。
而这些软件对应的“极速版”“精简版”“国际版”,只保留了“最基本功能”,却往往能得到用户更高的评分。
市面上也有许多软件,仅仅是把基本功能做到极致,便收获了用户的一众好评,比如IDM下载器、WinRAR解压器等。
因此我认为,对产品的全部投资集中在”最基本功能“也是一个可行的道路,也有可能带来成功。
- 作为一名PM(Program Manager),却不具备使开发人员按照规格说明书(spec)进行开发的强制力,这是否会造成效率低下?
教材P194:首先,我们认为好的产品设计是在平等讨论的基础上产生和完善的,如果讨论的一方同时又是另一方的老板,则无法进行平等和无拘束的讨论。
教材作者认为,PM与开发人员是平等的。但在这种情况下,最终决策权又交给谁呢,谁要为讨论的结果负责呢?这样的安排,是否与教材前文提到的团队开发中“各个团队成员对自己部分负责”的原则相冲突?
我认为,在缺少具体负责人员,决策人员的情况下,进行讨论是相当低效的。尽管“平等和无拘束的讨论”听起来很美好,但最终却容易造成效率低下的问题。
我想知道,这种问题在实际团队开发过程中是否会出现?如果会,我们应该如何避免这种问题的产生?
- 教材第十五章“软件测试”描述了许多Bug以及其可能的修复优先级低的问题,但我在实际软件使用过程中仍然有一些bug体验显然不属于教材描述的范围内,我想知道这些bug直到现在仍然不修复的原因。
我在使用微信的过程中,常常会想使用“语音通话”功能,但最后却找不到这个功能在哪里。上网查百度才知道,“语言通话”在“视频通话”选项的二级菜单中。


“语音通话”功能居然在“视频通话”的二级菜单中,这简直离谱。而且用户也不大可能会为了进行“语音通话”,去点那个“视频通话”按钮——万一没有跳出确认界面,直接进行通话了怎么办。
之后我与同学交流,在网上查询相关资料,发现微信用户对这种设计抱怨已久。微信开发团队不可能没注意到这个严重影响用户体验的bug。
但是事实就是,这个Bug直到今天也没有修复。在我看来,就无非就是将"语音通话"按钮从“视频通话”中独立出去,或者改“视频通话”菜单为“音视频通话”不是更合理吗?
诸如此类还有微信的发朋友圈图标居然是个相机,发文字朋友圈居然需要先选张图片再把图片删掉等匪夷所思的设计。
这些bug显然不属于书中提到的可能的"知错不改"的原因,我想知道Bug其它可能的成因。
浙公网安备 33010602011771号