[I.3] 个人作业:结课总结
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 2025年春季软件工程(罗杰、任健) |
| 这个作业的要求在哪里 | [I.3] 个人作业:结课总结 |
| 我在这个课程的目标是 | 学习软件工程知识,配合团队同学开发出一个有价值的开源软件 |
| 这个作业在哪个具体方面帮助我实现目标 | 总结开发过程中遇到的问题、解决方法、以及项目中所担任的角色和相应的工作内容 |
一、链接到以前提问题的博客
https://www.cnblogs.com/sigridwicks/p/18758604
二、问题解答
更多是来自实践的体会吧,不一定是最好的答案
问题一:软件bug的界定标准
更多是看开发人员愿不愿意修复(x)如果没有用户反馈并且负责的同学不认为这个会对功能造成影响,可能就变成feature了
当然另一个角度上,肯定要衡量修复难度和优先级
问题二:估算工作量
这太难了TT 必须存在一个,不仅自己有经验,还充分知道不同开发能力的人需要花多久的人来进行估算,否则这个估算很难是合理的;对于事后统计也是一样的道理
实践上讲,工作量=时间(按小时)*难度系数 的方案是必然会通货膨胀的;每个人的认知里很难察觉自己的工作效率是相对高还是低,因为任务是不同的,所以难度系数一般都会按照1来估算,这就会导致效率高的同学觉得效率低的同学在灌水摸鱼,效率低的同学实打实花了几个小时的时间,填写的工作量被质疑心里也不好受
目前我们是通过开一个整体的事后评估会议进行工作量估算的,为了防止大家不愿意发表意见还设置了匿名机制。从效果上来说,事后评估调整后,大家对每个成员的工作量都是认可的(事前会有一些意见,通过事后评估会议解决了)
问题三:冲突解决方案
没有别的,有理有据的吵吧;全体共识是需要尽可能维护的,但是为了推进项目保证进度,pm必须有自己的坚持,需要pm有足够的能力来说服大家
问题四:猪与鸡
“不忌讳谈论不同的投入和负责程度”不太现实,只能说分配任务时大致按照能力和效率分配,有明显拖延情况的话pm去专人专戳,也需要考虑大家的时间安排和面子问题(所以就是为什么需要pm)
问题五:绩效评估
多沟通,多开会,工作多留痕,然后通过事后会议达成共识(如问题二)
三、在实践中学习知识点
请问你们在项目的 需求/设计/实现/测试/发布/维护阶段(一共6 个阶段)中都学到了什么“知识点”,每个阶段只要说明一个知识点即可。
| 需求 | 需要实际调研,通过问卷/采访确定用户需求 |
|---|---|
| 设计 | 保证架构各个模块之间耦合度尽可能低 |
| 实现 | 最小功能封装和足够的注释,提升代码复用性和可读性 |
| 测试 | 预留足够测试时间 |
| 发布 | 尽可能提前发布最初版本,有足够的时间收集用户反馈和推出更新 |
| 维护 | 对发布版本开通反馈渠道,随时维护 |
四、结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得。
团队项目
pm真的是一份很有必要的工作(x)实际上在制定目标的时候,心里是比较发虚的,很害怕遇到困难导致最终完成度不高,毕竟是一群新手在一起想攒个游戏出来;但是大家团结起来的力量确实是很大的,真的超出我的想象,最后完成度很高。
感觉就是,只要大家把精力都聚焦在实现和产品上,就事论事,其实效率是很高的而且沟通上不存在什么问题(也就是俗话说的劲往一处使),团队合作的效果出乎意料的好了。虽然团队成员之间出现过一些问题和不愉快,但是大部分都解决了,还是合作非常愉快,大家都很有责任心!
心得就是,首先要有统一、一致和清晰的目标,要做什么做到什么程度;在此基础上,只要愿意彼此理解,有问题沟通协调,就能达到1+1>2的效果
结对编程
我的感受是:结对编程带来的效率提升很大程度上依赖于彼此的信任,以及顺畅的沟通,需要两个人都投入(不是说当领航员就可以摸鱼),最终完成效果肯定是比各做一份然后选最优更好的

浙公网安备 33010602011771号