“Software engineering, of course,presents itself as another worthy cause,but that is eyewash: if you carefully read its literature and analyse what its devotees actually do,you will discover that software engineering has accepted as its charter ‘How to program if you cannot.’” 软件工程是不是教会不怎么会写程序的人开发软件?你的观点?
不是,软件工程是计算机类分流后的一个方向,是建立在具体计算机知识基础之上的一门学科。软件工程的要点不仅是程序,同时需要自己独特的见解,思想以及对编程的详细理解等等才能编写出一款具体软件,他的独特之处在于创造力而不仅仅是会写程序就可以,所以我们自身的学习能力比课程所传授的知识更重要。同时,开发软件是一件很困难的事情,他依靠的不仅是一个人的力量,更多的是团队合作的力量,需要彼此之间不断配合,但是团队中的人都需要拥有一定的编程理论,否则会难以进行概念上的沟通,开发一个软件可能需要多种编程语言以及算法知识,这是我们需要不断学习的。我认为软件工程不是教会人们写程序,更多的是一种综合能力的培养,帮助人们更高效合理的开发软件。
软件工程方法论对我们经软件开发有多大用处?谈谈你的看法。
我认为软件工程方法论对我们软件开发用处极大。软件的更新实质上就是迭代开发的过程,也几乎所有软件开发都遵循软件工程方法论,才使得软件开发更高效更实用,所以我认为软件工程方法论非常重要,对软件开发过程非常有帮助。
什么是DevOps?
DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障部门之间的沟通、协作与整合。它是一种重视“软件开发人员”和“IT运维技术人员”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。devops概念提出具有单体架构➕瀑布模式,分布式架构➕敏捷开发模式,随着业务体量发展越来越大,需要加机器,即涉及到多人协同开发,多人多机器模式。最初定义的DevOps指的开发运维一体化,现在的DevOps已经扩大到端到端的概念,DevOps=人➕流程➕平台。devops平台搭建工具具有很多,拥有一套完整的流程工具即可无障碍的进行协调工作
查阅相关资料,了解什么是scrum中的3355?
三个核心角色:
产品负责人(product owner):对产品功能和要求标准的责任,可以指定软件发布日期和交付内容,有权力接受或拒绝开发团队的工作成果。
敏捷教练(scrum master):帮助产品开发团队学习并应用Scrum来达成商业价值,为大家服务,会做任何力所能及的事情来帮助团队、产品负责人和组织取得成功。对应敏捷团队中的项目经理,但并非是一个项目经理。
团队:由开发人员组成,负责完成产品待办列表中的任务。
三个工件:
产品待办列表(Product Backlog):由产品负责人维护,包含所有待完成的工作项,按照优先级排序。
Sprint待办列表(Sprint Backlog):由团队维护,包含当前Sprint中需要完成的工作项。
可交付的产品增量(Increment):在每个Sprint结束时,团队必须交付一个可用的、可工作的产品增量。
五个关键事件:
产品待办列表梳理会(Product Backlog Refinement):由产品负责人主持,团队成员参与,目的是梳理、优化、优先级排序产品待办列表。
Sprint计划会(Sprint Planning):由产品负责人和团队共同参与,目的是确定Sprint目标和Sprint待办列表。
每日站会(Daily Scrum):由团队成员参与,目的是讨论前一天的工作进展、今天的工作计划以及遇到的问题。
Sprint评审会(Sprint Review):由产品负责人、团队和利益相关者参与,目的是展示Sprint期间完成的工作并接受反馈。
Sprint回顾会(Sprint Retrospective):由团队参与,目的是回顾Sprint期间的工作流程和团队合作,并提出改进措施。
五个价值观:
开放 (Openness):所有人都能够理解Scrum团队的工作和进展情况。
专注(Focus):团队成员专注于完成Sprint目标。
勇气(Courage):团队成员勇于面对问题并采取行动解决。
承诺(Commitment):团队成员致力于实现团队的目标,有勇气去做正确的事并处理那些棘手的问题。
尊重 (Respect):团队成员相互尊重,彼此是有能力和独立的人。
理解结对编程
结对编程是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。结对编程主要是一个相互配合的过程,不同的人产生不同的思维容易对程序设计产生新的看法,能够达到事半功倍的工作效果,同时也可以容易发现解决程序设计中产生的错误问题并能得到及时的更正修改,他也可以促进程序员自身水平的提升进步,二人互相学习,取长补短,能够互相学到新的东西知识,提高团队协作能力。但同时存在缺点,若程序员二者之间水平差距过大,往往容易产生意见分歧以及效率低下的问题。