You have got the base concept wrong...all members should be able to work across stories. Not total cross-functionality...a developer cannot suddenly emerge to be a UI designer.
And no. of members per team is restricted to 7 -10. So that group should be segmented accordingly.
In my company we have the programmers, front end developers, designers, and UX team all participate in Agile groups. I am no Agile master but I understood that all members of a team should be able to be able to do any of the work.
IMO, this is a misunderstanding. Being a cross-functional team doesn't mean that every person on the team should able to do every job. It means the team should be a right mix of people with the right skills (as a whole) working toward a common goal. In other words, Agile isn't looking for one person with all the skills, Agile is not against specialization. Everyone can't and won't be equally good at everything.
Having designers, the UX team, frond end developers, and sys admins join in on a vote to estimate how long a backend task will take seems crazy to me. I barely know! So my question is am I being too harsh? Can this work in an Agile environment?
First, when using planning poker, nothing says that you need to have convergence at the first round. Actually, I think that having divergences is good, just let people explain why they voted this way, with their certainties and their doubts, and go for next round. Regardless of people expertise area, I bet it won't take more than 3 rounds to find a consensus. Second, after a few iterations, you'll have enough historical data to compare against ("this story is like this one") and this will help a lot, independently of the specialization of team members. Third, as reminded by JeremyMcGee in a comment, team members will get a better understanding of what is going on and of the roles of each other which is another great effect. So, to me, yes, this can work and having different set of skills is a strength, not really a weakness.
Even teams of pure developers will tend to self organize into specialties or owners of specific subsystems (unless you tend to force them to rotate work, but that is a topic for a different issue). Therefore, you will be estimating stories with a significant number of members in the room that have little knowledge of the subsystem work associated with the story.
Story estimation is supposed to be more about comparing scales of complexity/work. It this two times, four times, eight times (or similar scales) more work than defined base point. Or, is it similar to this other item we rated at eight. At least that's the goal. At the sprint level (versus overall backlog), I find teams prefer to estimate with more concrete scales (ie hours).
For people in specific disciplines, you may or may not want them to be included in the estimation process. If those individuals have a reasonable understanding of the complexity of the task, there estimates may be just as good as another member. If not, then they shouldn't provide an estimate.
One benefit of including their estimates as it often creates more outlying estimates (overly high or low). When we have an item with estimates outside of a reasonable envelop, it is a trigger to have a short, but deeper discussion of the work. Often, that discussion forces a group discovery of work/complexity that wasn't obvious from the story description and acceptance criteria.
Agile teams are supposed to be "cross-functional" - i.e. have lots of specialists working together with some overlap.
For web development, and even for IT infrastructure, it can make sense to have a DBA, designers, business analyst, programmers (whatever different skillsets you need) and IT infrastructure people on the same team.
Not all members of the team have to be working on it full time - but any department or specialism that could delay the project or cause misunderstanding by not being involved has to be represented by somebody with enough power or skill to do those actions.
Don't forget to involve people:
who need to sign things off,
people who administer common facilities like DNS, LDAP
network admin
people who buy and maintain hardware,
security people...
I have been involved in projects where the software was ready on time but the DNS or the hardware wasn't - which is a #fail as far as the customer is concerned. What things outside your control are you going to need help with? Team leads, coaches and scrum masters should be looking an iteration or two ahead to get the right people involved.
Getting all the right people involved in estimates and kickoff meetings - including technical sales and the business is critical. Tech sales may think they can't help but often they can answer questions about what the customer wants that can help create a consensus in estimates.
Agile is about cooperation and common sense. That said, I think it will basically boil down to the actual team. Can they cooperate efficiently? If not, you might need to fix it. What does your retrospects tell you? Agile is a path, not the destination
Today with all the mixed technologies that has to work together in a product all developers have to take a wider view how their part interacts with the rest of a product. So getting a team mixed is good I think, but getting the team to talk openly and work together is not always easy. People can be difficult.
发布评论
评论(5)
您的基本概念是错误的……所有成员都应该能够跨故事工作。不是完全的跨功能……开发人员不可能突然成为 UI 设计师。
没有。每个团队的成员限制为 7 -10 人。因此,应该对该组进行相应的细分。
You have got the base concept wrong...all members should be able to work across stories. Not total cross-functionality...a developer cannot suddenly emerge to be a UI designer.
And no. of members per team is restricted to 7 -10. So that group should be segmented accordingly.
IMO,这是一个误解。作为一个跨职能团队并不意味着团队中的每个人都应该能够胜任每项工作。这意味着团队应该由具有适当技能(作为一个整体)的人员组成,为共同目标而努力。换句话说,敏捷并不是寻找一个拥有所有技能的人,敏捷并不反对专业化。每个人不可能也不会在所有事情上都同样出色。
首先,当使用计划扑克时,没有什么说明你需要在第一轮收敛。其实我觉得有分歧是好的,让大家解释一下为什么这么投票,有肯定的,有疑问的,然后再进行下一轮。无论人们的专业领域如何,我敢打赌,达成共识不会超过 3 轮。其次,经过几次迭代后,您将有足够的历史数据进行比较(“这个故事就像这个”),这将有很大帮助,与团队成员的专业化无关。第三,正如 JeremyMcGee 在评论中提醒的那样,团队成员将更好地了解正在发生的事情和角色彼此的影响是另一个巨大的影响。所以,对我来说,是的,这是可行的,并且拥有不同的技能是一种优势,而不是真正的劣势。
IMO, this is a misunderstanding. Being a cross-functional team doesn't mean that every person on the team should able to do every job. It means the team should be a right mix of people with the right skills (as a whole) working toward a common goal. In other words, Agile isn't looking for one person with all the skills, Agile is not against specialization. Everyone can't and won't be equally good at everything.
First, when using planning poker, nothing says that you need to have convergence at the first round. Actually, I think that having divergences is good, just let people explain why they voted this way, with their certainties and their doubts, and go for next round. Regardless of people expertise area, I bet it won't take more than 3 rounds to find a consensus. Second, after a few iterations, you'll have enough historical data to compare against ("this story is like this one") and this will help a lot, independently of the specialization of team members. Third, as reminded by JeremyMcGee in a comment, team members will get a better understanding of what is going on and of the roles of each other which is another great effect. So, to me, yes, this can work and having different set of skills is a strength, not really a weakness.
简短的回答是肯定的。
即使是纯粹的开发人员团队也会倾向于自我组织为特定子系统的专业人士或所有者(除非您倾向于强迫他们轮换工作,但这是另一个问题的主题)。因此,您将估算房间中大量成员的故事,而这些成员对与故事相关的子系统工作知之甚少。
故事估计应该更多地是比较复杂性/工作的规模。其工作量比定义的基点多两倍、四倍、八倍(或类似比例)。或者,它与我们评分为 8 的其他项目相似吗?至少这是目标。在冲刺级别(相对于总体待办事项),我发现团队更喜欢用更具体的尺度(即小时)进行估计。
对于特定学科的人员,您可能希望也可能不希望他们参与评估过程。如果这些人对任务的复杂性有合理的理解,那么他们的估计可能与其他成员一样好。如果不是,那么他们不应该提供估计。
纳入他们的估计的好处之一是,它通常会产生更多的外围估计(过高或过低)。当我们对某个项目的估计超出合理范围时,就会触发对这项工作进行简短但更深入的讨论。通常,这种讨论会迫使团队发现工作/复杂性,而这在故事描述和验收标准中并不明显。
The short answer is yes.
Even teams of pure developers will tend to self organize into specialties or owners of specific subsystems (unless you tend to force them to rotate work, but that is a topic for a different issue). Therefore, you will be estimating stories with a significant number of members in the room that have little knowledge of the subsystem work associated with the story.
Story estimation is supposed to be more about comparing scales of complexity/work. It this two times, four times, eight times (or similar scales) more work than defined base point. Or, is it similar to this other item we rated at eight. At least that's the goal. At the sprint level (versus overall backlog), I find teams prefer to estimate with more concrete scales (ie hours).
For people in specific disciplines, you may or may not want them to be included in the estimation process. If those individuals have a reasonable understanding of the complexity of the task, there estimates may be just as good as another member. If not, then they shouldn't provide an estimate.
One benefit of including their estimates as it often creates more outlying estimates (overly high or low). When we have an item with estimates outside of a reasonable envelop, it is a trigger to have a short, but deeper discussion of the work. Often, that discussion forces a group discovery of work/complexity that wasn't obvious from the story description and acceptance criteria.
敏捷团队应该是“跨职能的” - 即有很多专家一起工作,但有一些重叠。
对于 Web 开发,甚至对于 IT 基础设施来说,在同一个团队中拥有 DBA、设计师、业务分析师、程序员(无论您需要什么不同的技能)和 IT 基础设施人员都是有意义的。
并非团队的所有成员都必须全职工作 - 但任何可能因不参与而延迟项目或导致误解的部门或专业都必须由具有足够权力或技能的人员代表来执行这些操作。
不要忘记让人员参与:
我参与过软件已准备就绪的项目时间,但 DNS 或硬件却没有 - 就客户而言,这是#fail。 哪些事情是你无法控制的,需要帮助?团队领导、教练和 Scrum Master 应该提前一两次迭代,让合适的人参与进来。
让所有合适的人员参与估算和启动会议 - 包括技术销售和业务人员至关重要。技术销售可能认为他们无能为力,但他们通常可以回答有关客户想要什么的问题帮助在估计方面达成共识。
Agile teams are supposed to be "cross-functional" - i.e. have lots of specialists working together with some overlap.
For web development, and even for IT infrastructure, it can make sense to have a DBA, designers, business analyst, programmers (whatever different skillsets you need) and IT infrastructure people on the same team.
Not all members of the team have to be working on it full time - but any department or specialism that could delay the project or cause misunderstanding by not being involved has to be represented by somebody with enough power or skill to do those actions.
Don't forget to involve people:
I have been involved in projects where the software was ready on time but the DNS or the hardware wasn't - which is a #fail as far as the customer is concerned. What things outside your control are you going to need help with? Team leads, coaches and scrum masters should be looking an iteration or two ahead to get the right people involved.
Getting all the right people involved in estimates and kickoff meetings - including technical sales and the business is critical. Tech sales may think they can't help but often they can answer questions about what the customer wants that can help create a consensus in estimates.
敏捷是关于合作和常识。也就是说,我认为这基本上会归结为实际的团队。他们能否高效合作?如果没有,您可能需要修复它。你的回顾告诉你什么? 敏捷是一条道路,而不是目的地
如今,所有混合技术都必须在产品中协同工作,所有开发人员都必须以更广泛的视角看待他们的部分如何与产品的其余部分交互。因此,我认为让团队混合是件好事,但让团队开诚布公地交谈并一起工作并不总是那么容易。人们可能很难相处。
Agile is about cooperation and common sense. That said, I think it will basically boil down to the actual team. Can they cooperate efficiently? If not, you might need to fix it. What does your retrospects tell you? Agile is a path, not the destination
Today with all the mixed technologies that has to work together in a product all developers have to take a wider view how their part interacts with the rest of a product. So getting a team mixed is good I think, but getting the team to talk openly and work together is not always easy. People can be difficult.