软件工程个人作业-提问回顾与个人总结

软件工程个人作业-提问回顾与个人总结

项目内容
这个作业属于哪个课程2023年北航敏捷软件工程社区
这个作业的要求在哪里个人作业-提问回顾与个人总结
我在这个课程的目标是掌握并切身体会软件开发的基本流程
这个作业在哪个具体方面帮助我实现目标回顾软件开发流程并总结团队开发软件的经验

回顾

原问题博客:软工第一次作业—阅读与提问-CSDN社区

问题解答

问题一
结对编程要求两人共同开发,让两个人所写的代码不断处于复审的过程,来提高设计和编码质量。

结对编程确实可以提高代码的规范和质量,但我认为两个人结对编程的效率不一定会比两人各自编程带来的效率高。首先,团队中比较难找到适合结对的人员,结对编程要求两人性格脾气能够相投,否则两人难以合作,可能因为情绪原因拖慢进度。其次,结对编程还要求两人水平相当,思维方式相当,两人需要能相互理解对方的想法,否则因为不理解对方想法带来的不必要的暂停会显著影响结对编程的效率。

个人结对编程实践经历:结对编程需要考虑应用场景,对于部分任务需要高质量代码的时候比较适用,但对于一些以效率为重或部分任务需要个人独立工作时,可能两人共同开发需要花费更长的时间,反而会降低工作效率。所以,结对编程确实是一个很好的方法来提高代码质量和团队协作,但它并不适用于所有情况,需要根据具体情况进行判断。

问题二
MSF有九条基本原则:

推动信息共享与沟通(Foster open communications)
为共同的远景而工作(Work toward a shared vision)
充分授权和信任(Empower team members)
各司其职,对项目共同负责(Establish clear accountability and shared responsibility)
交付增量的价值(Deliver incremental value)
保持敏捷,预期和适应变化(Stay agile, expect and adapt change)
投资质量(Invest in quality)
学习所有的经验(Learn from all experiences)
与顾客合作(Partner with internal and external customers)
书中详细介绍了前八条原则,没有对“与顾客合作”这一原则的介绍。而且在关于MSF介绍的博客中有些没有这一原则,剩下的也是没有关于“与顾客合作”的介绍。个人不太理解要如何与用户进行合作,要让顾客参与到软件开发的哪些流程中,要让顾客进行什么样的工作。

团队合作实践经历:“与顾客合作”的目的是确保开发出符合用户需求的高质量软件。在敏捷开发中,开发团队需要和顾客进行频繁的沟通和协作。需要顾客参与到软件开发的不同阶段中,包括需求定义、用户界面设计、功能开发、测试等方面。同时用户可以跟进开发进度,及时给出反馈和改进意见,确保软件开发能快速响应顾客需求和市场变化。

问题三
在8.1的软件需求中,详细的介绍了获取和引导软件需求的方法,但是用户的需求是会随时间的推移而发生一定的改变,在进行需求分析时是否需要进行一定程度的前瞻?当软件开发过程中用户的需求发生改变时,需要怎样的流程来对需求变更进行控制以减小对现有工作的影响。

团队合作实践经历:在进行需求分析时,应该考虑到用户需求可能会发生变化,需要进行一定程度的前瞻,以确保软件设计和开发可以满足可能的未来需求。在需求分析的过程中,尽可能地充分了解和收集用户需求,并根据收集到的需求,制定一个较为全面和具体的需求规格说明书。规格说明书应该详细描述软件所应该具有的功能和性能等特点,包括用户需求的不同方面,以便随时进行相应的开发或修改。

问题四
书中在NABCD模型的C中提到“先进入市场的产品,有所谓的先发优势,当然也有劣势。后面进入市场的产品,有种种不利的因素,但是也有后发优势”。

第一个进入市场的会有很大的用户需求,当用户积累到一定程度时会出现垄断状况,在当前领域形成护城河,获得竞争优势,同是由于不确定市场对产品的反应情况,需要进行很大程度的冒险。后发可以获得先发的经验和教训,规避掉很多不确定性和风险。先发和后发都具有优势,也都有很多成功的案例,如何协调好先发和后发是收益最大化?

个人体会与讨论:正如问题中所说,先发和后发都具有相应的优势和不利因素。与其在意自己是先发还是后发,还不如着重于提高产品质量。先发的时候就不断优化产品,保持产品的竞争力。后发的时候则学习先发的经验和教训,规避设计上的缺陷,改进产品质量。

问题五
Ad hoc Test是随机进行的、探索性的测试,能发现重要的问题,要多鼓励一些探索式的测试,弥补普通测试的不足,也就是要通过探索式测试的数量来对实际使用场景进行覆盖。同时,书中说探索式测试太多是团队管理不佳的标志。探索式测试的数量如何权衡来尽量多的对实际使用场景进行覆盖,也不会消耗过多的资源?探索式测试应放在软件工程的哪一或哪些阶段进行测试来获取最大效益?

与团队测试人员交流:探索式测试的数量应该根据实际情况做出权衡,并结合项目和资源管理的要求来进行协调。首先,需要在测试计划中明确探索式测试的范围和目标,确定要测试的方向和范围。在测试过程中,测试人员应该根据测试计划中的目标,以及实际情况和用户反馈等信息,确定哪些方面需要进行探索式测试,以尽可能地对实际使用场景进行覆盖。同时,团队需要注意控制探索式测试的数量,避免浪费过多资源,影响正常的测试进度和质量。

知识点

  • 需求:调研用户需求,整理需求文档并完成需求规格说明书
  • 设计:技术文档,系统架构设计,API设计,性能设计,用户界面原型设计
  • 实现:对每个功能点进行技术验证并完成相应代码编写,使用git进行版本控制与团队协作
  • 测试:单元测试,集成测试,压力测试
  • 发布:编写用户使用文档,用户反馈意见收集分析,宣传产品
  • 维护:故障排查修复,版本升级

心得体会

软件工程是一门关注软件开发过程、质量和效率的学科,可以帮助我们更好地进行软件开发。软件工程涵盖的内容为软件开发的整个流程,包括软件需求、设计、实现、测试、发布和维护等方面,需要遵循一定的规范和最佳实践,以确保开发出高质量、易维护、高效的软件产品。

有效的沟通和协作对软件工程至关重要。软件开发不是个人的工作,是需要不同角色之间协作沟通。在团队项目中,我学会了有效地与组员进行沟通,协作解决问题,并通过集体智慧解决困难。同时,对于团队项目中不同职能角色之间的衔接,我也更加明确了各个角色之间的职责和作用,比如在前端开发与UI设计之间的衔接上,UI设计师需要了解和把握前端开发人员的需求,共同开发出质量较高的界面。

最后,感谢我们团队的PM和我们的团队,团队的每个人都尽职尽责的完成自己的工作,而且我们的PM不仅完成PM的本职工作还参与到关键功能的开发中。感谢我的团队,共成长。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值