在敏捷工作中,我的工作习惯应该如何改变?

发布于 2024-09-13 13:54:20 字数 1431 浏览 19 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

柠北森屋 2024-09-20 13:54:21

如果您的团队很好地利用了敏捷,那么您可能应该看到工作方式发生一些变化。即使您以前的工作经验是采用瀑布式的方法,您也可能已经以相当“敏捷兼容”的心态进行开发。

我认为敏捷开发人员应该做的一些具体事情(在运行良好的敏捷团队中,他们自然会发现他们需要做)

  • 关注增量、完整的更改而不是大规模的架构 - 从宏观规划角度来看,这是敏捷的核心租户,但即使对于个人开发人员来说,实践也很重要。通过 2 或 3 周的迭代,您会发现您根本没有时间花 1 1/2 周开发某些东西,并花半周将它们集成在一起。
  • 尽早签入,经常签入,并签入工作代码 - 不要这样做,你很快就会发现你就是那个因破坏构建而闻名的人距离迭代结束还剩一天。
  • 了解什么阻碍了你,以及什么可能会在接下来的一两周内阻碍你,并告诉人们 - 敏捷团队中没有人喜欢在最后一秒听到开发人员正在开发一个项目关键部分被搁置,等待某些东西完成他的工作。
  • 在整个迭代过程中考虑迭代的结束 - 您编写的每一行代码都应该考虑在迭代结束之前完成这是否现实。
  • 永远要紧锣密鼓(嘿,如果没有一个可爱的、格伦加里·格伦·罗斯(Glengarry Glen Ross)抄袭的缩写词,我就不可能有一份简洁的建议清单!)你会在第二次或第三次迭代中了解到,要偷懒一点接下来的一周通宵熬夜会让你痛不欲生。

如果您已经关注所有这些 - 太好了!它们当然是通用的最佳实践,而不是特定于敏捷的。不过,我认为大多数开发人员确实有一两个坏习惯,这个列表解决了这个问题(我知道我有时会这样做。)

If your team is utilizing agile well, then you probably should see some changes in how you work. It's possible that you already developed with a fairly "agile-compatible" mindset, even if your previous work experience was in a more waterfall-style methodology.

Some specific things that I think agile developers ought to be doing (and in a well-run agile team, will naturally find they need to do)

  • Focus on incremental, complete changes rather than massive architectures - This is a core tenant of agile from the macro planning side, but it's also important to practice even for an individual developer. With a 2 or 3 week iteration, you'll find you simply don't have the time to spend 1 1/2 weeks developing something, and half a week integrating it all together.
  • Check in early, check in often, and check in working code - Don't do this, and you'll soon find you're that guy famous for breaking the build with a day left before the iteration ends.
  • Know what's blocking you, and what is likely to block you in the upcoming week or two, and tell people about it - No one in an agile team likes hearing at the last second that a developer working on a critical piece is held up waiting for something to complete his work.
  • Think about the end of an iteration throughout the iteration - Every line of code you write should be done with the consideration of whether this is realistic to complete before the iteration is over.
  • Always Be Crunching (hey, I couldn't have a pithy list of advice without a cute, Glengarry Glen Ross ripped off acronym!) You'll learn by your second or third iteration that slacking off for a week followed by some all nighters is going to bite you in the ass.

If you're already following all these - great! They're certainly general best practices rather than being specific to Agile. I think most developers do have a bad habit or two that this list addresses, though (I know I do on occasion.)

走野 2024-09-20 13:54:21

除了 Ryan 的精彩观点之外,这里还有其他几点。

  • 与团队的其他成员讨论您的想法。您的开发人员同事会很快指出您想法中的潜在缺陷并提出替代方案(准备好倾听,不要被冒犯)。我发现这在计划/故事任务期间效果最好。在 2-3 周的冲刺中,当你走上错误的道路时,这是非常明显的痛苦。它甚至可能会阻止您成功完成所有任务/故事。如果其他人预先知道您的攻击计划,那么他们就可以更轻松地介入并在您需要时帮助您完成工作。
  • 毫不犹豫地提出新的做事方式。敏捷的一大优点是团队流程不是一成不变的,而是不断发展来自一系列的回顾。如果开发人员从不发声,那么流程就永远不会改变,事情也不会变得更好。
  • 戴上用户的帽子。每个应用程序都有一个最终用户。有时(特别是当您与用户没有密切联系时)您必须退后一步并质疑决策(即使是由产品负责人做出的)。如果你能提出一个好的案例,不仅你的用户而且整个团队都会从中受益,因为产品会更受欢迎。开发人员这样做的频率还不够。我们希望让事情变得更好、更快、更精简,而牺牲其他有时更重要的事情,比如按时交付或添加更多功能。

我希望这有帮助。

In addition to Ryan's great points here are a couple more.

  • Discuss your ideas with other members of your team. Your fellow developers will quickly point out potential flaws in your thinking and suggest alternatives (be ready to listen and not get offended). I found this works best during planning/story tasking. In a 2-3 week sprint it is painfully obvious when you go down the wrong path. It might even stop you from successfully finishing all you tasks/stories. If others know your plan of attack up front it makes it easier for them to step in and help you out finishing your work if you need it.
  • Do not hesitate to suggest new ways of doing things. One of the great things about agile is that team processes are not set in stone but evolve from a series of retrospectives. If you have developers who never speak up, the process never changes and things do not get better.
  • Put your user's hat on. Every application has an end user. Sometimes (especially when you do not have a close contact with your users) you have to step back and question decisions (even if made by a product owner). If you can make a good case, not only your users but the entire team will benefit from it since the product will be better received. Developers do not do this often enough. We want to make things better, faster and leaner in the expense of other, sometimes more important things like delivering on time or adding more features.

I hope this helps.

我的影子我的梦 2024-09-20 13:54:21

对于你问的每个人来说,敏捷的具体细节都会有所不同。是的,您可能希望定期沟通,但您不想走极端,以免影响您(或您的同事)的工作效率。

但就像我说的,每个人的情况都会有所不同。唯一知道如何最好地匹配你的团队的人就是你团队中的人。只要告诉他们你不习惯敏捷并且你想知道你是如何处理它的。他们确实是唯一能够肯定地说的人。

The specifics of agile will be different for every person you ask. Yes, you probably want to communicate regularly, but you don't want to take it to extremes that keep you (or your coworkers) from being productive.

But like I said, it will be different for everybody. The only people who know how best to match your team are the people on your team. Just tell them you aren't used to agile and you were wondering how you've been handling it. They're really the only ones who will be able to say for sure.

情痴 2024-09-20 13:54:21

简短的回答,但对所有问我这个问题的开发人员都非常有用:

有一本名为《敏捷开发人员实践》的书,http://www.pragprog.com/titles/pad/practices-of-an-agile-developer

本书将专门回答你的问题。我非常喜欢它,因为它不仅仅是过程,还有行为和心理。

Short answer but was very useful to all developers that asked me that question:

There is a book called Practices of an agile developer,http://www.pragprog.com/titles/pad/practices-of-an-agile-developer.

This book will specifically answer to your question. I like it very much because it's not just about the process, but behaviors and psychology.

最后的乘客 2024-09-20 13:54:21

与态度相关的事情:

1)良好的结对编程意味着努力很好地解释事情并仔细聆听。这本身就是一种技能。你必须学习其他人如何处理事情,并且当其他人处理事情与你不同时要有耐心。

2) 准备灵活并改变主意。自我越小,处理这个问题就越容易、越不痛苦。

3) 要做好敏捷,您需要与更广泛团队中的每个人持续沟通(即不仅仅是开发人员 - 系统管理员、经理、客户、网络管理员、硬件人员...)感到舒适、安全和自信 - 即需要对团队有真正的信任,而不仅仅是虚假的信任 - 真正的信任

4) 准备好在你的专业和舒适区之外工作。我经常需要与图形设计师、系统管理员和 DBA 合作。说“这不是我的工作”不是敏捷的一部分。我们是多学科团队的一部分,让产品以有用的状态发布是整个团队的问题——而不仅仅是照顾我的宠物专业。

5) 尝试让事情变得简单和最小化 - 不要“我们会让它完全通用”或“我们稍后会需要它”。想想“你不会需要它。”我们致力于小型、简单、根据反馈通知具体步骤。

6) 首先解决困难的事情和不清楚的事情 - 这样您就可以尽早得到问题的反馈,以便您在必须修改估算或取消客户的工作时尽快得到通知。

7) 尝试保持团队活力的合作性而不是竞争性。人们之间的相互竞争会导致团队分裂——它只会让你得到精心打磨的碎片和破碎的产品,而不是由那些认为成功所必需的给予和接受的人们所创造的有凝聚力的整体。

Attitude-related things:

1) Good pair programming means making an effort to explain things really well and listening carefully. That's a skill in itself. You have to learn how other people tackle things and be patient when other people tackle things differently from you.

2) Being prepared to be flexible and change your mind. The smaller the ego, the easier and less painful it is to handle this.

3) To do agile well, you need to be communicating continuously with everybody in the wider team (i.e. not just devs - sysadmins, managers, customers, network admins, hardware people...) Part of this is feeling comfortable, safe and confident - i.e. there needs to be real trust in the team, not just phoney trust - real trust

4) Be prepared to work outside your specialism and comfort zone. I often have to pair with graphic designers, system admins and DBAs. Saying "that's not my job" isn't part of agile. We're part of a multidisciplinary team and getting the product released in a useful state is the whole team's problem - not just looking after my pet specialism.

5) Try to keep things simple and minimal - no "we'll make it totally generic" or "we'll need it later". Think "you aren't gonna need it." We're shooting for small, simple, concrete steps informed by feedback.

6) Tackle the difficult things and the things that aren't clear first - so that the you get feedback on the problems as early as possible so you if you have to revise estimates or cancel the work the customer gets informed as soon as possible.

7) Try to keep the team dynamics co-operative rather than competitive. Pitting people against each other pulls the team apart - and it gets you well-polished fragments and a broken product rather than a cohesive whole made by people that give-and-take as they find necessary to be successful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文