个人作业-提问回顾与个人总结-20373965史泽宇

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

一、问题回顾

第一次博客作业

1. 性格组合对于合作的影响是否可以量化?

  • 上下文(第四章):

人和人不一样,在和别人合作的时候要注意各人表达观点的方式和思考的方式不尽相同,请看网上关于MBTI的文章。测试并分享各自的MBTI类型,讨论不同性格对合作有多大的影响。

  • 资料:Barrick, M. R., & Mount, M. K. (1991). The Big Five personality dimensions and job performance: A meta-analysis. Personnel Psychology, 44(1), 1-26. 该研究通过对多项研究的元分析发现,大五人格维度中的外向性、宜人性和尽责性与工作表现存在显著相关性。

  • 困惑:在网络上阅读相关文献和资料后,文献显示人格对于一个人工作表现有显著相关性,这是一个公认的事实。但怎样的性格组合、性格量化能最大化一个团队的合作效率?相关的研究甚少。

  • 解决:暂时还没有从课程中想明白这个问题,这个问题还是比较复杂的。

2. 矛盾的好处和风险是什么

  • 上下文(第六章)

一些项目需要很多暗箱操作和政治角力才能搞定,Scrum会把这些矛盾都摆到明处,这有好处,也有风险。

  • 资料:网络中搜集到一些项目中存在暗箱操作和政治角力的原因。权力和资源分配:在团队中,不同的人员可能有不同的权力和资源需求,导致团队内部存在着权力斗争和资源争夺。意见分歧:在团队中,不同的人员可能对于项目目标、计划、流程等方面有不同的意见和想法,导致团队内部存在着意见分歧和冲突。目标压力:项目开发中通常有时间和成本等压力,因此可能会出现一些成员为了完成目标而采取不公开的手段,例如做一些妥协、选择性忽略某些问题等。外部干扰:项目开发可能会受到外部因素的影响,例如客户需求变更、市场环境变化等,导致团队内部出现一些不确定性和摩擦。

  • 困惑:这句话的“摆到明处”,“好处”、“风险”是什么,作者并没有明确的解释,读到这里的时候,我的理解是某些问题可能需要保密或者需要更加细致的讨论和处理,公开化可能会带来不必要的麻烦和风险。好处是敏捷开发流程中更加公开透明,不知道理解是否正确?

  • 解决:团队开发过程中,只要有人的地方就有江湖,团队开发过程中的因素很多,往往与预期的目标有所出入是正常的,这就需要开发流程中更加公开透明,及时沟通。

3. 快速原型法是否也是一种快速占领市场方法,好处坏处又是什么?

  • 上下文(第八章)

另一个办法是快速原型法—用一两个先锋去探路,...,不妨派一个人写一个简单的应用,实际看看开发/调试/部署/支持的情况如何,这样才能给项目估计提供更好的数据支持。

  • 资料:之前记得了解过国内一些大的公司抢占市场的方法是“广撒网”式的战略,在各个领域先投入小规模资金和团队进行实验,如果项目得到预期成果有不错的前景,公司才会在该项目上投入大量资金,进行深入开发。

  • 困惑/理解:读到这里的时候,我想快速原型法和公司“广撒网‘’式的战略实为异曲同工之妙,小资金的投入来支持前期方向探索,大规模后续投入实现盈利。这种方法的好处无疑是减少项目半途而废带来的资金浪费,“抛砖引玉”带来后续的盈利,但我想这种方法是不是也有坏处,该方法以盈利为导向,一些有意义、前沿的、短时间见不到成果的项目是否会得不到资金的支持?

  • 解决:好处居多,坏处就是资金花费比较多。

4. PM怎么得到大家的支持,有什么普适性的要求吗?

  • 上下文(第九章)

PM如果得到团队成员的支持,你会在各种会议或流程中浪费大家的时间,发一些大家不读的“Status Mail”;不能凝聚团队,无法形成共识,你不了解团队的状态...

  • 资料:查询资料后了解到“首先要建立信任,团队支持的基础是相互信任。作为产品经理,应该始终保持诚实和透明,与团队成员建立良好的关系。倾听团队成员的意见和建议,及时回应他们的问题和需求。其次要时常尊重和赞赏:团队成员需要感受到他们的工作受到尊重和赞赏。当团队成员取得成就时,应该及时地给予认可和表扬,这可以激励他们更加努力地工作。”

  • 困惑/理解:除了网上查找到的资料,我认为PM要获得支持,也要有清晰的愿景,PM需要与团队共享清晰的产品愿景和目标,以便所有人都了解为什么正在做这个产品以及它的长期目标是什么。团队需要知道他们的工作如何为实现公司的愿景做出贡献。正如作者所说,当队友期望你是“鸡”的时候,PM最好不要当一只“飞来飞去”的鹦鹉。或许,PM要获得团队成员的支持,还有更加优先的要求?

  • 解决:这个问题就是考验PM的情商,涉及诸多方面,我认为这跟PM的性格有关系,一些人天生就有领导者的性格和气质,与后天的培养关系不大。

5. 怎么评判用户对于软件界面的认知阻力大还是小呢?

  • 上下文(第十二章)

用户体验设计的一个重要目的就是要降低用户的认知阻力,即用户对于软件界面的认知和实际结果的差异。

  • 资料:一些资料显示有以下三个办法:

    • 用户反馈:通过对用户反馈的分析,可以了解用户对软件界面的理解和操作是否顺畅,以及他们在使用中是否遇到了困难和挑战。

    • 用户测试:在软件设计的早期阶段进行用户测试,可以帮助设计团队了解用户对于软件界面的理解和操作,从而改进软件的设计和用户体验。

    • 用户调查:通过问卷调查等方式,可以了解用户对软件界面的使用体验,包括易用性、直观性、可操作性等方面,以便进行针对性的改进。

  • 困惑/理解:既然要降低用户对于软件界面的认知阻力,则首先要调查或者判断认知阻力的大或小,越是庞大的用户基数,用户的种类越多,如何评判用户对于软件界面的认知阻力便会越困难。就我自己的经历来说,对于我和身边的朋友家人来说,如果一个软件不是非用不可,那么只要这个软件不好用就会卸载掉,并不会花时间和精力点进这个软件,给软件专门写自己的意见,再点击确定,这似乎是一很费时间的过程。如下图微信的意见反馈功能,你需要首先点击菜单、选中意见反馈、写问题、贴图片、写联系方式、最后点击提交。

  • 解决:可以通过多种评估方式进行评估,要实现准确的评估的难度较大。

 

二.是否原来的问题还不明白

没有

三.是否产生了新的问题

没有

四.各阶段体会知识点

在项目的六个阶段,我从实践中学到了以下知识点:

  1. 需求阶段:需求获取与确认 在需求阶段,我学到了如何与客户、利益相关者交流来了解项目的需求,并对这些需求进行确认。需求收集方法包括访谈、问卷调查、观察和文献研究。需求确认确保了项目在后续阶段的发展方向与客户的期望一致。

  2. 设计阶段:设计模式 在设计阶段,我学到了如何使用设计模式来促进代码的可重用性和灵活性。设计模式是在软件开发过程中反复出现的某类问题的通用解决方案。典型的设计模式,如单例模式、工厂模式、观察者模式等,可以在不同项目中反复使用。

  3. 实现阶段:重构 在实现阶段,我学到了如何在编码过程中进行重构。重构是对软件内部结构的一种调整,旨在改善代码的可读性和降低维护成本,同时保持软件的外部行为不变。重构技术,如提取方法、合并重复的代码等,有助于提高软件质量。

  4. 测试阶段:单元测试 在测试阶段,我学到了如何编写单元测试。单元测试是一种软件测试技术,它用于测试代码中的最小可测试单元,如一个方法或一个类。通过编写单元测试,我们可以确保代码中的各个部分在各种条件下正常工作,从而提高软件的质量和可靠性。

  5. 发布阶段:持续集成与持续部署 在发布阶段,我学到了如何使用持续集成(CI)和持续部署(CD)来加快发布过程。通过自动化构建、测试和部署流程,CI/CD有助于保持软件的可交付状态并快速将更改部署到生产环境,降低软件的发布风险。

  6. 维护阶段:性能优化 在维护阶段,我学到了如何对软件进行性能优化。性能优化包括找出软件的性能瓶颈并针对性地进行优化,提高软件的运行效率。性能优化技术包括内存优化、算法优化等,这有助于提高软件在实际运行环境中的表现。

五.理解或心得

软件工程(Software Engineering)是一门研究如何有效地开发和维护高质量软件的学科。它涵盖了从需求分析、设计、编程、测试到维护等软件开发生命周期的各个环节。学习软件工程课程可以帮助我们更好地理解软件开发过程中的各种方法、工具和最佳实践,从而提高我们的编程技能和项目管理能力。

在学习软件工程课程的过程中,我对以下几个方面有了更深入的理解:

  1. 需求分析:需求分析是软件开发过程中的关键环节。它涉及与客户沟通,了解他们的需求,将这些需求转化为明确的软件需求规格。这一阶段需要密切关注客户的需求,确保项目的成功。

  2. 软件设计:软件设计阶段包括架构设计、模块设计和接口设计。在这一阶段,我们需要根据需求规格来设计软件的整体结构和各个组件的细节。设计阶段的目标是确保软件系统的可扩展性、可维护性和高性能。

  3. 编码与实现:在这一阶段,我们需要使用编程语言将软件设计转化为实际的代码。选择合适的编程语言和编程范式(如面向对象编程、函数式编程等)对软件的质量和性能有很大影响。

  4. 测试:软件测试是评估软件质量的重要环节。它包括单元测试、集成测试、系统测试和验收测试等多个层次。测试的目的是发现并修复软件中的缺陷,确保软件满足需求规格和性能要求。

  5. 软件维护:软件维护包括对已发布软件的修改和更新。这可能涉及到修复错误、增加新功能或优化性能等方面。软件维护是确保软件长期稳定运行的关键。

总而言之,这学期的课程体验还是不错的,对于软件开发过程中的需求分析,软件设计,测试与维护都有更加深刻的理解,唯一的建议是文档太多了其实没有太大的必要,希望软件工程课程越来越好!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值