提问回顾

学期初疑问回答

学期初疑问博客

教材中说,PM在衡量需求时需要方方面面的能力与研究。可是,当下许多互联网IT公司只承担外包业务,即客户给什么需求就实现什么需求,甚至可能不要求其它先进的功能。此时,开发团队还需要一个全能的PM吗?

这个问题,感觉自己提的还是比较nice的。经过了一个学期的软工课程,在团队项目的两轮迭代中,我充分感觉到了PM的重要性。PM首先必须对需求非常了解,对技术有一定的掌握,这使得他可以成为团队的中枢神经。对于提出的外包业务问题,如果按部就班完成所有客户规定死的功能,或许只要求团队的技术高就好,此时PM的作用只是在于管理;更一般的情况下客户寻求软件团队都是为了占有市场、推广自己的产品,因此PM不仅仅在管理这个团队,还要为整个项目做布局。这就是一个全能PM必不可少的品质,一个团队也不能缺少这么一个神经中枢。

我们都知道,客户的需求变化是极其随机且难以预测的。软件工程要求开发团队在coding之前做足准备工作以更好地处理这些需求变动,然而计划赶不上变化快(“神秘的程序员们”一篇漫画有提到),我想知道,当下企业中遇到这种情况是选择重构(能高效实现需求,但耗时耗力)多、还是选择补丁(这么说不准确,能省时省力实现,但增加了负载,效率不高)、还是因为变动过大而放弃项目?

好像通过这个学期的课程,我并不能很深的了解到。但就我们的团队项目来说,我们经历了一次重构,原因在于原有框架和语言团队不熟悉,导致在之上进行改进难度陡增,所以我们组的PM进行了重构。事实证明,重构有一定的好处,但是并不是一劳永逸的解决方法。重构意味着从头开始重新处理所有问题,我们并不十分清楚原框架下的开发过程中遇到了哪些问题。因此,我认为,只有在实在无法容忍的情况下,再进行重构,但这之前一定要进行充分的可行性论证。

“用户需要帮助,但用户没有这么笨。”, “用户需要帮助,需要很多帮助。” 对于上述两种情况开发团队如何对其进行界定?

关键在于看软件的需求与定位明确与否。用户是软件的使用者,软件的需求分析文档中典型用户应该包括了所有软件主要针对的使用者群体。开发团队只需要从典型用户中进行分析,即可针对用户体验进行优化。而软件团队的产品经理除了与团队一同分析典型用户外,还要在开发的同时尽可能去得到一些相关反馈。软件团队对用户体验优化的重要途径在于接收真实用户的反馈与评价。

软件的设计文档是否从需求至实现进行了全部设计?软件设计文档是否规定了每一个类、每一个函数的参功能、参数、返回值,但不涉及到函数的实现?可是,实现过程中一定会出现意料之外的情况,设计可能也随之改变,请问怎样的设计文档才算作合格或优秀的设计文档?

这个问题我还真的不知道答案,希望得到老师或者助教的解答。

哲学家的宗旨是:我思,故我在;科学家的宗旨是:我发现,故我在;工程师的宗旨是:我构建,故我在。工程师在构建的过程中,是否受科学家、哲学家思想引领与指挥?灵感来源于生活,来源于一切事物,工程师除了构建,其他方面(如其它学科领域、人文、艺术、哲学等)的涉猎与接触是否对工程师的构建有帮助?

我的想法是,是有帮助作用的。工程师虽然工作时接触的都是工程领域相关的内容,但是其无论作为整体还是整体的一部分都是要应用于实际生活的。作用于实际生活的事物必然来源于实际生活。软件工程是一门艺术,他的方法论其实是将人们日常协作处理事物的方法改进、映射到软件工程领域,所以其实从本质上来看,它和其他学科、人文、艺术、哲学都是相通的。

各阶段学到的知识点

  • 需求:学会了通过NABCD模型进行需求分析的方法,Need Approach Benefit Competitor Delivery
  • 设计:进行系统总体架构设计时需要综合考虑需求与实现成本,进行局部实现细节设计时应综合考虑重点需求与用户体验
  • 实现:实现应该在设计完成并经过多次商议通过之后再进行实现,实现(scrum)期间,实现方法与思路不能再改变。所以本质上只是一个自然语言转化为机器语言的过程,重中之重都在设计上了
  • 测试:担任了两轮迭代的测试工作,首先明白了测试的基本流程,测试内容;其次,测试应该边开发边测试边反馈问题;还有就是测试工具的操作与运用
  • 发布:发布前测试应该做好,根据不同情况决定是否携带bug发布。发布过程中一定要注意收集各个方面的用户反馈,如用户体验、用户更高层次的需求等
  • 维护:需要使用一定的维护工具,如针对数据库要做好定期备份、服务器要检查负载情况等等

[BUAA_SE_2017]提问回顾的更多相关文章

  1. [BUAA 软工]提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 北航软工 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 学习如何以团队的形式开发软件,提升个人软件开发能力 这个作业在哪个具体方面帮助我实现目标 督 ...

  2. [BUAA软工]提问回顾与个人总结

    提问回顾与个人总结 项目 内容 所属课程 2019春季计算机学院软件工程(任健) 所属作业 提问回顾与问题总结 课程目标 理解软件工程的作用和重要性,提升工程能力,团队协作能力 作业目标 回顾软工课程 ...

  3. SE_WorkX_提问回顾与个人总结

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求:正所谓"实践是认识的来源.目的.动力以及检验认识真理性的唯一标准",在经历了一个学期的学习和实践后,请大家写一 ...

  4. BUAA SE | 提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 深入理解软件工程 这个作业在哪个具体方面帮助我实现目标 ...

  5. BUAA_2020_软件工程_提问回顾与总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 提问回顾与总结作业要求 我在这个课程的目标 了解软件工程的技术,掌握工程化开发的能力 这个作业在哪 ...

  6. 2020BUAA软工提问回顾和个人总结作业

    2020BUAA软工提问回顾和个人总结作业 17373010 杜博玮 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾和个人总结作业 我在 ...

  7. BUAA 2020 软件工程 提问回顾与个人总结

    BUAA 2020 软件工程 提问回顾与个人总结 Author: 17373051 郭骏 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾 ...

  8. BUAA2020软工作业——提问回顾与个人总结

    项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 提问回顾与个人总结 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...

  9. 【BUAA软工】提问回顾与个人总结

    链接到以前提问题的博客 在之前的博客我曾经提问过以下几个问题 为什么单元测试必须由写程序的人完成? 过早优化,过早泛华:何时为过早? 为何使用goto语句? 用户需求分析:分而治之,如何分? 兼容性测 ...

随机推荐

  1. d3 js emberjs handlerbarjs

    http://handlebarsjs.com/ http://emberjs.com/ http://jsbin.com/d3ember-barchart/13/edit?html,output

  2. 【commons】IO工具类——commons-io之IOUtils

    本文转载自xingoo: https://www.cnblogs.com/xing901022/p/5978989.html 一.常用静态变量 public static final char DIR ...

  3. [BZOJ3772]精神污染 主席树上树+欧拉序

    3772: 精神污染 Time Limit: 10 Sec  Memory Limit: 64 MB Description 兵库县位于日本列岛的中央位置,北临日本海,南面濑户内海直通太平洋,中央部位 ...

  4. PyQt5 笔记(02):嵌套布局

    如前一篇笔记,我们还是只讨论两层嵌套布局的情况. 前面的布局有一个缺点:有三个内层布局,则需要三个空部件.那若有十个内层布局呢?显然会让人不舒服. 刚才在玩 Qt Designer 时,发现了一个更好 ...

  5. 【LG3250】[HNOI2016]网络

    [LG3250][HNOI2016]网络 题面 洛谷 题解 30pts 对于\(m\leq 2000\),直接判断一下这个个点是否断掉一个交互,没断掉的里面取\(max\)即可,复杂度\(O(m^2\ ...

  6. JAVAWEB dbutils执行sql命令并遍历结果集时不能查到内容的原因

    遍历结果集时只遍历bean对象才会只输出第一行那种内容(第一行是输出了UserEntity类实例化的对象),所以这里需要 re.getRepoTableName() 才能通过对象调用相对应的内容 这样 ...

  7. Java并发工具类(二):同步屏障CyclicBarrier

    作用 CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point),才继续执行. 简介 CyclicBarrier 的字面意 ...

  8. 关于selenium的智能等待页面加载的问题

    我们经常会碰到用selenium操作页面上某个元素的时候,需要等待页面加载完成后,才能操作, 否则页面上的元素不存在,会抛出异常. 或者碰到AJAX异步加载,我们需要等待元素加载完成后,才能操作. 首 ...

  9. 3.PO如何给开发团队讲好故事

    敏捷开发系列文章目录 讲出符合开发团队味口的故事. 上一章说了敏捷开发团队的构成与迭代过程,本章重点说一下迭代第一天的计划会议.熟话说“好的开始就成功了一半”,一个迭代的计划会议做得好不好确实直接注定 ...

  10. Jmeter接口测试(七)用例数据分离

    之前我们的用例数据都是配置在 Jmeter Http 请求中,每次需要增加,修改用例都需要打开 jmeter 重新编辑,当用例越来越多的时候,用例维护起来就越来越麻烦,有没有好的方法来解决这种情况呢? ...