软件开发中的方法论:Agil与Waterfall

Anonim

敏捷是一个流行语,几乎影响了所有公司。 在决策层,业务敏捷性(即公司的敏捷工作方式)的主题日益重要。 结果,公司正在寻求通过诸如软件开发之类的举措来显着提高创新和适应的速度。 面对安静的小房间中远离事发部门的事态发展,敏捷应该有所帮助。 但是,在项目负责人盲目相信Scrum和看板的承诺之前,了解这些方法背后的想法并使它们适应业务非常重要。

Keine Softwaremethodik ist per se gut oder schlecht. Vielmehr muss es stets darum gehen, die richtige Methodik für das richtige Produkt und die gegebenen Rahmenbedingungen auszuwählen.
没有软件方法论本身是好是坏。 相反,它必须始终是针对正确的产品和给定的框架条件选择正确的方法。
照片:奥利维尔·勒穆勒(Olivier Le Moal)-shutterstock.com

自现代软件开发开始以来,就有多种创建软件的方法。 过去十年中最著名,最广泛使用的方法是:

•瀑布式,即在有反馈的情况下分阶段逐步开发软件。

•V模型,包括将质量保证方面集成到瀑布模型中。

•演化或增量模型,即软件产品和软件的逐步开发

•作为当前常见敏捷方法(例如Scrum)的进一步发展。

同时,作为构建现代软件的事实上的标准,这种趋势显然正在变得敏捷,其中以Scrum和看板为主导。

这种发展的原因之一是新的商业模式以及产品和服务进入市场的速度。

对《财富》 500强公司的分析显示了市场变化对公司的影响以及适应的需要。 并以更短的周期在市场上生存。 在许多情况下,数字本地人主导了市场,并通过现代工作模型征服了市场。 这些公司比许多知名的德国公司以更快的速度将创新产品投放市场。

spoods.de
  1. 产品与项目经理
    通常,当有人想要解释如何完成工作时,开发人员不会非常喜欢它。 但是由于产品和项目经理经常管理开发团队,所以这就是事实,这可能导致分歧。
    DevRant的David Fox也有一个观点:“最终,在大多数情况下,产品和项目经理在某种程度上是项目和流程的“所有者”,而没有软件开发人员的日常挑战和问题知道“。
  2. 厨师
    与产品和项目经理一样,开发或工程经理负责领导开发人员团队,并确保按时,按预算完成项目。
    “在某些公司中,老板可能也是开发团队的成员,尤其是如果老板是一名开发人员,而在晋升后成为老板之前,则可能会发生冲突,” Fox指出。
  3. 招聘
    由于缺乏熟练的技术人员,软件开发人员甚至不必主动寻找招募人员和猎头者骚扰的工作。 很难找到尚未加入招聘人员的开发人员。
    尤其是,大卫·福克斯(David Fox)认为招聘人员的毅力是一个问题:“他们打电话给您,给他们发送电子邮件,他们不会让你一个人-即使您不要找工作,即使您正在寻找工作,许多招聘人员也倾向于提出不相关的工作机会或推荐那些根本不适合自己的工作-例如在该国另一边的工作,即使您还不准备搬家。”
  4. 文件
    如果没有文档,请向软件开发人员投诉。 如果太多,他们会抱怨,也必须自己做文档。 甚至开发人员都在抱怨其他人如何完成文档编制任务。
    最后,正如Fox所强调的,最终,所有开发人员都达成了共识:“软件开发人员需要详细,写得好的和准确的文档-但他们不想自己做。”
  5. 会议
    会议不仅对其他人来说是一个问题,对于软件开发人员来说也是一个问题。 特别是在涉及到完全不必要,耗时且令人厌烦的会议时。 据福克斯说,灵修文章说“我在另一次会议上活了下来,应该留在电子邮件中”现在也可以找到。
  6. 协同工作空间
    随着敏捷性的提高,扁平的层次结构,协作和团队合作已在企业中变得司空见惯,尤其是对于软件开发团队而言。 但是特别是那些在开放式办公室工作的人几乎无法应付或根本无法应付-至少要说devRant的数据。
    大卫·福克斯(David Fox)解释说:“分心太多了:同事之间的谈话,会议被错过,电话错过了,而且办公室和其他便利设施中有很多关于咖啡的投诉-或恰恰相反。”
  7. 同事
    不言而喻:每个人都可能有一个他特别欣赏的同事。 不是。
    对于软件开发人员而言,同事之所以不喜欢,主要是由于他们工作质量的缺乏或自我的完全失落,David Fox说。
  8. 面试
    如果软件开发人员正在寻找工作并被邀请参加工作面试,那么通常会有些抱怨:
    “愚蠢的问题或在求职面试中解决完全不切实际的任务的解决方案,就像一个甚至不知道开发人员实际工作的对话伙伴一样,对开发人员来说也令人沮丧。”
  9. 错误与错误
    软件开发人员必须每天处理错误和错误。 这就是为什么devRant创始人Fox认为开发人员在此问题上的看法不同:
    “大多数其他问题都没有得到积极的解决,但是错误和错误是可以修复的,感觉很好。”
  10. 品质保证
    质量保证(QA)或质量保证是软件开发的关键部分。 但是,Fox说,软件开发人员经常向质量保证专家抱怨产品和项目经理的事情。
    “质量检查人员在开发人员完成产品或项目后就将其交给了他们,因此他们常常不理解开发人员在开发过程中必须面对的障碍和变通方法。”质量检查人员要求开发人员也很常见。重做他们可以应付的领域。”

瀑布脏话

在这种背景下,“瀑布”几乎被视为一个脏话,表示仍然使用这种软件开发方法的公司在现代尚未出现。 但是,请注意:

1.没有一种软件方法论本身是好是坏。 相反,它必须始终是针对正确的产品和给定的框架条件选择正确的方法。 一直都是那样。 不幸的是,通常情况下,无法获得有关不同方法及其实现的深入知识。 而且,对解决所有问题的“一种方法论”的希望似乎导致了不必要的简化。

2.瀑布通常被口头描述如下:“连续数月记录需求,然后构建软件数月,然后专家部门才将软件视为测试的一部分。” 评论家认为,在这种情况下,各部门可能太迟才提供该软件,更改将非常昂贵,并且灵活性将不复存在。 在这种背景下,有必要阅读瀑布方法的真正含义。 1970年,温斯顿·罗伊斯(Winston W. Royce)发表了他的论文“管理大型软件系统的开发”,他被认为是瀑布方法论的创始人之一。 阅读时令人惊讶:文档是Royce软件开发中的绝对关键因素。 这似乎与当今的敏捷方法背道而驰。 但是,此处应考虑以下几点:

•一方面,著名的《敏捷宣言》并不是在谈论不需要文档,而只是将“工作软件”的权重提高到“综合文档”的权重。

•另一方面,所需的文档级别始终取决于要开发的系统类型。

罗伊斯(Royce)的工作包括创建用于太空任务的计划,执行和分析的软件。 可以想象,这样的系统需要很高水平的文档。

值得注意的是,罗伊斯(Royce)当时意识到了采用瀑布法的风险,并且在他的论文中还提出了如何将这种风险最小化的方法,即通过

•在项目开始时就创建目标产品的愿景和初步设计,

•在不断发展的可执行软件的意义上创建早期原型,以及

•使最终客户参与开发过程的每个阶段。

所有这些事情今天都应归因于“敏捷主义者”的阵营。

还应该记住,当今敏捷方法背后的许多概念不一定是新概念。 对于大型机的婚礼,开发人员通常直接与部门进行交互,并且以较小的周期实时展示新产品的版本。 但是,不幸的是,在工业化和CMMI时代,引入了许多层次结构和过程,使开发人员与最终用户之间的距离越来越远。

敏捷原则

明确地说,敏捷原则对于当今的业务至关重要。 工业化软件开发的时代已导致许多过剩问题,敏捷运动已经纠正了这些过剩问题。 这是实现实际主题的基本,正确和基本前提,即使公司整体上“敏捷”,并显着提高自己的创新速度。

但是,重要的是不要落入陷阱并盲目相信诸如Scrum或SAFe之类的方法。 比方法学更具有决定性的是理解它们并根据经验丰富的人员使方法学适应情况的原理。 反过来,敏捷软件开发对于真正的敏捷公司而言只是很小的组成部分。