[I.3] 个人作业:结课总结

20373516-曹伯炜 2024-06-30 23:05:17
项目内容
这个作业属于哪个课程2024年北航敏捷软件工程社区-CSDN社区云
这个作业的要求在哪里[I.3] 个人作业:结课总结
我在这个课程的目标是了解熟悉敏捷开发的方法论,学习团队合作,并通过实际开发产品来实践
这个作业在哪个具体方面帮助我实现目标总结课程实践中的经验与教训,更好地掌握敏捷软件工程能力

 

个人作业 I.1 阅读和提问]

一、以前提出的问题

Q1:如何根据团队特点选择合适的团队模式

       书中第五章提出一些可行的团队模式

       需要灵活应对变化和即兴创作的爵士模式,符合本课程PM制度的由一个明确的领导者或专家负责指导和决策的主治医师模式

       但实际合作工程中如何根据团队成员的特点和团队的需求来选择最合适的团队合作模式,特别是在处理技术能力不同或合作冲突时?

      此外,选择团队合作模式时,是否可以建立一个更具体的决策框架或者评估指标,而不仅仅依赖于个人经验和直觉?是否存在一种系统化的方法来评估不同团队模式对于特定项目的适用性,以科学的角度选择更适合当前团队和目标项目的模式?

Q2:如何提升用户体验

     本书第十二章中关与用户认知阻力的内容提到

     更轻简的配置会减少认知阻力

     具体而言在软件设计中,如何平衡简单配置和灵活性之间的取舍?是否可以采取一种动态配置的方式,根据用户的熟悉程度或需求自动调整配置选项的显示?以及在UI设计中,如何确定简约与丰富之间的平衡,是否可以通过用户调查问卷的方式来获取目前用户群体对于颜色、布局等设计元素的偏好,从而指导设计过程?

    宏观角度上,在软件开发中,如何将美工设计纳入到整体的设计方法论中并与功能设计进行平行的迭代和优化?是否可以在软件开发的早期阶段就将用户体验作为一个核心关注点,并通过不断的用户反馈和测试来改进和优化?

Q3:如何测试更充分更高效

    第二章和第十三章提出关于测试的基本原则和基本方法

    没必要去编写成千上万个测试用例,只需要构建出有代表性的即可

    构建测试样例时,如何确定哪些测试用例是具有代表性的?除了基于经验的方法外,是否存在一种系统化的方法或指导原则,能够帮助开发人员更准确地选择和构建测试用例?

   具体结合实际,对于周期短的小项目如结对编程,如何确保在有限的时间内完成充分的测试,以保证软件的质量和鲁棒性,是否有一种更高效的测试方法能够在短时间内完成对关键功能的测试覆盖,同时又不牺牲软件质量?

    考虑到测试需要耗费资源,并且可能比开发功能花费更多的时间,如何在有限的资源下进行有效的测试,是否存在一种方法或策略能够帮助团队更有效地管理测试资源,提高测试效率?

Q4:如何保证软件工程师的职业道德

    书中第七章提到

   软件工程师有很大的机会去造福或危害社会

   随着社会的发展和技术的进步,如何重新定义软件工程中的职业道德,是否需要建立更严格的法律法规来规范软件工程师的行为,尤其是在涉及隐私和数据安全方面?

     对于当前法律法规及尚未完善的软件道德领域,面对道德边界模糊的情况,软件工程师应该如何在实践中准确地判断何为正确的道德行为,是否可以通过制定更明确的行业标准或者道德准则来引导软件工程师的行为,以确保他们的行为符合公众利益?

    如何使软件工程师能够自觉遵守职业道德,除了法律法规和行业标准外,是否还需要加强职业道德教育和培训,以提高软件工程师的职业操守和责任感?

   虽然对于软件工程课程而言,涉及商业的可能性较低,但对社会中互联网公司,面对大数据时代和信息爆炸的挑战,如何平衡用户隐私保护与商业利益之间的关系?是否存在一种更合理的机制或者技术手段,能够保护用户隐私同时又不影响软件工程师的创新和发展?

Q5:如何把握用户心理

  书中第十二章关于用户心理指出

   做产品要从用户的角度考虑问题,这需要有“同理心”。

 在设计过程中,如何有效地整合不同用户群体的反馈和意见,是否存在一种方法或工具能够帮助团队更好地理解和处理来自不同用户的需求和偏好,从而确定哪些功能或设计是可以折中的,以最大程度地满足不同用户的需求?

 在处理从不同用户出发考虑得到的产品设计矛盾时,如何确保在较小成本内找到最优解决方案,是否有一种更高效的方法能够帮助产品团队快速识别并解决这种矛盾情况?根据我上学期学的《失败的逻辑》这门课,存在技术矛盾矩阵,可以用于调和矛盾的用户需求,有机的集合存在冲突的需求并给出解决方案,但这种矩阵主要用于硬件制造,我可以在软件工程课中尝试迁移该方法。

二、实践中学到的知识点

1. 需求阶段

主要收获是尝试了NABCD需求分析方法,在BattleByte项目中,我们主要考虑了其中的N需要(Need),A受众(Audience),B好处(Benefit),D差异(Difference),而对C竞争(Competition)考虑的较少。我们通过问卷确定了用户群体画像,已经用户具体的需要和对现有平台的评价,因此来确定我们的优势。

2. 设计阶段

由于要设计一款好玩的游戏性质的在线对战平台,所以功能及界面设计都是很重要的,我的体会是,首先功能设计要合理,要对需要实现的功能做模块化的处理,减少模块之间的耦合,才能更好的分工合作。而对于UI设计来说,其重要性不言而喻,但是要注意有时UI的设计也需要及时和功能的设计统一,否则将会造成UI迁就功能而导致用户使用体验下降的影响。

3. 实现阶段

实现要着眼当前阶段的核心需求,尽快产出可用产品。不仅能尽快发现问题,还能快速提振团队信心,助力项目平稳发展。

4. 测试阶段

学会对http请求和websocket请求测试

  • http请求使用MockMvc模拟请求并采用数据库回滚方式功能进行多次测试。
  • websocket请求本地建立客户端类,模拟多个客户端实现多线程模拟请求测试功能。

5. 发布阶段

发布阶段要做好数据防护,开发和上线隔离,保护数据安全。

6. 维护阶段

在软件发布后,不可避免地会出现诸多使用中的Bug,对于不同级别的Bug我们需要分类处理,严重影响使用体验的Bug需要立即修复,无伤大雅的Bug可以留待下一次发布新版本时再进行整改。

三、心得

结对编程我感受到了倾听的重要性。与同伴共同工作,我们需要不断交流和协商,确保我们的想法和实现方式是一致的。这也锻炼了我倾听和尊重他人观点的能力。

团队项目中我们合作得非常愉快,利用研讨室集中敏捷开发,大家各尽所能,充分交流。在这个过程中,学会如何有效地分配任务、解决冲突以及与团队成员密切合作是至关重要的。

...全文
100 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

72

社区成员

发帖
与我相关
我的任务
社区描述
2024年北航敏捷软件工程
软件工程团队开发结对编程 高校 北京·海淀区
社区管理员
  • clotho67
  • Yeyanhan
  • HJin_Gwok
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧