软件开发人员长期以来一直是有动力的优化创建优秀代码的过程。这涉及到提高您的技术技能,例如理解使用给定的编程语言可以实现什么。

但这是容易的一部分。

任何重要的软件应用程序也是项目管理的一种实践,这意味着最大化整个开发团队的生产(“我们在做什么?”我们如何完成它?”),以满足软件要服务的用户的需求(“它完成了吗?”“这不是我想要的!”)。

这是艰难的部分。

几乎只要软件出现了,开发人员就试图将软件开发转变为具有已知的和可控的输入和输出的工程过程——并取得了混合的成功。在此过程中,聪明的人们提出了各种各样的方法和方法,希望能够解决这个问题,从敏捷到瀑布,从看板到Scrum。每一种都有其独特的优点和缺点,以及最佳的用例。

这一概述旨在将一些最受欢迎的方法透视,并希望能够清理挥之不去的混淆,究竟是他们是什么以及他们对的东西。想到它,你最不需要了解每个人!

但请记住,这些差异并不总是容易的。定义往往令人惊讶地令人奇迹。对于许多人来说,主要区别在瀑布和敏捷方法之间,Kanban,Scrum和类似的方法看作是敏捷的子类别,强调迭代的发展。这是我们将在此处采取的方法,但是已知开发人员从事与这些问题有关的一切,从无论是“敏捷”都应该资本化!

瀑布:发展过程下游流动

回到1970年——那时主机在地球上行走,开发项目是以年而不是以月为单位计算的——温斯顿罗伊斯通过建议赚取名望软件是按线性过程序列开发的。瀑布软件生命周期建议单独的需求分析,设计和开发阶段,因为水流下游,并且不会返回其来源。换句话说:首先,我们决定我们需要创建的内容,然后我们设计它,然后我们构建它。

瀑布方法在要求和产品定义清晰固定时,最佳工作,没有含糊不清。如果技术很了解,该项目相对较短,所需的知识很容易获得,这可能仍然是去的方式。

然而,有时被称为“预先大设计”的瀑布没有任何方法来修改沿途的计划。由于工作软件直到项目生命周期的后期才产生,目标中的任何更改都可能产生令人讨厌的、耗时的和昂贵的惊喜。尽管许多大型组织——尤其是那些有着严格的遵从性需求的组织——仍然被锁定在瀑布方法中,但是对于复杂的项目,最佳实践现在很大程度上拒绝使用瀑布方法,特别是那些在需求可能发生变化的地方具有风险和不确定性的项目。

敏捷:迭代中的发展

在敏捷 - The-the-the-the-the-the-the-phzzword围绕folderol丢失它很容易。为了掌握基础知识,首先读取原件敏捷宣言。最重要的是,敏捷是一种灵活的心态,伴随着鼓励适应性、协作和响应性的工具和方法。

敏捷开发可以帮助开发人员创建真正满足用户需求的软件,并比“预先设计”计划更快地将软件交付给用户。但是敏捷需要所有涉众的全面参与。当业务代表不参与时,开发人员就会构建无法满足客户需求的产品。亚博最新版直播当下游角色被忽略时,释放时间表就会滑动。

“敏捷”是一个宽阔的雨伞,其中李单面有许多方法。这些方法都分享了自适应改变的态度,并使用迭代开发实例化灵活性。偶尔开发人员认为,特定的选择方法是其他(更好!)而不是敏捷,但我们会避免在这里开始任何火焰战争。

最重要的是,敏捷是一种心态。它基于这样一个前提:应用程序开发应该是创建者和用户之间的协作练习,这样做意味着每次完成一点。这样,无论在哪个开发阶段,用户手中总是有一个工作的应用程序——它只是随着时间的推移而变得越来越强大。

然而,Teams实际上如何在那个前提下递减。任何组织“DINESIGE”都易于使用下面列出的至少一个方法,并且可能有几种。它的混合和匹配 - 救援组织倾向于使用什么生成最佳代码。

极限编程

极限编程(XP)是由肯特·贝克(Kent Beck)领导的,他在1999年写了这本书极限编程解释说明它的主要原则包括强调开发周期短的频繁发布;结对编程(稍后详细介绍);定期的构建和集成测试;快速和定期的反馈;保持代码简单,只创建需要的代码。

通过XP,开发人员坐下来与用户或客户以自己的方式描述他们希望申请的用户;功能和功能以高级业务术语描述。这些用户故事蒸馏以适合单个索引卡,使预测和跟踪利益相关者的目标更容易。

XP也使用测试驱动的发展(TDD)。在创建代码之前首先写入自动单元测试,以确保代码覆盖,从而更好的软件质量。

XP的另一个元素 - 有时也用其他敏捷方法使用的是对编程,两名开发人员一起工作,创建可用于生产的代码。“一起工作”意味着肩并肩共用一个键盘。结对编程的一个好处是,代码定期由不止一个人检查,这提高了质量;另一个是其内在的个人和组织知识共享。

Scrum

Scrum关于写作和测试代码的技术过程(例如对编程)的技术过程比Teamwork的技术进程。Scrum开发团队将项目分解为简短时间箱具有明确定义的工作要求,在短时间内框架。应用程序的功能 - 用户故事再次分组为批次的可交付,可行的功能,该批次在一个至六周时间框架中创建和部署冲刺。sprint包括了从设计、开发、测试到客户对这些特性的验证的所有事情。在sprint结束时,新功能已经准备就绪,并且通常部署到生产环境中。

Scrum的另一个元素是它的每日站立或每日Scrum会议。这些简短的地位会议让每个人都在循环中,因为每个团队成员答案三个问题:我昨天以来做了什么?我今天在做什么?我有任何障碍吗?

看板

两个人使用了寻呼方法Kanban方法基于招牌的想法,旨在使用视觉过程管理系统“正常”软件交付。其目标是指导队伍在生产的地方,何时生产它,以及生产多少。与其他敏捷方法一样,这个想法是经常制造小而有影响力的变化。

通过可视化工作流程的Kanban Board。它可以记录和跟踪“需要做些什么,由谁,当开发人员和他们的用户可以了解他们今天的位置,并使用更改管理方法从那时起发展。板(物理一个或虚拟等同物;有几个工具可用)通过系统朝向整体目标进行工作流程。Kanban Loards有助于使开发人员集中在开始新的任务之前,在开始新的一个新的任务之前。

scrumban.

Scrum和Kanban以不同方式使用时间块。使用Scrum(纯粹意义上的那些)选择将在下一个Sprint中寻址的内容,并将自己锁定到该功能集中,直到工作完成。Kanban让开发人员随时更改队列中的项目;工作从一个故事流到另一个故事,没有集合“冲刺结束”。最初设计为从Scrum到Kanban的过渡,scrumban.这两种方法的混合是使用Scrum作为一种工作方式,还是用看板来看待如何他们工作。

精益软件开发

背后的想法精益软件开发来自于对制造过程的普遍看法。前提是每个流程和资源都必须直接为客户创造有价值的东西,你做的其他任何事情都是浪费。由玛丽和汤姆poppendieck和他们的书,精益软件开发:一个敏捷的工具包,精益软件开发原则强调开发人员应该只创建满足可识别用户需求的代码。就像“准时制”制造一样,精益开发建议你尽可能晚做决定,避免假设,并专注于速度到市场。使用精益,开发者被鼓励看到整体——专注于整个产品体验而不是它的部分。

还有很多其他的选择

有大量的其他软件开发方法。我们没有进入功能驱动开发或者理性统一过程例如,这些都是流行的选择。

强调,虽然所有这些过程都有他们的福音书,但是,只有在您对团队和项目的特殊需求中拟入时,才有最有效的世界。

事实上,如果您正在寻找切换或升级编程方法,它通常会读取书籍,然后开始死记硬背实现几周,看看它是如何工作的。然后,一旦您使用它使用它来解决真正的问题而不是投机性的体验,您就可以开始剥离导致问题的事物或者不要增加价值,同时添加对您的团队需求有意义的新内容。

自1992年以来,Esther Schindler通过从Geek转化为英语来实现生活。找到她推特Facebook, 和Google+,在那里她肯定会让你分散到你完成的工作工作。查看帖子

对新遗物博客的写作有兴趣吗?亚搏体育登入网给我们发一份建议书!!