一个人可以采用敏捷技术吗?

时间:2010-02-01 09:42:44

标签: agile

目前正在寻找工作,我看到很多地方都在寻求敏捷体验,但在我找到一个使用敏捷的团队工作之前,我怀疑我永远不会得到这种体验。

是否有可能只与一个人采用敏捷方法?

回答我自己的问题,有类似的问题: -

(我想我应该更好地搜索。)

10 个答案:

答案 0 :(得分:12)

你似乎从工作经验的角度来看待这个问题;如果您希望建立相关的经验来帮助您获得敏捷项目的工作,我可能会更多地考虑一下。

首先,您是否可以与其他人合作,也许是在开源项目上?这将是一个很好的机会,可以与其他可能有更多经验的人一起尝试敏捷方法。

其次,您可以考虑使用一些常用技术或工具,即使只是为了了解这些工具的工作原理 - 例如您可以设置一个继续集成服务器,以便在签入代码时运行构建和单元测试。如果你自己工作,你就不会在生产力方面获得太多收益,但是你会获得一些技能,并且对未来的雇主有相关的信息,这表明你已经致力于敏捷的风格。

答案 1 :(得分:11)

查看PXP或个人极限编程。

http://portal.acm.org/citation.cfm?id=1593127

论文摘要:

  

个人极限编程(PXP)是   一个软件开发过程   单人团队。它是基于   极限编程(XP)的值   即简单,沟通,   反馈和勇气。它的工作原理   保持XP的重要方面   并改善价值观以便他们   可以适合单独的程序员   情况。 PXP仍然可以改进   并改善。这是传统   XP从业者改变XP到   涵盖任何有效的东西。我们希望   PXP继承了这些务实   根,也是。 放弃XP原则   喜欢结对编程不是   必然是一个悲剧 。我们仍然   相信严格遵循XP是   一种更有效的追求方式   多人项目。但我们也是   确信很多XP   可以应用实践和方法   个人工作。 PXP   方法试图平衡   “太沉重”,“太轻”   方法。 PXP将注入   适量的严谨   没有负担过重的情况   有不必要的官僚主义的团队。

答案 2 :(得分:7)

是的 - 可以作为个人进行许多敏捷的实践

如果您已经知道如何执行这些操作,则可以将其作为唯一的开发人员执行:

  • 测试驱动开发 - 开始的好地方
  • 重构
  • 持续整合
  • 做最简单的事情,可能有效(并通过重构发展)
  • 自动部署
  • 计划会议(一个加一个客户的团队)

您无法自行完成的事情:

  • 结对编程
  • CRC / RRC研讨会(......你必须与自己交谈很多)

答案 3 :(得分:4)

对编程很难这样:)

让我们检查Agile Principles

  • 有关流程和工具的个人和互动
  • 工作软件而非综合文档
  • 客户协作超越合同谈判
  • 响应变更而不是遵循计划

即使在单独处理某个个人项目时,您也可以完成所有这些工作。您也可以在单独工作时使用GTD,您可以通过迭代开发产品,您可以采用timeboxing,您可以要求一些家庭成员或朋友与您一起进行可用性测试(这非常有效) )。

作为结论,您可以真正获得大量的敏捷体验。我强烈建议你先读一些书,因为有些原则很容易被误解。

答案 4 :(得分:3)

某些方面可以单独完成:运行产品待办事项并使用任务板。看看secretGeek正在做什么。

当然有些人不能:结对编程,scrums等...

答案 5 :(得分:3)

我最近打断了一个大项目。这是一个医疗软件项目。在研究它的过程中,我意识到了一些关于独奏编程的模式。我想在这里分享我的经历:

  1. 您的软件的工作逻辑必须始终反映现实世界。你用钓竿捕鱼,而不是棒球棒;所以忘掉它。
  2. 始终从所有其他元素引用的项目元素开始构建。如果你认为像最多调用的软件项目中的函数一样,这是有道理的。那可能是数据库建模。如果在建模数据库之前首先建模数据访问层,那将毫无用处。
  3. 别介意更改变量名称。这是程序员日记中写得最多的一篇文章;所以不必感到羞耻。
  4. 方法改变世界。值得一试。使用函数或过程创建每个逻辑进程。当项目变得庞大时,你会明白这是最好的方式。
  5. 如果您没有在汇编中设计语言编译器,请不要犹豫使用巨大的过程调用链,其中一个调用另一个调用另一个调用另一个,依此类推。在任何地方使用方法,几乎​​类似于每个具有类的实体并且是模块化的。
  6. 模块化就是一切。将模块化设置为您的主要目标。我说过这是一切吗?
  7. 开始项目的最后一个词。如果你正在建造一个公寓,你最后安装正门。但是在使用时,您可以从入口进入建筑物。请注意。
  8. 这些是我日常学习和学习的一些设计原则。我希望有用。尽你所能。

答案 6 :(得分:2)

虽然一些敏捷实践直接针对多个团队,但它们只是实践,它们只是一种手段,而不是目的。我的意思是,Agile 关于进行结对编程,站立会议等等。敏捷是最大化客户价值,同时最大限度地减少浪费以提供最佳投资回报率即可。敏捷是面向业务的,实践只是在给定环境中实现这一目标的一种方式。所以,回到最初的问题,绝对有可能采用敏捷实践(在您的上下文中有意义)来最大化交付价值:持续计划,限制正在进行的工作,停止线下文化,时间拳击,高质量,足够的规格,足够的,及时的文档等等。

答案 7 :(得分:1)

肯定。敏捷在涉及多少人方面非常灵活。一些方法,如Scrum,主要关注的是在有限的时间内尽可能多地做,比如两周(冲刺)。这包括你想要的任何东西。如果您的团队需要质量保证,那么这就是其中的一部分。作为一个孤独的人,你决定要包括什么。

在scrum sprint之后,你会看看你可以做些什么来完成更多工作,然后转到下一个。

其他一些方法更侧重于在每次迭代中完成功能,比如开发,测试和重构的三个小功能。

正如您所看到的,有很多方法可以将敏捷应用于任何项目。你决定你想要哪些方面。虽然显然一个不可或缺的部分是以小增量做事。

答案 8 :(得分:0)

XP / TDD从一千缩放到一千。结对编程是可选的。

答案 9 :(得分:0)

YES。

敏捷更像是一种心态,而不仅仅是像瀑布这样的软件开发方法。 Scrum是非常流行的敏捷方法之一。您可以详细研究scrum的以下方面:

  1. Scrum / Agile对瀑布的好处
  2. 如何创造更好的"产品"与Scrum / Agile
  3. 哪种类型的项目更适合Scrum
  4. Scrum的利弊
  5. Scrum Rituals以及为什么它们是必要的(它们有什么优势 带来)
  6. scrums中的不同角色及其职责(Scrum Master, 产品负责人和开发团队)
  7. 在您对Scrum的工作及其好处有充分了解后,尝试创建一个宠物项目。 你必须自己扮演所有角色。您可以尝试通过为每个角色佩戴不同颜色的帽子来区分您当前扮演的角色。

    示例:

    产品所有者:从产品角度考虑,产品中的功能应该是什么以及为什么它们对您的用户很重要等等。然后继续进行所有scrum实践。

    Scrum Master:继续检查您是否遵循正确意义和精神的所有Scrum仪式,并且能够从中获得好处。

    会有局限性,例如你不能举行每日站立会议,显然是因为你是项目中唯一的人。但如果你遵循上述规定,你应该善于找到工作并在团队中发挥自己的作用。