优雅的骆马的敏捷软件开发

优雅的骆马的敏捷软件开发

2015年2月17日发布 in 发展历程
通过持续优化来增强用户体验
通过持续优化来增强用户体验
2015年1月26日
使Magento代码更具可移植性
使您的Magento代码更便携
2015年7月28日

什么是敏捷?

敏捷已成为软件开发行业中非常普遍的术语。那么什么是敏捷?敏捷软件开发的某些概念早在软件开发初期就已出现,但作为一个具有凝聚力的概念,敏捷软件开发是通过创建一个非常简短的文档(定义如下)定义的。

“我们正在探索通过开发软件并帮助他人开发软件的更好方法。通过这项工作,我们开始重视:

个人与流程和工具之间的互动

通过全面的文档工作软件

客户合作而非合同谈判

响应计划变更

也就是说,尽管右侧的项目有价值,但我们更重视左侧的项目。

肯特·贝克 迈克·比德尔 阿里·范·本尼库姆 阿利斯泰尔·考克本(Alistair Cockburn) 病房坎宁安 马丁·福勒 詹姆斯·格林宁 吉姆·海史密斯安德鲁·亨特 罗恩·杰弗里斯 乔恩·科恩 布赖恩·马里克 罗伯特·马丁 史蒂夫·梅洛尔 肯·施瓦伯 杰夫·萨瑟兰 戴夫·托马斯(Dave Thomas)

©2001,以上作者 该声明可以任何形式自由复制, 但仅通过本通知的全部内容。”

敏捷宣言提高了个人和交互,工作软件,客户协作以及对变化做出响应的重要性。敏捷软件开发的这些原则定义了使用敏捷方法论的目标和意图,但对于如何实现这些目标却没有明确的规定。不同的个人,团体和公司提出了许多方法来记录一组规则的特定实施,以实现《敏捷宣言》的目标。在听说过敏捷之前,包括Scrum,看板,极限编程,自适应软件开发等在内的任何人都可能认识到一些最杰出的实现。还有许多敏捷概念可以跨敏捷软件开发的多种实现,包括积压,冲刺,跨功能团队,迭代和增量开发,结对编程,规划扑克,用户故事,回顾,速度跟踪等等。当听到某人是“using agile,”他们的目标应该围绕个人和交互,工作软件,客户协作以及对变化的响应为中心。

优雅的骆马’s Implementation

由于围绕敏捷软件开发的各种实践,当公司说他们使用敏捷方法论来构建软件时,其含义是多种多样的,而且不一致。为了消除混乱并帮助回答以下问题“当他们谈论敏捷时,Classy Llama是什么意思?”,我将记录我们实施敏捷软件开发的一些最重要的部分。我不会讨论Classy Llama我们为实现敏捷所做的每件事,也不会总是与我们在每个项目上所做的事情相匹配,但是我的目标是记录一些我们Classy Llama优先考虑的事情并强调何时做软件开发。

有关: 详细了解我们的 电子商务网站开发 服务。

 

在我们努力将敏捷作为一家公司实施的过程中,我们发现许多传统的敏捷培训,书籍和教练都是为制造产品的人们而设计的,而不是针对广泛客户进行有针对性的定制开发的人们。这导致我们尽可能地实施敏捷,同时对特定品牌的敏捷开发可能无法为客户服务的可能性非常开放。公平地说,我们实施敏捷是一个敏捷过程。起初真正具有挑战性的事情之一是,当我们从瀑布式管理转向敏捷项目管理时,我们没有一套完整的指导方针可交给我们。我们只是开始遵循一些敏捷过程,随着人们对它们的掌握,我们引入了更多,更多,更多。有时这会导致人们抵制,他们倾向于在做任何事情之前都要对所有内容进行充分的记录和清除。最终,我很自豪地说我们向敏捷的过渡非常顺利。

下面,我将详细介绍与项目管理和开发团队的日常工作以及使您的项目前进的最紧密联系的敏捷实践。我可能会在以后的博客文章中详细介绍我们用于跟踪项目的一些方法’进度与计划之间的关系,以及我们如何从一个项目到另一个项目迭代地学习和构建流程。

积压和冲刺

我们使用的大多数客户端可见的敏捷实践可能是积压和冲刺。 待办事项是功能的优先列表。它应包含在任何给定时间完成项目所需的所有功能。与这些功能相关的估计和详细信息有助于我们就项目的优先级和计划进行对话。 随着项目的进行,此积压工作得到了定义。最初,此积压工作从直接从提案中获取的项目列表开始,该提案已交付给客户,并与每个网站构建成功启动所需的基本任务列表合并。在整个项目过程中,最终积压的积压量通常高达积压量的70%或更多。重要的是要了解,此积压不是固定列表。随着任务获得更多定义(将一个任务拆分为多个任务),发现新任务,完成任务以及认为不必要任务,它会发生变化。使用此积压工作的目的是在中心位置记录项目将包括的所有功能。我们使用积压工作按优先级对事物进行排序,并在中心位置拉出开发任务,并根据项目预算跟踪项目剩余的估计时间。

冲刺与积压工作有着千丝万缕的联系。没有冲刺,待办事项只会增加大小和定义。这是瀑布和敏捷方法之间的主要区别之一。使用敏捷,您可以使用与积压类似的东西,但是您可以在开始任何开发之前将其构建为已完成的东西。当我们引入冲刺时,待完成的积压工作在不断增加,变化和不断增加。 冲刺是商定的时间段的一个实例,该时间段用于完成待办事项中的下一个最重要的功能。 这意味着,如果Classy Llama和给定的客户同意两周的冲刺最适合推进项目,则在第一冲刺中,我们将花两周的时间来完成最重要的项目,以完成我们拥有的项目足够的信息来处理。这些项目将从待办事项的顶部拉出,并将在进行冲刺的冲刺计划会议期间放入冲刺。因此,如果我们在前两周的冲刺中要进行十二天的开发(在所有开发人员之间),那么我们会将积压顶部的所有项目都放入冲刺中,因为我们估计将适合十二个开发天。

用户故事

我们已经讨论了待办事项和冲刺,它们都是由任务组成的。任务是一个可以独立识别和估计的项目,它与功能,错误修复或其他工作项目相对应。 用户故事是我们用来明确定义任务的一种工具’s goal and purpose. 用户故事定义为包含三个主要部分的句子。用户故事的组成部分依次是谁,什么,为什么。这三个组件放置在模板中,以创建我们称为用户存储的内容。“作为[n] ____________, 我想要 ____________ 以便 ____________。”例如,假设有一种情况,商家想要吸引客户’的员工识别号,用于验证员工’作为公司采购代表的身份。描述这种情况的潜在用户故事可能是这样的:“As a customer, 我想要 以便在网站上轻松验证我的身份 以便 在网站上购买商品之前,我无需致电或发送电子邮件标识。”看完以前的用户故事后,您可能会认为您希望它从完全不同的角度进行讨论。绝对可以从不同角度描述同一情况。代表相同情况的另一个用户故事可能是:“作为一个 网站管理员, 我想要 能够轻松收集就业确认信息 以便 我可以快速核实工作状态,而不必采取其他不必要的步骤。”有趣的是,以上两个用户故事都讲述了一个相对相似的故事,但是它们之间只有一个主要区别。在第一个用户故事中,暗示客户很可能是在购物之前必须打电话或写提供验证的客户。但是,第二个故事表明,验证的负担通常会落在网站管理员身上。在某些情况下,两个用户故事都可能有助于准确描述此功能的目的。关于此任务,至少还有一个其他的用户故事可以告诉您,这将大大改变任务周围的环境。“作为一个 经理, 我想要 以便能够轻松查看有关允许在我公司购买商品的员工的信息’s behalf, 以便 我可以适当地跟踪和管理员工的活动。 ”在此用户故事中,上下文完全不同。这不再是用于在客户和网站管理员之间简单地来回传递信息的字段。现在有一位公司管理员可能直接在网站上参与了验证过程。此用户故事可能与讨论更大的一组功能集的较大用户故事有关,例如:“作为一个 经理, 我想要 有一个门户来跟踪我的员工’本网站的使用’购买功能 以便 我可以批准,跟踪和管理他们的活动。”用户故事不是我们的所有客户都可以使用的工具,但对于客户能够与我们交流上下文或对我们向客户展示对任务的上下文理解非常有用。

结论

敏捷是一个巨大的话题,而不是我可以在单个博客文章中讨论的话题。我已经谈到了敏捷在很大程度上围绕软件开发的心态,每个使用敏捷的人在使用该术语时是如何略有或根本不同的,以及我们如何使用积压,冲刺和用户故事来组织和与客户交流最多的东西他们项目中的重要内容是。我们选择使用敏捷的最重要原因是(1)提高可见度和(2)同时降低客户和公司的风险。我们发现敏捷已经通过消除项目中不必要的项目并确保最重要的项目首先完成而帮助我们实现了这一目标。通过为客户提供工具来指导他们的项目方向,以适应业务变化的需求,并在项目过程中得到明确说明,我们能够建立更多成功的项目,并能按预算,按时按时投入预算,可靠地。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.

最近的帖子查看全部
2020年10月22日

Covid世界中的假日销售:应对挑战

毫无疑问,2020年是历史性的一年。火灾,全球大流行,暴动,老虎王等’只是冰山一角。如 […]
2020年8月7日

涡轮增压ZZPerformance的付费搜索

2020年7月30日

Intermix Beats M1 End of Life with 优雅的骆马 Accelerator