起笔:我希望先简单总结一下我在这门课程中经历的一些工作以及学习到的一些东西,再对自己、队友、老师做一个评价。然后我想提出一些对这门课程的一些看法和建议,与自己的心得体会。

第一部分:

我在这门课上经历了个人开发、结对开发、团队开发三个项目。分别用三个词来形容它们我认为是:高效、愉悦、拖沓。

个人开发真的让人很烦躁,基于种种原因(文件太大、内存不足、系统更新、时间紧张),但毋庸置疑的是问题解决的层次逻辑非常清晰,psp表格也填的很明朗,即使在某些问题解决上卡壳了很久,总体的过程还是十分高效没有浪费时间。

结对开发时我们在单个问题的解决上显然快了许多,所以没有遇到非常棘手让人头疼的麻烦(得益于hzp大佬队友的帮助),但由于我们日常工作时间地点上的一些冲突导致我们沟通存在少许障碍,有时候打电话或者线上聊对于问题的描述会出现一些偏差,无形之中浪费了一些时间。总的来说还是两人在一起同时工作的效率最高。

重点想谈一谈团队开发的过程:我们小组的项目我认为在我心目中是完成的是不合格的,要甩锅的话,我肯定首先甩给组长。诚然,组长完成的工作量是组内最多的之一,但是我认为组长作为团队的核心,他有着更重要的责任,在如何解决个别队员积极性不高、团队时间与进度安排、项目管理与会议博客更新等问题上都做的不够。或许有人认为我站着说话不腰疼或者是个甩锅队友的坏孩子,但是我还是会理直气壮的说,几乎每次开会、博客更新、任务都是我在群里主动询问或者提出的,乃至于到了7月份我问这些问题的时候常常得不到所期望的回答(若有质疑我可以随时截图为证),我觉得最可怕的就是空闲的队员们得不到自己的任务,等到有其他事情了结果又开始被逼迫,而不想做的队员们却没有任何压力,在这一点上我认为首要责任在于组长。

关于我自己的工作,我给自己评分为A,至少7月中旬组长告诉过我,我只需要完成所有数据接口,接下来的工作交给他们,这部分我认为我全部完成并在测试文件中成功实现了,对接中据说遇到了一些奇怪的问题是队友解决的,所以我不敢给自己打A+。

关于这门课,助教和老师都很认真,我提出两点建议

1. 这门课比较适合在小学期自由选修,这样真的方便于更好的模拟公司制度的管理环境

2. 效绩考核、跳槽辞职、辞退裁员等等这种制度太有必要了,对于一个团队来说,热情与积极性我认为比稳定更重要

3. deadline的设置希望能够确定一些,可以一开始给一个弹性的时间范围,但是不希望改动太大,因为毕竟同学不是全心全意一门课

(时间紧迫,叙述潦草,暂时记录一下,8月12日回到家更新)

8.14到家更新:

引用队友一句话:任何一个功能的实现,需要数据库、前端后端良好的配合。

1.菜鸟的开发过程中哪一步最容易被忽视?

我记得上次俞昊然校友来做分享时给我们强调的最关键的一点就是“技术选型”,但是懵懂的我们并不理解要在这上面花费多大的心血。前期对技术一无所知之时花了太多时间在造轮子上,技术调研上队员没有做好,导致只能让组长一个人单方面决定,没有足够深入的调研选择。

导致的结果就是“乱”,走一步看一步,多小的一点事儿都只能看“队长”,给团队的leader增添了许多压力。除了队内的强调之外,我的建议:

a. 选题报告之后应该空出更多时间来做调研,之前老师定的一周(减去其他课程时间实则只有两三天)时间太短,实现不了“从无到有”

b. 各组之间的调研可以进行更多分享,不仅仅局限于一次简单的报告,可以针对项目技术类似的一些组进行多组会议

2.团队开发的队长怎么与队员相处?

或者说队长与队员应该保持怎样的关系?我从summer workshop回来也算是当过一次project的组长,虽然只有5人四天的工作,但维持良好的关系的确是不可或缺的。(队员会争吵、会不服气、会因为自己的想法被diss而沮丧,如果按照着别人的想法来做,人类是真的很容易就不上心,尤其是当我们做着毫无金钱收益的工作时。这一点我觉得需要队长和队员的social来解决)主要还是队员会不积极,会用一些理由来推辞安排的工作甚至不回复。关于这一点我的建议是:

a. 任务安排或者重要问题交流时必须面谈,至少是语音,不带任何感情色彩的几行字的安排和交流效果很多时候都更差

b. 组长在做任务安排时的ddl需要适当提前,保持一定弹性,无论是对项目进展还是与队友妥协的时候都会留有一定空间

c. 针对大家用的最多的借口“赶其他的项目”,必须要求本人做出一定字数的解释,其他ddl为什么存在?究竟是不可避免还是之前拖欠。关于这种请假方式,如果次数超过一定上限可以直接影响他的绩效。

建议都是建立在同学关系之上的,或许在企业内,某一些问题根本不会存在,某一些内容根本无法容忍早就被炒鱿鱼了,但我想说学校还是学校,这些问题只能改善,无法根除。

USTC现代软件工程--summary的更多相关文章

  1. USTC《现代软件工程》春季学期——第一次个人作业:词频统计

    截止日期 2018年3月29日23:59 要求 1. 对源文件(*.txt,*.cpp,*.h,*.cs,*.html,*.js,*.java,*.py,*.php等,文件夹内的所有文件)统计字符数. ...

  2. 20162314 《Program Design & Data Structures》Learning Summary Of The First Week

    20162314 2017-2018-1 <Program Design & Data Structures>Learning Summary Of The First Week ...

  3. Summary of Critical and Exploitable iOS Vulnerabilities in 2016

    Summary of Critical and Exploitable iOS Vulnerabilities in 2016 Author:Min (Spark) Zheng, Cererdlong ...

  4. 软件工程(C编码实践篇)学习心得

    孟繁琛 + 原创作品转载请注明出处 + <软件工程(C编码实践篇)>MOOC课程 http://mooc.study.163.com/course/USTC-1000002006 软件工程 ...

  5. 敏捷软件开发VS传统软件工程

    敏捷软件开发:又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新兴软件开发方法,是一种应对快速变化的需求的一种软件开发能力. 与传统软件工程相比,它们的具体名称.理念.过程.术语都不尽相同 ...

  6. Atitit 软件工程概览attilax总结

    Atitit 软件工程概览attilax总结 1.1. .2 软件工程的发展 进一步地,结合人类发展史和计算机世界演化史来考察软件工程的发展史. 表2 软件工程过程模型 表2将软件工程的主要过程模型做 ...

  7. 三个不常用的HTML元素:<details>、<summary>、<dialog>

    前面的话 HTML5不仅新增了语义型区块级元素及表单类元素,也新增了一些其他的功能性元素,这些元素由于浏览器支持等各种原因,并没有被广泛使用 文档描述 <details>主要用于描述文档或 ...

  8. 软件工程的引入:Scrum开发框架总结

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点如下: 软件工程概念 敏捷开发过程scrum 一.什么是软件工程?请用一句话描述. 软件工程是一门研究性的学科:它用工程化 ...

  9. 软件工程里的UML序列图的概念和总结

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习! 软件工程的一般开发过程:愿景分析.业务建模,需求分析,健壮性设计,关键设计,最终设计,实现…… 时序图也叫序列图(交互图),属于软件 ...

随机推荐

  1. 2018-10-25-weekly

    Algorithm 94. 二叉树的中序遍历 What 给定一个二叉树,返回它的中序遍历. How 二叉树的中序遍历顺序为左-根-右,可以用递归来解,对左子结点调用递归函数,根节点访问值,右子节点再调 ...

  2. docker设置proxy

    该方法是持久化的,修改后会一直生效.该方法覆盖了默认的docker.service文件. 1. 为docker服务创建一个内嵌的systemd目录 mkdir -p /etc/systemd/syst ...

  3. 触发写Redo&nbsp;Log的条件

    参见:http://www.ixora.com.au/notes/redo_write_triggers.htm http://www.eygle.com/archives/2005/02/redoa ...

  4. RedisTemplate 事务处理方法 watch multi exec 的使用

    @Autowired RedisTemplate<String,String> redisTemplate; redisTemplate.execute(new SessionCallba ...

  5. 01-跨域-jsonp原理

    jsonp能跨域,并不是因为它发送了ajax请求,而是利用动态创建的script标签. script标签没有收到浏览器同源策略的限制,是可以跨域访问的. 创建的script标签,把其src指向请求的服 ...

  6. C++指针的指针和指针的引用

    https://www.cnblogs.com/li-peng/p/4116349.html

  7. vim安装bundle和使用

    一.准备工作 安装Git(因为下面我们选择的插件管理器需要使用到它)安装其他插件前首先需要选择一个Vim插件管理器,我这里选择的是Vundle,Vundle的工作过程中需要通过Git自动从远程创库同步 ...

  8. Linux内核设计与实现 总结笔记(第二章)

    一.Linux内核中的一些基本概念 内核空间:内核可独立于普通应用程序,它一般处于系统态,拥有受保护的内存空间和访问硬件设备的所有权限.这种系统态和被保护起来的内存空间,称为内核空间. 进程上下文:当 ...

  9. promise以及async、await学习总结

    Promise/async.await帮我们解决了什么 它给我们提供了一种新的异步编程解决方案,同时避免了困扰已久的回调地狱 // 异步的处理可能会产生这样的回调地狱(第二个异步操作和第一个异步的结果 ...

  10. CSU 1553 Good subsequence(RMQ问题 + 二分)

    题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1553 Description Give you a sequence of n nu ...