构建之法阶段小记三

本周已是学期的第十周,这周内通过书中第三章的介绍对如何成为一个合格的软件工程师及软件工程师在个体、团队中应具备的素养有了一些基本的了解。

软件开发流程不光是团队的流程,还包括个人开发流程。书中以足球队做类比,阐明了一个非常重要的概念就是——软件团队是由个人组成的,在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人能力的衡量与发展在团队合作中也非常重要,书中也介绍了几种比较妥当的个人评价标准。

软件工程师应该在不同阶段有以下几种成长:积累软件开发相关的知识,提升技术技能、积累问题领域的知识和经验、对通用的软件设计思想和软件工程思想的理解、提升职业技能、最终得到实际成果。绝大部分的软件工程师的工作成果都是可以公开的,个人参与的产品最终得用户评价如何、市占率如何、对用户有多大价值以及个人在其中起到什么作用都是非常重要的评价指标

如何衡量软件开发的工作量和质量:a.项目/任务有多大?b.花了多少时间?c.质量如何?d.是否按时交付;

团队对于个人的期望:1.交流2.说到做到3.接受团队赋予的角色并按角色要求工作4.全力投入团队的活动5.按照团队流程的要求工作6.准备7.理性地工作;

软件工程师的职业发张:1.职业发展——考级之路:如计算机等级考试和全国计算机技术和软件专业技术资格考试以及一些公司自己的认证项目;

2.职业成长——Steve McConnell版本:一个软件工程师需要具备一定的知识和能力,工程师还有职业成长级别;

3.职业成长——大公司版本:大公司对于一个工程师有自己的判断方法;

4.职业成长——自我评估:如何做一个CRUD;

第三章以个人角度,诠释了软件工程师个人的能力发展及职业发展在行业中所起到的作用并介绍了几种评价方法。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人在团队中也有独立的流程。书中以魔方为例,详细介绍了“技能”的概念,从技能的反面——解决问题来从本质上理解“技能”。提高自身技能就是通过不断的练习,把那些低层次的问题都解决了,变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。从科研或者理论的高度上说,所有的“技能”都能总结成简单的“已经知道怎么做了”。作为学生,我们应该认清当前的自我水准及定下合理的成长目标,不应只是考虑参与所谓的高层次的“科研”,在懂得理论的基础上应当具备在实践中活用理论并加以改进以适应实际情况的能力。把低层次的问题解决了,最基础的操作都熟练了,根基打好,我们的能力自然也就提升了。

时间: 2024-10-29 19:07:37

构建之法阶段小记三的相关文章

构建之法阶段小记七

在之前学习了需求分析和项目经理的职责及素质后,本周学习了构建之法的第10章.这么久过去了,在长时间的理论学习之后学业上也临近学期期末了,学习第十章之后对几门课程的期末大作业也有一定的帮助. 第十章在需求分析的基础上进一步提出并解释了两个概念--典型用户和典型场景,并提出了针对不同用户进行功能开发的概念.满足一些典型用户和典型场景中产生的需求可以很大程度上使得我们的软件功能得到比较完备的实现. 用例一次在之前的学习中也多次接触过,现在算是对它有了进一步的认识.在认识并利用用例进行系统需求分析的时候

构建之法阶段小记六

本周学习了构建之法的第8.9章,总算是接触到了久闻未见的软件工程中的重中之重--项目需求分析,以及对需求和团队进行管理的重要角色--PM 我们都知道软件是由人手一行行代码写出来的,软件的存在也是为了满足人工作生活中的各种需要.如果软件开发没有目标,那写出来的代码不过就是26个字母及其大小写加上空格和一些特殊符号的随机组合罢了,没有实用意义.所以,代码的诞生一定是为了实现某个或某些具体的目标,也即这些代码最终成型后要实现怎样的功能.为了确立这样一个目标,我们就需要对最终使用到这些代码的人做需求分析

构建之法阶段小记五

本周学习了构建之法的第6.7章,在先前两人结对编程和团队开发流程的基础上对于软件项目有了更进一步的了解. 第6章以许多浅显的描述介绍了敏捷流程的一系列理论及其原则,最重要的即 找出完成产品需要做的事情.决定当前的冲刺需要解决的事情.冲刺及每日例会和最终发布版本给用户并在此基础上进一步计划增量的新功能和改进.开发过程中成员与外界的交流及成员自身注意力的集中往往会产生一定矛盾,在开发时团队成员一般不能直接被外部人士打扰,因而产生了"Scrum Master"这样的一个角色来进行成员及外界的

构建之法阶段小记二

本周因几门课结课,加上参加了普通话水平测试,总的来讲有些忙碌.忙里偷闲,把上周看了少量的第二章作了补全,第三章也简简单单开了个头. 第二章中,仅凭简单朴实的文字,说来重点也不过几句寥寥,却让人了解到了软件开发中非常重要的几个环节:测试及能效分析.简单来讲,测试又分为几个模块.其中,单元测试又涵盖几个要求:好的单元测试应该在最基本的功能/参数上验证程序的正确性.必须由最熟悉的人(即代码作者)来写.单元测试过后,机器状态应保持不变,且测试要快,应该产生可重复.一致的结果.另外,单元测试的运行/通过/

构建之法阶段小记四

转眼已是十一周,距离期末已很近了.加上有任务在手,渐渐地可能会忙起来,因而决定加快读书进度以期尽早完成基本内容的学习,在这样的环境下本周阅读了书中的第4.5章. 有句俗话说得好,众人拾柴火焰高.无论从事什么活动或者工作,多数情况下合作得到的结果都是1+1>2的.第4.5章就分别从两人的结对编程和大型的团队项目着眼介绍了软件的开发经历.软件开发的过程是复杂的,一个人单独开发一个软件的情形已经非常少见了.绝大多数的软件都是在相互合作中完成的,合作很大程度上实现了个体的优势互补,譬如有人擅长界面设计,

《构建之法》第三章学习心得

这周我学习了<构建之法>第三章,讲述了软件工程师的成长.软件系统的绝大部分模块都是由个人开发或维护的.在软件工程的术语中,这些单个的成员叫做Individ-ual Contributor(IC).IC在团队中的流程是怎么样的呢?以开发人员为例,流程如下. 1.通过交流.实验.快速原型等方法,理解问题.需求或任务 2.提出多种解决办法并估计工作量 3.其中包括寻找以前的解决方案,因为很多工作是重复性的 与相关角色交流解决问题的提案,决定一个可行的方案 执行,把想法变成实际中能工作的代码,同时验证

《构建之法(第三版)》速读提问

<构建之法(第三版)>速读提问 1.什么是软件工程 软件工程学科诞生后,人们为软件工程给出了不同的定义,例如最早的定义是由F.L. Bauer给出的,即"软件工程是为了经济地获得能够在实际机器上高效运行的.可靠的软件而建立和应用一系列坚实的软件工程原则". 软件工程学科包含为完成软件需求.设计.构建.测试和维护所需的知识.方法和工具. 软件工程是一门交叉性的工程学科,它是将计算机科学.数学.工程学和管理学等基本原理应用于软件的开发与维护中,其重点在于大型软件的分析与评价.规

20179215 《构建之法》第三章

<构建之法>第三章 读书笔记 ?本章为软件工程师的成长,主要介绍了评价软件工程师水平的主要方法,技能的反面,TSP对个人的要求. 一.个人能力的衡量与发展 ?软件开发流程:软件开发流程包括团队的流程,也包括个人的流程 ?软件系统的绝大部分模块都是由个人开发或维护的.在软件工程的术语中,我们把这些单个的成员叫做Individ-ual Contributor(IC).IC在团队中的流程如下. 通过交流.实验.快速原型等方法,理解问题.需求或任务 提出多种解决办法并估计工作量 其中包括寻找以前的解决

构建之法阅读笔记三—结对编程

构建之法阅读笔记三——结对编程 何谓结对编程,结对编程就是程序员肩并肩,平等的,互补的进行开发工作,他们使用同一台电脑,编写同样的程序,一起分析,一起设计,一块交流想法. 然而我以前却并不是这样做的,我以前喜欢在没人打扰的环境下写代码,我觉得有人在我身边看着,会影响我的思路,还有我个人自尊心比较强,不太喜欢被人指指点点,所以每次都是,我写完代码之后,自己先找自己的bug,每当自己实在找不到之后,才会请教大神,但是有时候可能由于自己的能力不足,往往一个很简单的问题,我自己发现就会花费很久的时间,让