软工实践寒假作业(2/2)任务一
这个作业属于哪个课程 | 2021春软件工程实践|S班(福州大学) |
---|---|
这个作业要求在哪里 | 作业具体要求 |
这个作业的目标 | 重读阅读之法提出问题 |
其他参考文献 | CSDN 《构建之法》 |
任务一:阅读《构建之法》并提问
一、基本要求
问题一:关于合格的软件工程师
在《构建之法》的P32中有一段话如下:IT专业的大学毕业生找工作时声称:我精通Java,会用C++写“Hello World”程序,我懂软件工程,我画了很多图,写了很多文档,最后得了很高的分数……这些同学是真的懂软件工程,是一个合格的软件工程师么?
我的回答:当然不是。
1.首先,我认为画了很多图、写了很多文档、得了很高分其实都不代表什么,虽然在学校学的专业知识是基础,但是很多真正有用东西都是加入工作了才开始学。
2.其次,我认为一个合格的软件工程师需要拥有良好的编码能力,这是基础;
3.再有就是自觉的规范意识和团队精神,这将直接关系到团队的工作效率和质量;
4.较强的英语阅读和写作能力,软件工程师少不了和英语打交道,所以掌握英语是很有必要的;
5.还有就是要具有软件工程的概念,因为只有这样才能能清楚地理解和把握从项目需求分析到安装调试完毕的过程,并能胜任各种环节的具体工作,这样的能力正好符合了当前企业对软件工程师的全面要求;
6.最后就是求知欲和进取心,无论在任何一个行业,所处哪一个位置,每个人都需要求知欲和进取心才能不断进步,更不用说生存在一个不断变化和不断创新的行业的软件工程师。
所以,我认为软件工程师其实对个人的综合素质要求还是比较高的。
问题二:关于MBTI
P100提到“在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘、同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起编码,一起做单元测试,一起做集成测试,一起写文档等”。
从事软件行业的人肯定是避免不了团队合作以及结对编程的。那么《构建之法》也在P108提到性格一定程度上会影响合作。据MBTI分析,ISTJ、INTJ以及INTP型人格才适合软件行业。但是我并不属于上面三种类型,自认为学习本专业确实还是有一些吃力的。现在不禁有点怀疑自己,能否提点一二?
问题三:关于创新
P359提到“谁不喜欢创新呢?然而细细想来,创新就是做和以前不一样的事,并不是所有的人都喜欢‘不一样’”。
书中也列举出了很多种别人“不喜欢”创新的理由,如果我的idea遭到质疑的理由是“这从来就行不通、没有人需要这些方案、在实际中根本行不通”等,我大可以像《构建之法》里面说的那样,通过考虑“对利益相关人要讲清楚‘你能从中得到什么’、创新的想法和目前流行的做法相比,有什么相对优势,能让别人清楚地看到这个区别”等方面解决问题。但是如果我的idea是因为“个人自负/嫉妒或者是面子问题”等原因被否决我又应该怎么办呢?
问题四:关于“赢者通吃”
P372中提到一个“黄金点游戏”(这个游戏规定第一名得到全部的分数,第二名(不管多接近)到倒数第二名都是0分,最后一名还要倒扣分),从这个游戏作者得出“软件行业就是一个赢者通吃的环境,最后一名还要把自己的身家倒贴进去”的结论。
这不禁让我想到:每当班上同学要自行组队完成老师布置的团队项目实践作业时。我发现如果同学A和C成绩较好、项目经验较丰富,而B同学成绩一般、经验不足。此时A和C会更加容易找到队友,同时他们也更加倾向于和对方组队而不是选择B作为队员。长此以往,A、C的能力、成绩、经验等等会以快于B的速度提升,那么A、C自然就能获得更多机会、成绩更好、发展更快。这个例子是不是也能证明软件工程“强者通吃”这个结论呢?那么作为处于第二名和倒数第二名的同学在这种情况下要如何“曲线救国”而迎头赶上呢?
问题五:关于团队
P409在介绍团队合作的规范阶段时提到“通过聆听、讨论,成员互相之间更加了解,认识到并欣赏各自的能力和经验。在工作中互相支持,大家意识到并尊重各人的个性”。
我想这是团队的leader需要做的事情。我曾经所在的一个学习小组里,我们成员们已经有了一定的默契。A成员累计代码量最高能力最强,但有一个缺点:情商低且不自知(实话实说,没有诋毁的意思)。每当其他成员有失误时,A会毫不留情地当面说出类似于“都是因为他我们才会浪费这么多时间”这样的话语,其他成员的积极性以及自信心或多或少受到了影响。而在leader与A多次交涉无果的情况下,只有留下A或者是剔除A两个选择。我想如果调整团员,那么团队需要花时间重新建立默契;如果留下A,那团队的其他成员继续被打击。此时,leader是否有必要将A换掉?
二、附加题:关于软件工程的冷故事
1.第一位程序员是位女性
故事概述:历史上第一位程序员是位女性。她的名字是Ada Lovelace。在1843年,这位英国数学家Ada Lovelace,翻译了意大利工程师Luigi Menabreaw撰写的分析引擎文章。在翻译过程中,她把自己的理解都批注到每篇文章下,而这举动加快了计算机编程技术的发展。在这之后,她又设计出了第一种能够利用分析引擎计算伯努利数的算法,这也是第一个用电脑编写的算法。
我的见解:其实人们一直以来对女程序员都持有一定的偏见,但是看完这个故事后我对女程序员又充满信心了。并且我深刻地认识到软件行业来说,要么善于合作,要么技术过硬,无论什么性别,都能给整个团队带来巨大价值。如果二者兼备,那就可以当上核心成员。而是否具备这些特质,只和自己啃了多少书、积累了多少项目经验有关,反倒和性别关系不大。