个人阅读作业2 软工方法论无用?

初步看了推荐的文章以后,我选择了最后一篇文章来阅读,原因是“软件工程的方法论到底有多少用处”这个问题也是我目前很大的一个疑问,于是我决定首先看看这篇文章怎么说。

文章在开头举了一个离我们很近的例子:结对编程到底是解决了代码评审的问题还是无谓地增加了沟通成本?作者提出增加沟通成本的意思很清楚:结对编程非但没有逃避代码评审的繁复,却增加了额外的工作量:沟通,并且这些沟通并没有起到期望的作用:使一段代码由两个人看过以后更加完美。
我在结对编程中便遇到了这样的问题,当一个人在写代码时,他的思维运转是比较快的,而且带有个人的特色,这样坐在一旁的partner并不能很好地跟上节奏,导致其并不能专注在审查代码上,更坏一点的情况是partner完全不能理解某段代码,这时候还需要写代码的人来解释一番,随后便是恍然大悟,并不能及时地发现bug。最后仍然需要用测试用例去跑了,才能发现bug,并没有明显地减少bug的实现。
       当然这个问题有可能是因为我们并没有完全进入结对编程的状态导致的,但是,不得不说,结对编程对于我现在的软工实践经验来讲,并没有他的倡导者所讲的那么好,在上一篇读书笔记中我提到《移山之石》中作者对结对编程的赞赏,真实体验并不完全如此。

本文引用Michael Feathers的话讲到软工实践中最倚重的还是开发者的能力,同时我们又没有一套行之有效的衡量的方法。日后没有意外我应该会从事it行业,至少是与其相关的职业吧。那么我应该用什么办法展示自己的能力呢?既然没有一套很好的衡量方法,那么对于从业者来讲,便应该用更好的方法去向他人证明自己的能力,这应该是我需要思考的,扯远了,这只是我的一点思考。

说回软件工程方法论的东西,正如作者提到的,有两大原则可以大体上指引我们进行好的软件工程实践:化小开发周期和提升反馈效率。

化小开发周期,我觉得就是说不让一个项目进行的时间过长,可能时间的急迫感有利于提供生产效率吧,但是作者没有给出严密的说明,“如此多的创新被发现,只要你真正理解了你在做什么,你就能发现任何事物”,这句话被作者用来说明在大型项目开发中缩短周期是非常重要的,就这一两个星期的团队项目时间来说,“不能真正了解自己在做什么”意味着没有明确的目标,对于项目需求的理解也是模棱两可的,这样确实不能有效率地工作,确实是不利于项目的推进的。

作者引述了另一篇论文讲功能型团队对于缩短周期的作用,我把这篇论文也看了,然而这篇文章涉及了很多让人不明白的概念,我把文中关于跨功能性团队的内容做一些简述吧。
       所谓跨功能团队,要能够实现持续交互,一个办法是让开发人员、测试人员以及数据库管理员等等在一起进行开发,即时地沟通双方的意见,这样能够减少发布成本。
仅是一个大概意思,这篇文章我是没有怎么读懂。
       我们团队现在是把开发和测试分开的,开发者在提交代码审核以前,不会考虑测试者的需求,而测试者也只有在拿到程序以后,才能根据自己对需求的理解进行测试,再反馈给开发人员,如果我们能够把交流的过程提前到开发过程中,会不会减少商议沟通成本?(现学现卖的一个词)
当然,对于筒仓的瓶颈,作者也提出了另外的解决办法,比如说让团队成员的角色轮换等等。

这篇文章的评论里面有一个人提出了与开发者的个人能力很重要不一致的观点。他认为对于开发者来讲最重要的应该是主动性和责任感。这两者如果都被一个开发者所有的话,就算他当时能力有限,同样也能够进行高质量的工作。同时他也提供最好的开发者们往往能够起到减少代码行数的作用。
       主动性和责任感已是老生常谈了,而这对于在大学中进行软工的简单实践者来讲尤其重要:我们目前的项目并不需要个人能力特别突出,更加强调团队的协作,好让每个人都能体验到一个软件的生命周期的全过程。保持热情,主动地承担工作,对自己的工作负责,就能比较好的完成软工的实践,可能最后也得不到一个特别出彩的分数(算是吐槽吧),但是这个过程是完整了,毕竟,日后我们大多数人都要在某个团队里面,完成产品的开发,这也是作为it行业从业者的生活常态吧。

时间: 2024-10-11 08:16:08

个人阅读作业2 软工方法论无用?的相关文章

[2019BUAA软工助教]答黄杉同学

[2019BUAA软工助教]答黄杉同学 一.答黄杉同学 011-黄衫博客 我当然不否认软件工程的各种博客是有一定作用的,但是相信大多数人对诸如例会博客并没有什么热情(不过似乎也没有什么其他方法保证团队内都在为了进度努力).而更加鼓励技术博客对课程并没有什么害处,技术博客正是在开发中完全可能产出的部分,发布出来对其他人也会有很大帮助.这一点相信课程组也比较认同,只是没有明确说明出来而已.而且我希望鼓励的方式包括且限于:给个人加分,并给出明确的说明. 这是一个很好的建议,另一位黄衫得主也提到这个问题

软工总结博客

本学期是我大学这三年中最忙碌的一个学期,因为编译大作业.数据库大作业和软工项目都集中在了这一个学期中,在这个学期里我也第一次有了通宵码代码调程序的“可怕”经历.在我们的团队项目中,我担当的是主力的前端程序员,主要负责对往届的前端代码进行重构.在M1阶段中,我对往届的代码进行了认真的分析,在他们的代码逻辑基础上结合最新的android技术进行代码的重构.重构的任务比较重,我也为这项任务通宵过.在M1阶段中,我们团队的另外两位同学对后端进行修改,从而成功地支持了我前端的各类功能.虽然还有一些功能没有

软工个人阅读作业3

M1/M2阶段总结: 从M1阶段开始到现在已有几个月,不知不觉我参与这个高大上的团队完成app的工作已经有这么久了,从刚开始的手足无措到现在的完美结束,期间有任务压身的紧迫感,也有做出成果的激动和欣慰.下面分享一下这一段时间我的思想与感悟. 对于我自己: 1 这两次的团队作业我收获最大的就是又学会了另一种爬虫方法,相对我之前了解的另一种爬取网页的机制,这次学到的方法更加简洁易懂,学起来也很快,了解了其中的机制之后就觉得这种方法很神奇,很有趣. 2 软工课的团队作业也是我参加过的为数很少的多人合作

软工网络15个人阅读作业1

软工网络15个人阅读作业1 Task1:注册个人博客账号 博客园地址:齐畅 http://www.cnblogs.com/qichang/ Task2:注册码云账号 目的:管理你的项目,记录(源码.文档,历次版本变更,bug发现与修复)等信息. 码云地址:https://gitee.com/hudkahfk/ Task3:完成博客-阅读与思考 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的? 答:听专家意见报的志愿,他

软工第零次作业[补交]

目录 第一部分:结缘计算机    2 i.    你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)    2 ii.    计算机是你喜欢的领域吗?是你擅长的领域吗?    3 iii.    你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?    3 第二部分:在计算机系里学习    4 i.    你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能

软工实践第一次作业-黄紫仪

软工实践第一次作业 前言:emmmm之前因为没太注意,想着计算机专业怎么会有软工实践.所以之前一直都没去管.等到开学才发现突然翻车.QAQ现在赶紧先来补交一下. (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 你认为过去两年中接触到的课程是否符合你对计算机专业的期待,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?   说到选择计算机,emmmm,某种意义上来说是打RPG游戏打出来的想法,因为很喜欢这类的游戏,所以也想去试着写一个属于自己的这种

软工作业: (2)硬币游戏—— 代码分析与改进

软工作业: (2)硬币游戏-- 代码分析与改进 一.作业要求 1.Python 程序阅读理解 2.学习Python 编码风格指南中译版(Google SOC)(http://blog.csdn.net/damotiansheng/article/details/43867175),改进Python程序 3.设计游戏规则,使得慈善事业可持续. 地铁口放置硬币箱(初始值500硬币),顾客可取.可放.请设计一组规则,使得该钱箱永远有钱取(尽量符合实际) 注:参考http://www.cnblogs.c

软工第0次个人作业

一.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 首先说明,在进入大学之前,对于计算机专业的相关问题一无所知,对编程一无所知,对于计算机的理解仅仅存在于玩游戏和瞎捣鼓的层面上,唯一感兴趣或者自己能够想到的问题就是计算机的硬件是如何处理我们的操作指令的,软件又是通过怎样的方式写成的. 抱着这样的观点,以及相比于其他的工科专业,计算机专业给我有一种高大上的感觉,充满科技气息,再加上口耳相传的计算机专业人员在未来一定会发挥重大作用,报酬丰厚等等原因,最终选择了计算机专业,这也是我的第一

软工总结 作业

总的来说,这本书我还没看完.看全,但是有一些文段还是给我了不少启发.我向来痛恨不知所云的某些教材,就算有校对之人,但其作者的言语不工至极,好似其语文功底处于马里亚纳海沟之中,弄得人总是一头雾水.要是再碰上逻辑混乱一点的作者,就更加崩溃.这就像你写一个安装VC的教程,但是你没有照顾到所有种类的电脑环境,这样在安装的时候就会出各种错误,更为可气的是,VC这破玩意卸载器是无法完美利落的卸载自己的程序的,VC2015尤为甚之,所以只能借助类似absolute uninstaller之类的软件完整卸载.之