回答自己的提问

第一章 概论 1.2.4 软件工程的知识领域

问题:既然软件工程的知识领域涉及这么多,应该怎样才学好它呢?

 回答:软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。

它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,

软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,

编译器,数据库,游戏等。所以应该认真对待每一门与它有关的课程。

第二章 个人技术与流程 2.1 单元测试 2.3 个人开发流程

问题:对一个软件工程师来说怎样写好一个单元测试?怎样做到既能让客户满意又能高效地完成项目和提升自己个人开发能力?

 回答:写出好的单元测试需要我们不断的积累和完善,需要我们不断的在工作中去总结。写出好的单元测试没有简单的公式或规定可以遵循。

只有理智的分析,才能作为自己行动的指南,必须从内而外的改变和提升。

第3章 软件工程师的成长  3.2 软件工程师的职业发展 3.3 技能的反面

问题:如何让自己正确的定位自己的职业发展之路?在现代社会中,作为一名软件工程师是应该所有的有关的技能和知识都涉及,还是集中自己的精力专攻某一领域呢?

 回答:职业选择最需要的是“最适合自己的”。在选择职业时,个人与职业越匹配,人们就越容易适应新职业,

就业后的工作生活质量也就越高。如果自己的兴趣、个性、职业能力与职业要求不匹配,那么,很快便会出现个

人特征与职业要求的冲突,不能较好地适应新工作。因此,我们择业时应寻找“最合适”的,而不必强求是别人

眼中“最好”的。我认为应该集中自己的精力专攻某一领域,因为“术业有专攻”。

第4章 两人合作 4.3代码设计规范  4.5 结对编程

问题:怎样才能使自己的代码设计规范,能够得到别人的认可,重点应该多注意一些什么?怎样有效的克服结对编程所带来摩擦和在结对编程中提升自己的能力?还有结对编程不适合哪些人?

 回答:适当的缩进可以使代码规范,看起来整洁,让人更容易接受。通过不断的磨合来克服困难。结对编程不适合有个人英雄主义的人。

第5章 团队和流程 5.1 非团队和团队 5.3开发流程

问题:怎样找到一个适合自己的团队模式呢?怎样能够更好的融入到一个团队里去?软件开发流程的重要性。

回答:能在工作里面找到快乐、找到幸福感的团队。最好的方式就是多交流沟通。软件开发需求管理是软件项目管理中一项十分重要的工作,在众多失败的软件项目中,由于需求原因导致的占相当大的比例,因此,需求管理将对软件项目能否最终获得成功产生至关重要的影响。但在实际软件开发过程中,很多开发人对需求的认识还远远不够。就本人的实际经验来看,软件开发工作不是简单的技术工作,而是一项系统的软件需求开发管理工作。项目管理人员要想做好软件项目管理工作,就必须要研究如何利用需求管理理论和方法,获取需求;采取什么方法对软件系统功能进行描述--需求建模。其目的是理解用户的功能要求,澄清模糊的功能需求,使软件工程师和软件用户对系统功能的理解达到一致。就实际工作经验来说,不管采用什么方法,都要体现以用户为中心的思想,因为软件最终的主人是用户,这一点非常重要。

第6章 敏捷流程 6.3 敏捷的团队 6.4 敏捷总结

问题:怎么衡量敏捷流程对于该团队或当前的项目合适?是否所有团队都要具备敏捷的能力呢?如何找到适合自己团队的敏捷方法呢?

 回答:敏捷开发比较适合训练有素的团队,反过来说,如果不是一个训练有素的团队并不适合。并不是,因为还有传统的软件工程。敏捷的方法更多的是注重发现问题的框架,就是能让你更快地发现问题、暴露问题。

第7章 MSF 7.2 MSF基本原则 7.2.3 充分授权和信任 7.3 MSF团队模型 7.5 MSF敏捷开发模式

问题:充分授权和信任适用于什么情况下?既然MSF团队模型在讨论处理方案时会引起冲突,那它又如何在各个冲突中找到共同的平衡?

MSF敏捷开发模式比之前的敏捷开发模式有什么优越的地方?是否之前的敏捷开发模式就没用了呢?

回答:团队成员都能在各自的岗位上积极充分的发挥自己的才华和能力,在任何时候,愿意为团队整体着想的时候。MSF敏捷开发模式吸收了近几年来在软件业界流行的各种“敏捷”开发模式的优点,认识到目前大部分软件是以网络应用相联系,强调和用户更紧密地交流,快速叠代,避免不必要的过程。MSF过程模型是从传统的软件开发瀑布模型和螺旋模型发展而来的,它把瀑布模型中基于里程碑的规划优势与螺旋模型中增量迭代的长处结合了起来。

第八章  需求分析  8.2软件产品的利益相关者  8.4功能定位

问题:怎样才能高效率的广泛而深入地了解用户的背景,心理,需求等?怎样保证自己做的产品在与别人竞争的时候保持让自己处于优势?

 回答:最好的方式当然是你开发的东西自己也会用,比如你开发QQ,自己也用QQ,你就很可以理解用户需要什么。可以收集目标用户的反馈信息

要么去做别人没有做过的新的应用,要么把同质应用创新地做,要么在同质产品中做的比别人都好,就这三条路,没别的。

第九章 项目经理

问题:作为一个PM,如何能让自己得到所有团队人员的支持?作为一个PM又该如何管理好自己的同事,使项目做的更好?

 回答:项目经理主要职责就是沟通和管理控制项目的进度,经费和范围。项目刚开始时管理控制应该跟的紧一点。经过

一段时间的了解认为团队比较可靠,可以给他们更多的自由。 作为项目经理还是应该把精力更多地投入到项目的计划中,

并且根据面临的各种风险准备应对方案,保证项目如期完成。

第十章 典型用户和场景

问题:为什么要定义典型用户,典型用户对我们的产品有什么影响?功能说明书的重要性?

回答:产品的目标用户,是在设计做产品之前就要确定下来的。如果没有明确的目标用户,那么接下来要谈的人物角色创建就无法展开。

设计的产品要让用户满意,必须得知道用户是谁。没有目标用户的产品是可悲的,那样完全是在YY。每个产品都应该有自己的目标用户群体,

圈定好较为固定的那一部分群体后,就要针对性的对他们进行研究分析,以便在设计产品时可以参考,毕竟产品的主要目的就是为了满足这部

分用户的需求。功能说明书的作用:帮助用户了解产品, 确保用户正确、安全地使用产品,功能说明书是指导用户选择产品、使用产品的路标和向导。

第11章 软件设计与实现 11.2开发阶段的日常管理

问题:如何在开发阶段应对这些意外的情况?

 回答:软件的可维护性是软件开发阶段各个时期的关键目标,异常和意外情况.控制 对于开发工作十分重要,做任何变更之前,我们都要考虑后果。

要对可能发生的意外进行预判,及早发现及早解决。

第12章 用户体验 12.1 用户体验的要素

问题:怎样给用户一个很好的第一印象,我们的产品应该怎样定位该产品的目标人群?怎样挖掘潜在的用户?怎样平衡用户体验和产品质量的冲突?

 回答:

简单地说,就是要告诉用户:为什么我们的产品比别人家的好。

这实际上是向用户们展示自我的过程。开发者必须明白的是,用户之所以能在看你的App描述,必然是他们已经通过搜索、或是推荐页面点击到了应用详细介绍界面,他们势必也已经看到了产品的名字、以及截图。相当于他们的一只脚已经迈进了门,接下来通过App描述再把他们拽进来,这个用户就到手了。

13章 软件测试 13.5 练习与讨论

问题:发布阶段测试队伍要把尽可能多的测试用例自动化是什么意思?

 回答:测试自动化是软件测试的大方向。作为其核心组件的自动化测试的引入将QA从繁重的重复劳动中解放出来,完成靠人力难以组织的测试,优化测试资源,提高测试效率。优秀的自动化测试框架、完备的自动化测试脚本集、丰富的自动化测试工具将使得测试的效率倍增,对产品质量保证起到积极作用。一个有自动化测试脚本、框架、工具开发能力的QA,更有竞争力是一件无可厚非的事情。

14章 质量保障 14.2 软件的质量保障工作

问题:分工之后,怎样保证别人做的结果达到质量?

 回答:软件团队的成员为了让软件达到事先定义的质量而进行的所有活动,包括测试工作。

分工是社会和行业进化的结果。开发和测试其实是软件工程的两分支。不同的软件/服务需要不同方式和程度的测试。

15章 稳定和发布阶段  15.2  发布之后——事后诸葛亮会议

问题:事后诸葛亮会议对团队来说有什么具体意义?

 回答:做个有效的项目总结。 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述?

对自己所做的的项目进行一系列总结,找出不足和改进的地方,优化我们的产品。

16章 IT行业的创新

问题:怎样提升团队的创新能力?软件工程的技术和实践如何帮助创新?

 回答:设计高效团队 在企业团队建设实际运行过程中虽不是一件轻松的事情,但也不像大多数人认为那样--是一件非常困难的事情,常常感觉好像无从下手。通常可以借助一些常见的管理工具来简化团队建设工作。团队成员自我的深入认识,明确团队成员具有的优势和劣势、对工作的喜好、处理问题的解决方式、基本价值观差异等;通过这些分析,最后获得在团队成员之间形成共同的信念和一致的对团队目的的看法,以建立起团队运行的游戏规则。 每一个团队都有其优势和弱点,而团队要取得任务成功又面对外部的威胁与机会,通过分析团队所处环境来评估团队的综合能力,找出团队目前的综合能力对要达到的团队目的之间的差距,以明确团队如何发挥优势、回避威胁、提高迎接挑战的能力。 以团队的任务为导向,使每个团队成员明确团队的目标、行动计划,为了能够激发团队成员的激情,应树立阶段性里程碑,使团队对任务目标看得见、摸得着,创造出令成员兴奋的幻想。 合适的时机采取合适的行动是团队成功的关键,团队任务的启动;团队遇到困难或障碍时,团队应把握时机来进行分析与解决;以及团队面对内、外部冲突时应在什么时机进行舒缓或消除;以及在何时与何地取得相应的资源支持等;都必须因势利导。 怎样行动涉及到团队运行问题。即团队内部如何进行分工、不同的团队角色应承担的职责、履行的权力、协调与沟通等,因此,团队内部各个成员之间也应有明确的岗位职责描述和说明,以建立团队成员的工作标准。 对于这个问题,目前在很多企业团队建设中都容易被忽视,这可能也是导致团队运行效率低下的原因之一。团队要高效运作,必须要让团队成员清楚地知道他们为什么要加入这个团队,这个团队运行成功与失败对他们带来的正面和负面影响是什么?以增强团队成员的责任感和使命感。即将我们常常讲的激励机制引入团队建设,可以是团队荣誉、薪酬或福利的增加、以及职位的晋升等。 (二)、为员工提供深造的机会 只有一个懂得不断充实自我的学习型团队,才能在发展的社会创造出更多的"奇迹"。从学习的作用来讲:传统型营销团队的学习性意识不强,他们多满足固有的知识和经验,而不很自觉吸取新知识,也不积极开展横向学习。而在学习型营销团队里,无论是从机制上还是观念上都充满了强烈的再学习意识,善于在实践中将理论和实际相结合,善于发现他人优点,加以吸收。 面对这样的员工,企业领导需要擅于创造学习的机会和组织学习。在彼得?圣吉《第五项修炼》一书中,他讲到,作为团队来说,组织学习的特点是什么?实际上就是五项修炼,一个学习型组织的理论、工具和方法就是分出三个领域,这三个领域是对核心能力的支持。把它形容为一个三条腿的凳子,三条腿都非常重要,如果拿掉一个腿,凳子就会倒,左边那条腿叫做热望、欲望,右边的是心智模式和团队学习,中间就是系统思考。每一条腿都非常重要,也就是说每个核心能力都非常重要。 总体来说,团体的智慧总是高于个人的智慧。当团体真正在学习的时候,不仅团体能产生出色的效果,其个别成员的成长速度也比其他的学习方式为快。 (三)、听取员工的见解 在团队里,也许我们并不需要每个团队成员都异常聪明,因为过度聪明往往会自我意识膨胀,喜欢好大喜功,相反,却需要每个人都要具有强烈的责任心和事业心,对于团队精心制定的战略要在理解、把握、吃透的基础上把战术不折不扣、坚定不移地贯彻执行下去,对于过程中的每一个运作细节和每一个项目流程都要落到实处。 另外,要保证团队的执行力,关键要在执行过程中明确要实现的目标分哪几个阶段和具体确定工作指标,这是确保任务完成质量的关键,也是保证团队执行力的关键。 (四)、鼓励员工的创造力 只有不断地创新才能保持企业竞争优势,但是创新能力从哪里来呢?做教育培训,是提高人才团队创新能力的重要手段。因为抓好教育培训是提高队员知识水平和综合素质的重要途径,而队员的知识技能是激发创新能力的前提条件。尤其在知识经济时代,在产品科技含量高的行业企业,这一点体现得更为明显。 其实创新能力也体现在企业管理的各个方面,是一个综合性概念,也只有综合性的创新能力,才是真正的有竞争优势的创新能力。人才培养不只是重视知识技能方面,还要考虑品德、情感、志趣等精神层面的东西,考虑企业文化、考虑人才队伍的凝聚力和团队精神,这是只有企业综合性的教育培训才能做到的。谁在这方面把握得好、做得好,谁就能在竞争当中保持长久的整体创新优势,并最终在竞争中打败对手。 (五)、团队分工与合作 企业的发展从内而言,经由创始人积聚松散个体到扩大群体规模直至组织结构、功能均衡发展的过程。则是随其进化演变规律呈现出波浪式的起伏推动,其主动力源于内部循环供给能量。也就是说,团队领导人拥有教练、发动团体的能力;管理层拥有教练、发动部属的能力;员工拥有教练、发动自我的能力,最终形成上中下协调平衡、整体互动的运动态势。但各个阶层也要能对其他部门熟悉、了解,并能在工作中相互配合,否则制定的战略、战术只能是孤芳自赏,根本无法让其他部门实施运作。 (六)、增强领导才能 增强和发挥领导的指导作用,首先领导必须以身作则,对团队成员起榜样和示范作用;其次,明确具体的工作质量、范围、工期、成本等目标约束;再次,明确各团队成员的角色和责任分工,充分发挥项目团队成员各自的作用。 (七)、充分发挥领导的沟通和协调作用 首先,团队成员之间的沟通和协调。成员之间由于价值观、性格、处世方法等方面的差异而产生各种冲突,人际关系陷入紧张局面,甚至出现敌视、强烈情绪以及向领导者挑战等各种情形。领导要进行充分沟通,引导团队成员调整心态和准确定位角色,把个人目标与工作目标结合起来,明确知道自己要做的事,以及清楚如何去做。 其次,团队成员与工作环境之间的沟通和协调。团队成员与周围环境之间也会产生不和谐,如与技术系统之间的不协调、对团队采用的信息技术系统不熟悉等。领导要帮助团队成员熟悉工作环境,学习并掌握相关的技术,以利于项目目标的及时完成。 再次,团队与其他部门之间的沟通和协调。在工作过程中,团队与其他部门各干系人之间的关系,也会产生各种各样的矛盾冲突,这需要领导与之进行很好的沟通协调,为团队争取更充足的资源与更好的环境,并对工作进程以及工作目标与工作干系人不断达成共识,更好地促进工作目标的实现。 (八)、充分发挥领导的激励作用 在工作过程中,由于严格的目标约束及多变的外部环境,领导必须运用各种激励理论对工作班成员进行适时的激励,鼓励和激发团队成员的积极性、主动性,充分发挥团队成员的创造力。 (九)、灵活授权,及时决策 随着团队的建设和发展,领导要通过授权让团队成员分担责任,使团队成员更多地参与项目的决策过程,允许个人或小组以自己的更灵活的方式开展工作。 首先,通过灵活的授权,显示了领导对团队成员的信任,也给团队成员学习与成长的空间。这种信任可以奠定团队信任的基础,也是团队精神在领导与团队之间的体现。 其次,授权有利于充分发挥团队队员的积极性和创造性。每个人都有实现自我价值的愿望。富于挑战性的任务,使他们不断地拓展自己的知识技能,发掘他们的创造潜力。每一项工作的成功,不仅是领导管理的成功,更是所有实现自我价值的团队成员的成功。 再次,灵活授权,有利于及时决策。一方面团队成员在自己的授权范围内可根据内外部环境的变化及时决策,另一方面,通过灵活的授权,领导逐渐将工作重点转向关键点控制、目标控制和过程监控。领导的工作重心由内转向外,侧重于处理工作与企业或社会之间的关系,从外部保障项目团队的运作。 三、充分发挥团队凝聚力 团队凝聚力是无形的精神力量,是将一个团队的成员紧密地联系在一起的看不见的纽带。团队的凝聚力来自于团队成员自觉的内心动力,来自于共识的价值观,是团队精神的最高体现。一般情况下,高团队凝聚力带来高团队绩效。 团队凝聚力在外部表现为团队成员对团队的荣誉感及团队的地位。团队的荣誉感主要来源于工作目标,团队因工作目标而产生、为工作目标而存在。因此,必须设置较高的目标承诺,以较高的工作目标引领着团队前进的方向,使团队成员对工作目标形成统一和强烈的共识,激发团队成员对所在团队的荣誉感。同时,引导团队成员个人目标与工作目标的统一,增大团队成员对团队的向心力,使团队走向高效。版权申明:浅谈如何提高团队凝聚力由 团队凝聚力在内部表现为团队成员之间的融合度和团队的士气。人是社会中的人,良好的人际关系是高效团队的润滑剂。因此,必须采取有效措施增强团队成员之间的融合度和亲和力,形成高昂的团队士气。团队是开放的,在不同阶段都会有新成员加入,高团队凝聚力会让团队成员在短期内树立起团队意识,形成对团队的认同感和归属感,缩短新成员与团队的磨合期,在正常运营期间,促使团队的工作绩效大幅提高。

快速原型,持续重构,在每一个里程碑之后做总结。

17章 人,绩效和职业道德

问题:在磨合期,如何有效的管理好自己的团队,度过磨合期?软件工程师的道德底线在哪里?

怎样衡量自己的行为符不符合软件工程师的道德规范?

回答:多进行沟通和交流,时时了解部下的动态,关注他们。正直诚实是职业道德的基础。

看是否影响到别人的正常工作。

原文地址:https://www.cnblogs.com/lixin20/p/4601165.html