敏捷团队如何处理客户和迭代?

发布于 2024-08-30 18:24:52 字数 1432 浏览 10 评论 0原文

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

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

发布评论

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

评论(5

孤寂小茶 2024-09-06 18:24:52

在我看来,敏捷开发的一个关键成功因素是专注于在每次迭代中为客户提供价值。我肯定会选择“丑陋但有用的东西”而不是“闪亮但不起作用的东西”。制作闪亮的 UI 并试图让客户理解业务逻辑需要花费大量时间来实现总是有风险的,Joel Spolsky 写了一篇很好的文章。

如果客户想要增强 UI,他们总是可以将其作为下一次迭代的要求。

关于与客户的沟通,我认为你的剧本应该稍微调整一下。用 Scrum 术语来说,您的“焦点”被称为“产品负责人”。让一个人与客户进行协调是一件好事,因为让不同的利益相关者就需求达成一致可能需要相当多的时间。然而,产品所有者(或焦点)应该与开发人员直接联系,而不是通过项目经理。事实上,产品负责人和项目经理有着截然不同的角色,通过分成两个人可以获得很多好处。

产品负责人是利益相关者对开发团队的代言人。另一方面,项目经理负责项目团队的福祉,并经常跟踪预算等。这些角色有时有相反的议程,将他们分成两个人可以为利益冲突之间的谈判提供良好的机会。如果一个人同时扮演两种角色,那么这个人通常会倾向于偏爱其中一种角色,从而自动减少另一种角色。您不想在一个项目经理总是把客户放在团队需求之前的团队中工作。另一方面,没有客户希望产品负责人总是把团队的需求放在第一位,而忽视客户。将责任分摊给两个人有助于纠正这种情况。

In my opinion, a key success factor for agile development is to focus on delivering value for the customer in each iteration. I would definitely pick "ugly stuff that does work" over "shiny stuff that doesn't work". Doing shiny UIs and trying to get the client to understand hat business logic takes a lot of time to implement is always risky which Joel Spolsky has written a good article about.

If the client wants enhancements to the UI, they can always put that as a requirement for the next iteration.

Regarding communication with clients I think that your scetch should be slightly adjusted. Talking in scrum terms your "focal point" is called "product owner". Having one person coordinating with the clients is good, as it can take quite a lot of time to get the different stakeholders agree on the needs. However the product owner (or focal point) should be in direct contact with the developer, without going through the project manager. In fact, the product owner and the project manager has quite distinct roles that gain a lot by being split on two people.

The product owner is the stakeholders' voice to the development team. The project manager on the other hand is responsible for the wellbeing of the project team and often keeps track of budget etc. These roles sometimes has opposing agendas, and having them split on two people gives a healthy opportunity for negotiation between conflicting interests. If one person has both roles, that person often tend to favour one of them, automatically reducing the other one. You don't want to work on a team where the project manager always puts the client before the team's needs. On the other hand no customer wants a product owner that always puts the team's needs first, neglegting the customer. Splitting the responsibilities on two people helps to remedy that situation.

冷清清 2024-09-06 18:24:52

我同意安德斯的回答。我的另一项观察是,许多客户发现无法忽视丑陋的事物。他们关心的是外观而不是功能。因此,您可能需要硬着头皮做至少一个“不错”的屏幕,以表明您会关注演示细节。

I'd agree with Anders answer. My one extra observation is that many clients find it impossible to ignoire the Ugly. They get concerned about presentation rather than function. Hence you may need to bite the bullet and do at least one "Nice" screen to show that you will pay attention to presentation details.

待"谢繁草 2024-09-06 18:24:52

如果我们从头开始,通常在前几次迭代中要做什么?

许多团队使用迭代零来:

  • 设置开发基础架构(来源控制、开发机器、自动化构建、持续集成过程、测试环境等),
  • 教育客户并同意他的方法论,
  • 创建初始功能列表,确定最重要的功能并进行初步估计,
  • 定义会议时间(计划会议、演示、回顾),选择迭代长度。

零迭代非常特别,因为它不向客户提供任何功能,而是专注于以敏捷方式运行下一次迭代所需的功能。但后续迭代应该开始为客户提供价值。

只需花一个月的时间来开发应用程序的核心代码,还是从具有有限预编码功能的简单线框开始?

不,不要在一个月内开发应用程序的核心。相反,立即开始交付应用程序的垂直切片(从 UI 到数据库),而不是水平切片。这并不意味着屏幕必须是完整的(例如,在搜索屏幕中仅实现一个搜索字段),但理想情况下它应该代表最终的外观和效果。感觉(除非您同意客户的中间步骤)。重要的是构建能够为客户增量提供直接价值的产品。

客户通常希望看到什么?闪亮的东西不起作用还是丑陋的东西起作用?

根据我的经验,他们希望看到明显的进展,而你希望尽快得到反馈。

在客户端设立一个联络点是一个好主意还是直接与所有客户沟通以防止沟通不畅更好?

您需要一个人来代表客户(在 Scrum 中被称为产品负责人):

  • 他提供单一的权威声音
  • ,他对业务有完美的了解(即他可以回答问题)
  • 他知道如何最大化投资回报率(即如何确定功能的优先级)

What to, generally, do in the first few iterations if we start from the scratch?

Many teams use an Iteration Zero to:

  • setup the development infrastructure (source control, development machines, the automated build, a continuous integration process, a testing environment, etc),
  • educated the customer and agree with him on the methodology,
  • create an initial list of features, identify the most important and do an initial estimation,
  • define time of meetings (planning meeting, demo, retrospective), choose the the iteration length.

Iteration Zero is very special because it doesn't deliver any functionality to the customer but focus on what is necessary to run the next iterations in an agile way. But subsequent iterations should start to deliver value to the customer.

Just give it a month of development to code core of the application or start with simple wire-frames with limited pre-coded functionality?

No, don't develop the core of your application during one month. Instead, start delivering vertical slice of the application (from the UI to the database) immediately, not horizontal slices. This doesn't mean that a screen has to be complete (e.g. implement only one search field in a search screen) but it should ideally be representative of the final look & feel (unless you agreed with the customer on an intermediate step). The important part is to build things that provide immediate value to the customer incrementally.

What usually clients want to see? Shiny stuff that doesn't work or ugly stuff that does work?

To my experience, they want to see demonstrable progresses and you want to get feedback as soon as possible.

Is it a good idea to have a Focal Point on client side or is it better to communicate straight with all the clients to prevent miscommunication?

You need one person to represent the clients (who is called the Product Owner in Scrum):

  • he provides a single authoritative voice
  • he has a perfect knowledge of the business (i.e. he can answer questions)
  • he knows how to maximize the ROI (i.e. how to prioritize functionalities)
凶凌 2024-09-06 18:24:52

敏捷通常希望快速地为客户提供有价值的东西。

因此,我当然不会花费“一个月的开发时间来编写应用程序的核心代码”。对我来说,这有点像“大的预先设计”反模式。另请参阅 YAGNI

尽快从客户那里获取尽可能多的信息,了解他们需要什么,并在第一次迭代中实现这些信息。 “有价值”是在客户眼中。他们会知道他们是否想要看到光滑的用户界面(也许他们想在贸易展览会上提供有关产品的幻灯片,因此功能可能是假的)或简单的工作功能(也许你正在开发他们需要开始的东西< em>尽快使用)。 商业价值就是他们所说的 /em> 将帮助他们完成工作。

我会让我的迭代尽可能短(你的 2 周可以工作,我建议考虑 1 周)如果你绝对不能让你的开发团队和你的客户位于同一地点,而不是与客户打电话,我建议开会。演示您在上一次迭代中所做的工作,并征求有关应保留哪些内容、应更改哪些内容以及应添加哪些内容的反馈。

正如其他人所说,您的“焦点”听起来像是产品负责人。我对你的绘图感到担心的是,它是否意味着开发人员不与 PO 或客户进行交互。让敏捷发挥作用的一件事是有大量的沟通。与开发团队之间的沟通总是通过项目经理进行过滤,几乎肯定会导致沟通不畅、不必要的工作和遗漏细节。

Agile generally wants to provide the client something valuable, quickly.

So I certainly would not spend "month of development to code core of the application". To me, that smells of the "big up front design" anti-pattern. Also, see YAGNI.

Get as much information from the clients about what they need soonest, and implement that in your first iteration. "Valuable" is in the eye of the client. Thet will know if they want to see slick UI (maybe they want to give a slide show about the product at a trade show, so functionality can be fake) or simple working features (maybe you're developing something that they need to start using ASAP). Business Value is what they say will help them do their job.

I'd make my iterations as short as I can (your 2 weeks could work, I suggest considering 1 week) If you absolutely can't have your dev team and your clients co-located, instead of having a call with the clients, I suggest a meeting. Demo what you've done over the previous iteration and solicit feedback about what should stay, what should change, and what should be added.

As others have said, your "Focal point" sounds like a Product Owner. What worries me about your drawing is if it is meant to imply that devs don't interact with the PO or the clients. One thing that makes Agile work is when there is lots of communication. Having communication to/from the dev team always filtered through the Project Manager is almost certainly bound to result in miscommunication, unnecessary work, and missed details.

自演自醉 2024-09-06 18:24:52

我同意给出的两个答案,但我只想根据个人经验添加一件事。您的客户是否接受了快速迭代的变革?以及在每次迭代后提供反馈,这将要求客户对每个功能执行可用性测试。

现在我不知道你们的团队与客户的关系如何,但客户采取“提出请求 - 取出工作系统”的态度并不罕见,因为他们在提出要求时很热情,但在提出要求时却不太及时。来测试该功能。

现在,这可能完全不适合您的情况,但始终值得考虑您的客户工作流程以及您的团队将如何改变。

干杯

I agree with the two answers given but I would just add one thing from personal experience. Are your customers bought in to the change towards quick iterations? As well as providing feedback after each iteration which is going to require the customer performing usability tests on each feature.

Now I don't know what your groups relationship is with your customer but its not unusual for customers to take a "Put request in - get working system out" attitude in that they are enthusiastic when giving requirements but not so forthoming with time when it comes to testing the feature.

Now this may be totally inappropriate to your situation but its always worth considering how your customer workflow will have to change as well as your groups.

Cheers

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