【个人阅读作业】软件工程M1/M2总结
链接:”看《快速软件开发》的五个问题“
http://www.cnblogs.com/leiyy/p/4027759.html
一、较为明白的问题
1. 在文章的第一个关于Square_Tech的案例中,代码测试和优化都是在所有程序完成以后才进行的,这应该也不符合快速软件开发的要求吧。如果测试工程师在最开始的时候就加入到软件开发中的话,软件开发进程会不会更快呢?
在团队项目之前,虽然并不是特别了解测试工程师的工作内容,但想到既然是软件开发项目中的一个单独列出来的角色,那就肯定大有用处。当初为什么提出这个问题,也是因为在写程序的时候都是自己设计测试用例,而且都是代码编写完了以后做测试。但是看了《快速软件开发》这本书以后,觉得测试工作应该是在软件开发初期就开始的。由于这本书没有具体介绍这方面的问题,所以我就参考了其它书和博客园里的其它博客。然后发现测试工程师不只是编写测试用例,他有的时候扮演着产品经理的角色,要站在用户的使用和需求角度去思考软件的测试和问题报告,同时还要根据能够想到的问题和需求与软件开发工程师进行协商,协助SDE 的开发工作。在M1阶段的时候,我们团队并没有考虑到测试的问题,只是想着如何去实现学长的这个项目,更详细点说就是怎样把这个APP移植到安卓手机上来。或许是第一次接触的原因,根本不知道该如何下手,联网阶段出现问题以后,项目就搁置了,因为预先不知道未出现这个错误,所以怎么也调试不好。
2. 我一直分不清楚几个PM之间的区别。虽然在网上查了一些资料,但还是不明白Product Manager 和 Program Manager之间的区别是什么。在《编程之美》一书中了解到微软中的PM属于R&D,就是说Program Manager属于研发岗,但是《移山之道》在移山公司最初成立的时候又说PM不用写代码,是这样的吗?
现在想想,这个问题一下子就暴露出了自己捉急的智商和对软件行业的不了解。产品经理和项目经理除了都有一个后缀”经理“以外,应该就没有什么相同之处了吧,也不知道当时自己是怎么想的。打个比喻说的话,产品经理就是一座桥,连接了用户和项目团队;也可以是一个集市,供用户和项目团队交易。而项目经理就是leader,如果把项目组成员比作神经元,那么项目经理就是神经中枢。
3. 其实我不懂既然有了有效开发,为什么还需要快速开发。因为从《快速软件开发》做的比较可以看出,有效开发的产品要好于快速开发的,而且进度和成本不会太差。我知道软件行业竞争力很大,谁的产品先出来,谁就有可能抢占市场,但是如果没有足够好的产品,当更好的产品出来后,不也是会被取代吗?就算可以先上市后在做调整,但是 有可能因此而花费的精力会更大,所用时间会更长。
这个问题我现在是这么想的,”快“和”精“,也就是”快速开发“和”有效开发“往往难以取舍。有的东西你为它的精致负责,它不需要,这是我在北航门户网站实习明白的一些东西。实习的时候,我希望每个我负责的专题都能够达到自己想要的效果,能做吗?负责的老师跟我说,只要想做都是能够做出来的,但是划算吗?有个词叫做”性价比”,性价比不高的话,又何苦呢。另外一方面,就是不能偏科的道理,任何一个具有功利性质的项目,包括商业项目和课堂大作业都是这一类,商业项目求得是赢利,而要赢利就肯定要打败竞争对手,市场变幻风云,当然时间就起了很大的决定性作用,先打入市场总会占得一定的先机,有更加充足的时间进行下一步的布局和调整等等有利的因素。而每一个课堂大作业都有一个deadline,团队项目之间存在竞争,这个时候时间就成了定值,也就是说时间是一定的,就看你是走到撒哈拉还是好望角了。总的来说,就是两个东西,在有效开发的前提下提高效率,或者在快速开发的前提下提高质量。怎么感觉说了跟没说一样。
4. 一个小型项目团队中,到底是产品经理还是测试工程师(假设都只有一位)更了解这个产品?
我这个问题应该是没有问好,没有界定小型项目团队到底是多小的团队。不过就我们团队和软件工程这么课的其它团队而言,我发现最了解产品的不是测试工程师也不是产品经理,而是程序员。因为在一个小项目里面,对于产品的用户要求和其它非技术因素并不是程序员不能应付的,所以小项目的核心是技术,它不需要繁复的产品调研和设计,也不需要花哨和充满想象力的运营。百度和阿里虽然在各方面都不弱,但是由于两个公司的价值观和定位不同,百度更重技术,阿里更重其它。
二、还是糊涂的问题
5. 一个首席程序员团队的核心是首席程序员,但是这样的团队对于风险控制有极大的要求,如果这个团队中的首席程序员因为什么原因在中途离开了这个项目组,那么要保证这个项目的正常进行,这个团队可以怎么挽救,需要改造成其它什么形式的团队
其实我们这个团队应该就算是一个首席程序员团队。编程能力最强的一位队员顺理成章地成为了首席程序员,而且主动承担了最为艰巨的任务,虽然我们一开始并不知道联网这一块儿会这么棘手。庆幸的是他一直没想着离开这个团队,如果离开的话,或许这个项目就是宣告失败了。但是有一个问题就是,当他一个人在那儿研究并不断深入的时候,有一个问题会出现,就是其它队员会越来越难以介入,最终导致项目一步一步地往后推。而且首席程序员的情绪直接影响到其他成员,高兴的时候大家都高兴,焦躁的时候全别这种气氛笼罩。现如今,项目总算是有点点成果了,大多半都是依靠他的不断探索和努力,很感激他。不过我原来提的那个问题,因为自己并没有遇到,也很难找到一个其它例子,还是有些糊涂。
三、冒出来的新问题
1. 通过怎样的方式能让项目组的每一名成员都能发挥他的最大价值?对于一个小型项目团队来说,怎样进行项目分工更科学?
2. 一般来说,同一个软件开发项目在不同平台的实现都是一个团队完成的,而我们有好几个项目是接手上一届团队的,最开始的时候以为这是件好事,只是做维护而已,但是后来发现,这不是再创造的问题,而是重做。学长的代码是用oc写的,我们组没有一个会oc的,还有就是交流问题,毕竟不是团队成员,所以在沟通上总会不方便。所以我想问的是老师当初选了一些上一届的项目给我们继续做是出于什么样的考虑?
四、读文章的新体会
1. 大泥球问题。这个问题应该是软件工程初学者都会出现的问题吧。工程素养都还没有达到一定的水平,不会像高级软件工程师和老师们那样高屋建瓴地去看一个工程,或者是一个功能的一段代码实现,更多的是想到哪儿写到哪儿,所以系统性不够强,就形成了典型的大泥球问题。在后面做测试的时候发现需要修改好大一部分。只想着早知如此,何必当初。有了教训以后,我们后面做了充分细致的设计以后在进行实现,质量和效率都提高了不少。
2. 大教堂和集市问题。我们团队还是用了大教堂的形式。不过出现的问题就是当教堂里面的神父们水平都很低,参悟不了一些问题的时候,还是得把问题抛到市场上去聚集各方力量。我们在得知靠自己的力量搞定不了开发中的问题的时候,也只能厚着脸皮不断地请教老师,同学,学长了。
五、课程最后的总结
总结就一点,课程设计没错,是自己不够付出,基础不到位。不过一分耕耘一分收获,无论是大是小,做了,总是有点收获的。
【个人阅读作业】软件工程M1/M2总结的更多相关文章
- 个人阅读作业 --软件工程M1/M2总结
软件工程M1/M2总结 写在前面的话: 这学期的软件工程伴着考期的展开逐渐落下帷幕,回顾这学期的软件工程,我感觉我的热情在一次又一次的失落中逐步消耗殆尽,每个人对于这门课的体验都会有所不同吧,可以确定 ...
- 个人阅读作业——软件工程M1/M2的总结
临近学期末,本学期的软件工程课也已经结束了,在此我对软件工程课中,我们团队M1和M2开发阶段中,我做的工作做一个总结 我是DEV,主要工作是等着上级给我分配任务,但是很多时候如果这个活我不干,其他人就 ...
- 【个人阅读】软件工程M1/M2阶段总结
这次作业是好久以前布置的,由于学期末课程设计任务比较重,我在完善M2阶段的代码的同时又忙于数据库的实现和编译器的实现,一度感觉忙得透不过气来....到这些都基本完成的时候,会看自己以前的阅读心得,觉得 ...
- 【个人阅读】软件工程M1/M2做一个总结
1.以前博客链接 http://www.cnblogs.com/penglinjiang/p/4027850.html http://www.cnblogs.com/penglinjiang/p/40 ...
- 软件工程M1/M2总结及阅读作业总结
一.软件工程M1/M2总结 写下这篇总结的时候,我们的软件项目尚未完工.虽然尝试申请了延期答辩,但最终未能成功.这意味着,我们的项目能否正常发布已经处于了一个微妙的状态.可能可以,也可能不可以.只能尽 ...
- 软件工程M1/M2总结
也不分M1/M2了,就从头到尾的梳理一下这学期的软工课吧. 第一节课,老师就稀里哗啦说了一下这学期要怎么搞,什么个人项目啦,结对项目啦,团队项目一二啦,还要组队啊什么的,然后风风火火的组队. 个人项目 ...
- 【个人总结】软件工程M1/M2总结
个人博客连接: http://www.cnblogs.com/lwq12061168/p/4094252.html http://www.cnblogs.com/lwq12061168/p/40284 ...
- 个人阅读作业 The Last
对于软件工程M1/M2的总结: 假象-MO 在团队开发的前期,我感觉自己其实给了自己很多的期待,因为一直希望着自己可以在团队中担任一个角色,用自己的力量为团队多做事情,也给了其他人一些假象,那就是看起 ...
- final个人阅读作业
一.软件工程M1/M2总结 1.M1阶段总结: 我们团队的软件工程开发是按照前后端来分别开发的,我是负责后端的.我们的项目是做一个北航的社团平台,是一个网站.在后端我们使用的是ruby on rail ...
随机推荐
- Django框架的使用教程--站点的管理[七]
Django的站点管理 创建超级管理员命令(密码要8位) python manage.py createsuperuser 进入站点管理 注册模型类 from django.contrib impor ...
- shell基本语法记录
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个 ...
- 薛兆丰吴军何帆曾鸣万维刚李笑来罗永浩等得到APP专栏作者的书23本
最近看了何帆的<大局观>,是他在得到APP的专栏文章的精选.顺便整理以下最近两三年内看过的得到APP其他专栏与课程作者的得到精选文集和他们写过的其他的书共23本. 薛兆丰 4星|<薛 ...
- 17秋 软件工程 团队第五次作业 Alpha Scrum10
17秋 软件工程 团队第五次作业 Alpha Scrum10 今日完成的任务 世强:Android客户端成员列表完善.APP前端子部门和活动中心界面与数据交互: 港晨:Web前端主页的接口对接: 树民 ...
- JDBC学习笔记之建立连接
1. 引言 在一个JDBC应用程序中,如果想建立和数据源的连接,那么可以使用以下两个类: DriverManager:通过数据源的URL,我们可以建立与指定的数据源的连接.如果使用 JDBC 4.0 ...
- [java大数据面试] 2018年4月百度面试经过+三面算法题:给定一个数组,求和为定值的所有组合.
给定一个数组,求和为定值的所有组合, 这道算法题在leetcode应该算是中等偏下难度, 对三到五年工作经验主要做业务开发的同学来说, 一般较难的也就是这种程度了. 简述经过: 不算hr面,总计四面, ...
- HTML5原生拖拽事件的值传递(三dataTransfer对象)
引用一篇博客,讲解的比较详细:http://www.tuicool.com/articles/j6Zbam
- 2018-2019-2 网络对抗技术 20165318 Exp6 信息搜集与漏洞扫描
2018-2019-2 网络对抗技术 20165318 Exp6 信息搜集与漏洞扫描 原理与实践说明 实践原理 实践内容概述 基础问题回答 实践过程记录 各种搜索技巧的应用 DNS IP注册信息的查询 ...
- [ZJOI2005]午餐
嘟嘟嘟 贪心+dp. 首先贪心很容易想到,把吃饭时间长的人排在前面.因为打饭时间的顺序对最终答案没有影响,所以可以以吃饭时间为关键字排序. 然后就是dp了(我当时还自信满满的贪心交了一发--显然WA啊 ...
- 2017-2018-2 20155314《网络对抗技术》Exp2 后门原理与实践
2017-2018-2 20155314<网络对抗技术>Exp2 后门原理与实践 目录 实验要求 实验内容 实验环境 预备知识 1.后门概念 2.常用后门工具 实验步骤 1 用nc或net ...