Questions tagged «agile»

敏捷软件开发是基于迭代和增量开发的一组软件开发方法,其中需求和解决方案通过自组织,跨职能团队之间的协作来发展。

6
什么是故事积分的最佳解释是什么?
我们在这里开始使用Story Points进行敏捷开发,但是我很难解释,也找不到任何明确的答案。我能做的最好的事情是指向其他站点(例如http://blog.mountaingoatsoftware.com/tag/story-points),并对它们的含义进行一些模糊的概括。我正在寻找一些使用示例的良好解释,这些示例将对其他使用示例有所帮助。有没有很好的资源可以解释故事要点?

4
Scrum-冲刺期间团队成员忙什么
因此,Scrum冲刺是一个固定的时间段,在此期间应实现一组特定的功能。Scrum团队由致力于提供这些功能的所有人员组成,其中大多数通常是开发人员和测试人员。 建立了这些规则后,您可能会想知道如何在整个冲刺期间让所有这些人都忙。在sprint的开始阶段,没有什么要测试,而在sprint的末尾,通常没有什么东西可以开发/修复。 我已经看到了两种方法可以解决此问题,但是它们似乎都无法正确解决问题。 1)让团队成员决定在任务结束时应该做什么。 缺点: 如果他们的工作没有得到充分的计划(例如,重大的重构,改用新的测试框架),那么他们的工作可能会变得毫无用处,或者被困在中间 另一方面,计划这样的工作可能要花费大量时间,并且客户可能会失望地看到团队浪费时间在无法带来即时价值的事情上 通常无法对这些任务进行彻底的估算,因此,无原则的工作人员很容易花时间看YouTube猫,而不会在Scrum板或其他任何地方反映出来 2)在sprint中留出仅用于开发的空间,并在sprint完成后开始测试(当开发人员开始处理下一个sprint的功能时) 缺点: 在为当前sprint开发功能时,开发人员会通过修正前一个bug来分心,而他们可能无法执行估计在当前sprint期间完成的工作量 需要两个Scrum板:一个用于当前的sprint功能,一个用于以前的sprint错误 所以我的问题是:如何在开发人员和测试人员之间的冲刺期间正确分配工作,以使任何人都不会负担过多的工作,或者在任何时候都没有任务而最终失败?有什么方法可以改善上述方法?还是有更好的方法?
33 agile  scrum  sprint 

8
在哪里学习新技能适合敏捷?
我正在创建一家金融软件公司,在此过程中,我一直在研究敏捷原则和方法,而我尚未看到的开发方面之一是在哪里满足开发人员不断学习新技能和新技术的需求处理。 在过去几年从事财务软件工作之前,我大部分时间都是3D图形程序员,从事视频游戏以及GIS和生物识别软件的开发,而我一直很简单,就不得不从悬崖下钻研东西,并弄清楚如何飞。虽然我一直都成功,但我确信如果我没有一次又一次地每周工作数百个小时,甚至数月不致自杀,我将不会活到现在。 现在,我正在创建一家软件公司,该公司对3d图形的创新要求不高,因此我想建立一种更全面的开发方法。 也许敏捷只是不能解决这个问题,但是如果可以解决,那么我还没有找到答案,我将不胜感激任何人对此具有的专业知识或经验。
32 agile 

9
我们应该避免在不断变化的项目中使用设计模式吗?
我的一个朋友正在一家小公司工作,每个开发人员都讨厌这个项目:他被迫尽快发布,他是唯一一个关心技术债务,客户没有技术背景的人。 他给我讲了一个故事,使我想到了这样的项目中设计模式的适当性。这是故事。 我们不得不在网站的不同位置展示产品。例如,内容管理者可以通过API查看产品,还可以查看最终用户或合作伙伴。 有时,产品中缺少信息:例如,刚创建产品时,其中一堆没有任何价格,但尚未指定价格。有些没有描述(描述是具有修改历史,本地化内容等的复杂对象)。一些缺乏货运信息。 受到最近关于设计模式的阅读的启发,我认为这是使用神奇的Null Object模式的绝佳机会。所以我做到了,一切都变得顺畅而干净。只需致电product.Price.ToString("c")显示价格或product.Description.Current显示说明即可;不需要有条件的东西。直到一天,涉众要求通过使用nullJSON 来以不同的方式在API中显示它。对于内容管理者,也显示“未指定价格[更改]”,这也有所不同。而且我不得不谋杀我心爱的Null Object模式,因为不再需要它了。 同样,我不得不删除一些抽象工厂和一些建筑商,最终我通过直接和丑陋的调用替换了我美丽的Facade模式,因为底层接口在三个月中每天两次更改,甚至Singleton也离开了我当需求告知相关对象必须根据上下文而不同时。 超过三周的工作包括添加设计模式,然后在一个月后将其撕裂,我的代码最终变得面目全非,甚至包括我自己在内的任何人都无法维护。最好首先不要使用这些模式,这会更好吗? 确实,我必须在那些要求不断变化的项目类型上工作,而这些项目实际上是由那些并不真正考虑产品的凝聚力或一致性的人所决定的。在这种情况下,无论您有多敏捷,都将为问题提供一个优雅的解决方案,当最终实现该问题时,您会发现需求发生了巨大变化,以致于您的优雅解决方案不适合不再。 在这种情况下,解决方案是什么? 是否不使用任何设计模式,停止思考并直接编写代码? 进行一次团队直接编写代码,而另一个团队在打字之前三思而后行的经历会很有趣,这冒着几天后不得不扔掉原始设计的风险:谁知道,也许两个团队都会拥有同样的技术债务。如果没有这样的数据,我只断言,它不觉得不对劲,恕不另行思维上有20人月的项目工作时输入代码。 保留不再有意义的设计模式,并尝试为新创建的情况添加更多模式? 这似乎也不正确。模式用于简化对代码的理解;放置过多的模式,代码将变得一团糟。 开始考虑包含新要求的新设计,然后慢慢将旧设计重构为新设计? 作为一名理论家和偏爱敏捷的人,我完全投入其中。在实践中,当您知道必须每周回到白板并重做以前的设计的大部分内容时,并且客户只是没有足够的资金来支付您的费用,也没有足够的时间等待,这可能行不通。 那么,有什么建议吗?

10
Scrum:如何整合一个超卓成就的开发者完成的工作?
我们有一个“典型的” SCRUM团队,我们致力于冲刺,并保持积压。最近,我们遇到了一个问题,即试图集成/处理一个超能力的开发人员进行带外工作(选择在正常工作时间/冲刺之外工作)的工作。 举个例子,如果团队承担了50个工作点,那么说他们将在sprint结束之前完成SCRUM框架内的所有工作,并且他们和公司都很高兴。团队成员之一决定自己在空闲时间上处理积压项目。他们不签入此工作,而是保存它(我们使用TFS,它在架子集中)。 如何处理呢?一些问题.. 在下一次冲刺期间,该团队成员说,编程工作已完成99%,仅需要代码审查和测试。您如何在SCRUM和敏捷方法中处理此问题? 其他开发人员抱怨说,由于工作是在带外完成的,因此没有参与与这些故事相关的设计决策。 我们的产品负责人很想参加这项“免费”的工作,而过分追求成就的成员可能会故意这样做,以便使产品获得更多功能,否则团队将无法在冲刺中完成这些功能。有观点认为这正在打破“进程”。显然,质量检查,UI和文档工作仍需要完成。 我看到了很多关于不强迫SCRUM团队加班的讨论,但是团队成员的工作超出了Sprint计划和执行过程中提出的期望又超出了预期吗?我会犹豫要与这个人打交道,并说你不能做更多的工作(当然要小心烧伤),但与此同时,这似乎在团队的某些成员(但不是全部)上引起了一些问题。 如何将一个过高的成员完成的工作整合到SCRUM和敏捷过程中进行软件开发?
32 agile  scrum  team 


6
敏捷与XP有何不同?
我在网上阅读了几篇文章,以了解敏捷,XP,Scrum,结对编程之间的区别/彼此之间的相互关系,并得出以下结论: Scrum和XP几乎相同。XP的发布时间比Scrum短 敏捷和XP方法中都采用了结对编程 但是我无法确定敏捷与XP有何不同。 除了提供URL,我将很高兴阅读您对此的经验和想法。

7
敏捷团队是否应该每天提供新功能?
我的公司正处于从瀑布式开发到敏捷/ Scrum的过渡中。别的不说,我们被告知的期望是的,我们有新的工作,可测试(由QA)在每一天结束的功能。 我们的大多数开发人员每天损失约2个小时的会议时间和其他企业开销。这意味着在任何给定的6个小时(最好)的时间内,我们必须设计,编写,单元测试,构建和部署(带有发行说明)足够的代码,以产生可供QA使用的完整功能。我知道可以使用正确的CI设置来自动进行构建/部署/发布说明,但我们还没有。 我们还拥有一支庞大的海上队伍来编写我们的服务器端代码,而12小时的时差使这一点变得更加困难。 我们试图将故事分成狭窄的垂直部分,以尽可能快地完成端到端的功能,但是大多数日子过得很疯狂,我经常发现人们采取愚蠢而脆弱的捷径来确保QA的建立。在冲刺进行了几天之后,不可避免的缺陷开始出现并且必须适应相同的6小时窗口,此问题变得更加复杂。 对于敏捷团队来说,这是正常的步伐吗?即使我们设法实现CI设置,我也看不到我们如何能够保持这种步伐并仍然创建高质量的软件。 编辑: 这里有几个很好的答案。这让我意识到,我真正要问的是,敏捷团队是否应该每天提供新功能。我相应地更新了标题。
31 agile  scrum 

11
一个程序员的Scrum?[关闭]
在我很小的公司中,我被誉为“ Windows专家”,其中包括我自己,担任销售和培训职位的机械工程师以及担任设计,开发和支持职位的公司总裁。 我的角色与一般情况相同,但主要是我设计和实现产品上需要完成的所有编程,以便我们的产品可以在任何最新版本的Windows上运行。 我刚刚看完了网络广播中对Scrum范例的高级概述。我的问题是:鉴于我的开发工作项目通常是在很高的层次上给出的,例如“产品国际化和本地化”,是否值得我花更多时间来学习这种产品开发方法。 如果是这样,您将如何建议改编Scrum以仅使用一名程序员?有哪些工具(基于云的工具或其他工具)对此有用? 如果不是,您会建议一个程序员每天采用哪种方法来组织他的工作?(也许问题简化为那个简单的问题。)

8
测试驱动开发(通常是敏捷)的这种局限性在实际上是否相关?
在测试驱动开发(TDD)中,您从次优解决方案开始,然后通过添加测试用例和重构来迭代地产生更好的解决方案。该步骤应该很小,这意味着每个新解决方案都将以某种方式位于前一个解决方案的附近。 这类似于数学上的局部优化方法,例如梯度下降或局部搜索。这种方法的一个众所周知的局限性是它们不能保证找到全局最优值,甚至不能保证找到可接受的局部最优值。如果您的起点与所有可接受的解决方案之间有很大范围的不良解决方案,则无法到达此目标,该方法将失败。 更具体地说:我正在考虑一个场景,在该场景中,您已经实现了多个测试用例,然后发现下一个测试用例将需要一种完全不同的方法。您将不得不放弃以前的工作,然后重新开始。 这种想法实际上可以应用于所有以小步骤进行的敏捷方法,而不仅仅是TDD。TDD与局部优化之间的拟议类比是否存在严重缺陷?

6
当驾驶员和观察员具有不同的技能水平和经验时进行配对编程
我知道结对编程是一种敏捷的软件开发技术,其中两个程序员在一个工作站上一起工作。一个是驱动程序,编写代码,另一个是观察程序,查看键入的每一行。 但是我只是想知道这种策略在这种情况下是否仍然有效。例如 如果他们有非常不同的编程技能水平。 如果一个人从未在问题领域经历过,而另一个人则在经历过。 如果他们的编程技能水平低,还可以吗? 您能建议上述情况下的结对编程策略吗?

8
在开发人员之间分配工作的最佳方法是什么
我和我的团队正在重建我们大约十年前开发的网站,我们希望在敏捷中做到这一点。 因此,在花了很多时间阅读(可能还不够)之后,我遇到了一个问题,即如何在开发人员之间划分工作。 我将更具体地讲,该站点被划分为彼此之间没有太多集成的单独模块。 在开发人员之间划分工作的最佳/最公认的方法是什么? 给每个人一个不同的模块进行工作。 将所有开发人员分配到同一模块,并按模块的不同部分(UnitTesting,DAL和映射,逻辑,UI)划分工作 将所有开发人员分配到同一模块,并按不同的逻辑划分工作(例如,每个开发人员负责一个特定的逻辑(可能是BL中的一个方法),以及UnitTesting,DAL,Mapping和UI ... 也许是完全不同的东西?

6
Scrum是否为需求不变的项目增加了额外的开销?
我正在阅读Gunther Verheyen撰写的Scrum-A Pocket Guide,它说: Standish Group的2011年混乱报告标志着一个转折点。在比较传统项目和使用敏捷方法的项目时,进行了广泛的研究。该报告表明,即使以前认为软件必须按时,按预算并在所有承诺范围内交付的旧期望,采用敏捷方法进行软件开发也会带来更高的收益。该报告显示,敏捷项目的成功率是传统项目的三倍,失败的敏捷项目则少三倍。 因此,我与一位同事争论,他说对于某些项目(例如要求不变的医学/军事),敏捷(尤其是Scrum)在所有会议中都是开销,等等,这更合乎逻辑。例如使用瀑布。 我的观点是,应该在此类项目中采用Scrum,因为这将使过程更加透明并提高团队的生产力。我还认为,如果不需要Scrum事件,将不会花费很多时间,因为我们不需要在Sprint Planning中花整个8个小时来进行1个月的冲刺。我们可以抽出5分钟的时间来确保我们都在同一页面上并开始工作。 那么,Scrum会为需求不变的项目增加额外的开销吗?

1
如何以敏捷开发人员的身份编写“ SMART”目标?
与许多公司一样,我工作的公司正在过渡到基于SMART目标的绩效评估系统。我的团队是一个高效的敏捷开发团队,采用了Extreme Programming的实践。为了使我们受益匪浅,我们在敏捷实践中的使用得到了直接和高层管理人员的全面支持。 为了完成工作,我们的团队利用了三周的迭代时间。除了立即迭代之外,我们还制定了一个总体计划。这意味着我们从现在开始的几个季度将要完成的工作比我们在最近一个季度将要完成的工作要模糊得多。我们当然对项目的发展方向有一个大致的了解,但是这里的关键字是general。 考虑到我们对团队中项目规划人员的态度,包括我自己在内,发现很难写出具体,可测量,可实现,相关且有时限的目标(SMART)。 关于SoftwareEngineering.se的两个现有问题很好地解决了我们的一些担忧: 对程序员来说,一个好的SMART目标的例子是什么? SMART目标对程序员有用吗? 但是,在敏捷开发团队中工作时,这些问题在处理SMART目标方面引起了比具体问题更多的一般回答。作为敏捷开发人员,您如何编写五到七个长达一年的目标,这些目标是特定的,可测量的,可实现的,相关的且有时间限制的?

4
如何制止镀金并满足于发布工作进展
我所属的开发团队最近适应了敏捷实践的工作。这个人突出地表明了一个事实,就是我无法停止自己的镀金代码(和文档),因此,当我可以更早地交付满足要求的解决方案时,我就超出了最初的估计。 我认为我的道德观念与强迫症接壤,因为我过于依赖自己的代码,在重构和完善到第n级之前,很少满足于发布。我很高兴自己意识到了这一点,但是我如何才能改变自己的态度/心态来满足自己的进步并按时发布呢?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.