您是瀑布组织中敏捷/务实的开发人员吗?

发布于 2024-07-07 04:08:53 字数 1449 浏览 11 评论 0原文

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

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

发布评论

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

评论(6

最佳男配角 2024-07-14 04:08:53

实际上,我是敏捷组织中的瀑布开发人员。

我“感觉”不正确的事情包括:

  • 开始一个项目工作时几乎不知道它应该做什么。
  • 记录过程,但不记录产品; 无需与某人交谈就无法获取信息。 我所需要的只是一份需求文档、一份设计文档(我可以自己写)和 Google。
  • 花在会议上的时间比编码的时间还多。
  • 花在家里编码的时间比在工作上的时间还多。
  • 不知道该项目何时完成。
  • PM 在任何方面都是有用的。
  • 召开会议准备会议准备会议,其他人登录服务器并复制文件; 因此,在一个需要 6 分钟的流程上花费了 6 个小时
  • 多次结账
  • 知道事情应该如何流动,但没有实际的需求。
  • 开发人员的独特技能被低估或完全忽视,因为它们使开发人员不可互换。
  • 当没有故事剩余时...无事可做...只是坐在那里...可能会添加一个新功能; 可能不需要,但时间并没有被浪费......
  • 每六个月当我改变合同时,我必须适应新的编码标准? 当我习惯了之后,我已经在寻找下一份合同了。

Actually, I'm a Waterfall developer in an Agile organization.

Things that don't "feel" right to me include:

  • Starting work on a project with barely any idea what it should do.
  • Documenting the processes, but not the products; being unable to get information without having to go talk to someone. All I should need is a Requirements document, a Design document (which I may write myself), and Google.
  • Spending more time in meetings than coding.
  • Spending more time coding at home than at work.
  • Having no idea when the project will be done.
  • PM's being useful in any way.
  • Having a meeting to prepare for a meeting to prepare for a meeting where somebody else logs onto a server and copies a file; thus spending six hours on a process that takes six minutes
  • Multiple checkouts
  • Knowing how something should flow, but not having actual requirements.
  • Developers' unique skill sets are downplayed or outright ignored as they make the developer non-interchangeable.
  • When there are no stories remaining... nothing to do... just kinda sit there... Could be adding a new feature; may not be needed but the time isn't being wasted...
  • Every six months when I change contracts, I have to adapt to a new coding standard? By the time I get used to it, I'm already looking for my next contract.
凉薄对峙 2024-07-14 04:08:53

为什么这些实践与瀑布不兼容? 据我所知,几乎所有这些(如果不是绝对所有)都可以通过瀑布方法实现。 瀑布式开发没有什么特别的原因必须是混乱的。 它可能还有其他缺点/挑战,但混乱不太可能在列表中名列前茅。

Why are these practices incompatible with waterfall? As far as I can tell almost all of these if not absolutely all of them are possible with a waterfall approach. There is no particular reason waterfall development has to be chaotic. It may have other drawbacks/challenges but chaos is not likely to be high on the list.

心是晴朗的。 2024-07-14 04:08:53

在不进入“抱怨”模式的情况下..我会选择回答问题的“处理它”部分。 根据我的经验,我得出了以下选择

  1. “有点简单”的方法:退出并找到一个更适合您喜欢的地方......我说有点简单是因为杂项。 子问题:“敏捷”工作场所可能不存在于您附近。搬迁可能不是一个可行的方法,敏捷工作场所中的人员可能是“非敏捷”,
  2. 中间路径:个人继续保持敏捷。 帮助和教导其他感兴趣的人......也许是组织。 会慢慢变得更好。抱最好的希望,祈祷你不会达到“不归路的放弃点”。
  3. 超级困难的方法:努力为你的组织带来改变。 这不是每个人都喜欢的。 一个组织的文化不可能在短时间内改变……你需要一个管理层的“本地发起人”来开始任何实质性的事情。 再加上除了你自己之外你无法真正改变别人的事实。 因此,如果您充满热情、耐心、坚持不懈、高度乐观并愿意一决胜负,我建议您使用“无畏改变”全心全意。
    替代文本
    (来源:informit.com

Without getting down into the "whine" mode.. I'd choose to answer the "Dealing with it" part of the question. I've reached the following options from my experience

  1. Somewhat-Easy way: Quit and find a place that is more to your liking... I say somewhat easy because of misc. sub-problems: 'agile' workplaces may not exist in your immediate vicinity.. relocation may not be a feasible approach, the people in an agile workplace may be 'non-agile',
  2. The middle path: Continue to be agile personally. Help and teach others who are interested.. Maybe the org. will change slowly for the better.. Hope for the best and pray that you do not reach the 'quitting point of no-return'
  3. The super-hard way: Strive to bring about change in your organization. This is not everyone's cup of tea. The culture of an organization cannot be changed within a short time... you need a "Local Sponsor" in management to start anything substantial. Couple that to the fact that you can't really change another person except yourself. So if you're passionate, patient, relentless, highly optimistic and willing to slug it out, I'd recommend "Fearless Change" with all my heart.
    alt text
    (source: informit.com)
醉梦枕江山 2024-07-14 04:08:53

首先,敏捷方法论强调这些实践,但没有引入它们。 在敏捷出现之前,它们就已经存在于软件开发过程中。因此,简单地说,如果您没有使用 Scrum/XP/RUP,那么您就没有遵循这些实践,这是完全错误的。 如果您是专业的软件开发组织,这些实践将以一种或多种形式存在。

其次,无论您是瀑布组织中的敏捷开发人员还是反之亦然,您都无法做太多事情,至少不能有效或显着地做。 组织拥有什么样的发展“文化”取决于管理层和执行人员的承诺和关注点。 如果不存在,你可以尽你的“一点”,但最终你会失败。 这就是许多组织在向敏捷转型时失败的原因,因为他们不愿意进行文化变革。

Firstly, Agile methodologies emphasize on these practices but they have not introduced them. They have been there in software development process well before Agile came in. So simply saying that if you are not using Scrum/XP/RUP then you are not following these practices is plain wrong. If you are a professional software development organization, these practices will exist in one form or other.

Secondly, whether you are an agile developer in a Waterfall organization or vice-versa, you can not do much, at-least not effectively or significantly. What development 'culture' the organization has is a function of the commitment and focus of the management and executive. If that does not exist, you can do your 'bit' but you will lose out in the end. That is the reason Agile fails in many organizations when they transition to it, because they are unwilling to make the cultural change.

¢蛋碎的人ぎ生 2024-07-14 04:08:53

我在一个伪敏捷组织中,以下是我对您提出的这些观点的回应:

  • 不编写单元测试:我相信 100% 覆盖率。 是的,很容易说你可以拥有 100% 的覆盖率并编写非常糟糕的测试,但是,我编写的任何新代码,我都会尽力进行验收或集成测试,并为我的内容提供 100% 的覆盖率 em>继续努力。 在构建中,我进行了覆盖率检查,以确保它不会低于当前限制。
  • 没有持续构建:由于每个人之前的工作方式,大多数人在没有覆盖率检查的情况下运行构建,因此可以随意检查他们喜欢的任何内容而不进行测试。 更不用说连续构建有时似乎打开,有时似乎关闭。 我已经非常接近建立一个属于我自己的 CI 盒子了。
  • 不重构:我尽我所能重构,这样当我再次看到同一个类时我就不会呕吐。
  • 没有团队编码标准:公司有编码标准,但是有很多问题。 因此,我会尽我所能向上级反映此事,以求改变。 有时按照他们认为正确的方式编码会很痛苦。 例如,在整个文件中为公共、私有、受保护、字段、常量等放置巨大的 java 注释节标题。 我相信这是从前完成的,因为类变得如此失控(例如数千行长),以至于它们需要节标题,以便您可以找到公共方法从哪里开始以及私有方法从哪里开始(!!)
  • 而不是结对编程:幸运的是,我身后坐着一个和我想法一样的人,我们经常转动椅子来交谈和讨论想法,以作为补偿。
  • 不进行迭代:我们有 3 周的迭代,但感觉非常临时。 每次迭代之间有一个清理/审查周,这使得理论上迭代周期为 4 周。 我对此无能为力。 很难说服他们缩短这些迭代时间,因为代码太糟糕了,实际上需要 3 周才能编写出应该只需要 1 周的东西。
  • 没有每日站立会议:我们有站立会议。
  • 没有回顾:我们有回顾。

I'm in a pseudo agile organisation and here's my responses to those points you raised:

  • not writing unit tests: I'm a believer in 100% coverage. And yes it is easy to say you can have 100% coverage and write really bad tests, however, any new code I write, I do my best to have acceptance or integration tests and have 100% coverage for what I work on. In the build, I have put in a coverage check to make sure it doesn't drop below the current limit.
  • not having a continuous build: Because of the way everyone has worked prior, most people run the build without the coverage check and therefore can willy nilly check whatever they like in without it being tested. Not to mention the continuous build sometimes seems to be on and sometimes seems to be off. I am very close to just setting up a CI box of my own.
  • not refactoring: I refactor whatever I can so I don't throw up when I see that same class again.
  • not having a team coding standard: The company has a coding standard, however, there are many things that are wrong with it. Therefore I do my best to bring things up with those higher up to get it changed. It hurts sometimes to code the way they think is right. e.g. putting huge java comment section headers for the public, private, protected, fields, constants etc throughout your file. I believe this was done once upon a time because classes got so out of control (e.g. thousands of lines long) that they needed section headers so you could find where your public methods started and where your private methods started(!!)
  • not pair programming: Fortunately I have someone who thinks like me sitting behind me and we turn our chairs to talk and discuss ideas as often as possible to compensate.
  • not doing iterations: We have 3 week iterations, but it feels very ad hoc. There is a cleanup/review week in between each iteration which makes it theoretically a 4 week iteration. I can't do anything else about it. It's hard to convince them to make those iterations shorter because the code is so bad is actually takes 3 weeks to write something that should take only 1 week.
  • no daily standups: We have standups.
  • no retrospectives: We have retrospectives.
放手` 2024-07-14 04:08:53

说真的,如果你的组织像你描述的那样混乱和业余,我会在他们破产之前开始寻找另一份工作。 正如Martin Fowler 曾经打趣的

如果你无法改变你的组织,那就改变你的组织

另一方面,如果你觉得他们可以改变,那么我会尝试在其他事情之前通过引入回顾来开始这种改变在你的名单上。 如果你能让人们互相交谈并开始识别正在发生的浪费,并且相关人员有足够的授权来听取反馈并做出改变,无论尝试性如何,你都会走在正确的轨道上。

您确定的所有其他实践都是消除特定类型浪费的技术 - 例如,编写单元测试,以减少项目后期修复缺陷的浪费。 通过举行回顾,您将了解这些浪费,并为人们提供一个空间,让他们决定是否愿意更专业地做事。

最后,这是关于自尊:你的自尊、你的同事以及整个组织的自尊。 你是否满足于一味地混日子,还是想尽力做好自己所做的事情?

祝你好运!

Seriously, if your organization is as chaotic and amateurish as you describe, I would start looking for another job before they go under. As Martin Fowler once quipped

If you can't change your organization, change your organization

If, on the other hand, you feel like they can change, then I'd make an attempt to start that change by introducing retrospectives before anything else on your list. If you can get people talking to each other and starting to identify the waste that goes on, and someone involved has sufficient mandate to listen to that feedback and make changes, however tentative, you'll be on the right track.

All of the other practices you've identified are techniques for eliminating particular types of waste - writing unit tests, for example, to reduce the waste of fixing defects later in the project. By holding retrospectives you'll shine a light on these wastes and give people a space do decide they might like to do things more professionally.

In the end, it's about self-respect: yours, your colleagues, and the organization as a whole. Are you satisfied to just muddle along the way things have always been, or do you want to try to be as good at what you do as you possibly can be?

Good luck!

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