提问回顾与个人总结

提问回顾与个人总结

项目 内容
这个作业属于哪个课程 2020年春季计算机学院软件工程(罗杰 任建)
这个作业的要求在哪里 提问回顾与个人总结
我在这个课程的目标是 提高自己的代码水平,熟悉团队合作
这个作业在哪个具体方面帮助我实现目标 反思总结

提问题的博客

软工个人博客作业

对自己曾经提出的问题进行解答。

  • 问题1:”软件工程是不是教那些不怎么会写程序的人开发软件?“

    并非如此。在实际开发过程中,代码的质量是十分重要的。高质量的代码可以让团队的合作变得轻松愉悦,而低质量的代码要耗费其他人更多的时间、精力进行测试、对接工作。程序员的代码水平在软件工程中显得尤为重要,低质量的代码不会被隐藏起来“滥竽充数”,反而会在测试等环节被暴露出来。

    诚然,软件工程更注重如何高效率地生产出高质量的软件,但要依靠测试来提高代码质量显然是不可能的。所以软件工程并没有弱化程序员代码水平在开发中地影响,反而提高了代码质量的地位。

  • 问题2:为什么要结对编程

    合作能更快地解决问题。我提出这个问题,是因为以往的开发任务,都是时间充沛、能够一个人完成的任务。但在软件工程这门课中,我们要在有限的时间内完成体量庞大的任务,有时候一个人就有些吃力。结对编程的话,两个人在一起交流能够一起解决问题,交替工作也给人留下了休息的空间。总体来说确实能够提升效率。有的问题商量着来确实效率很高。

  • 问题3:非专业的PM会不会对团队造成伤害

    会。PM在分工、原型设计上的盲目性会导致团队的开发事倍功半。而且PM不参与代码的话很难把握项目的进度以及工程质量。如果没有专业的PM,那团队一定要有一个“老大哥”式的任务来指导大家进行工作。总之团队最好要有一个核心。

  • 问题4:“好的想法会赢”吗?

    不一定。实际上很多设计在最终都要做出让步。团队的技术资源、时间资源都是制约条件。尤其软件工程只是一门课程,大家对项目的付出很有限。不仅是这门课程,现实中也有很多这样的例子。有时候好的想法不一定会赢。

  • 问题5:如何维持一个磨合好的团队

    关于这个问题,我们在Alpha阶段结束后进行了强制换人。我们当时决定换出我们的测试员,因为换出他我们团队的损失是最小的。维持磨合好的团队实际上是很不容易的,尤其是让团队成员保持高积极性。我能想到的办法就是升职加薪画大饼,除此之外别无他法。更换领导当然会改变团队的氛围,好的领导能凝聚团队,差的领导团队就是一盘散沙。

新问题

  • 问题一:

    团队贡献分的执行问题。贡献分本来是一个奖励政策,相当于前文提到的“升职加薪”,但是在实际执行中效果并不是很好,最终团队投票占了很大的比重。课程组用了很多办法避免开发中出现“抹不开面子”这种情况的发生,但是在最终评分上却没能体现出足够的奖励机制。希望课程组对贡献分做更详细的要求,比如在每日会议上记录贡献分的详细分配情况。

新知识

  • 需求

    NABCD法进行需求分析。典型用户帮助我们很好地定位了项目的功能。

  • 设计

    功能规格说明书、设计规格说明书、原型设计。了解了文档的重要性,学会了使用原型设计工具。

  • 实现

    一份好的接口文档可以在实现阶段省去很多交流的时间。设计良好的接口可以降低代码耦合度,在前后端对接时帮助找出潜在的问题。

  • 测试

    使用单元测试保证后端代码质量。前端使用兼容性测试反馈bug。

  • 发布

    宣传很重要,能根据用户需求改进同样重要。

  • 维护

    需要每天检查软件的运行情况,有小bug及时修复,重大的修改要慎重。

总结

  • 个人项目

    项目难度并不大,很大程度上是为结对编程服务的。该阶段主要让我们熟悉一些软件开发的流程,关于git的使用等等。测试真的很重要。

  • 结对项目

    我是首次接触到结对编程,总体的体验良好。两个人在一起工作确实达到了1+1>2的效果。但我和结对对象本身就很熟,所以免去了很多沟通上的成本。工作开展很顺利。

    我学会了沟通,也学会了更多关于git管理、单元测试等方面的知识。

  • 团队项目

    我作为PM,写了很多篇博客,参与了一些前端的开发。总体来说学习了一些HTML和JS的知识,对敏捷开发流程有了一个更深入的了解。在软件开发中,写代码只是工作的一部分,维护文档、沟通交流与开发一样重要。课程组强制要求的十次会议真的十分重要,有效地促进了开发人员的沟通,对项目按时完成有着重要意义。

    虽然在开发中遇到了各种各样的问题,但是软件工程这门课上我还是收获颇丰的。

你可能感兴趣的:(提问回顾与个人总结)