I actually can't even imagine how scrum could work if you maintain your role silos. In scrum we build vertical slices through the product so that every feature delivered during a sprint requires all the skills you mentioned (plus QA which you did not). How would you create continuous collaboration and have people commit to the sprint if they weren't all on the same team? Seems like the most likely way to end in "Scrumfall" to me. I'm not an expert by any means but it seems to me that the sure way to fail at scrum is to think of it as a project management solution instead of an entire organizational change. Its cultural at the core.
To answer you question about "generalists". The easy answer is that by having certain people only able to work on certain things you create big fatty bottlenecks in getting to Done. With specialties you are always constrained at each step by having limited resources to work on something. In sprint 1 you may have a lot of db work to do where there is more than just that one dba can do. But then in sprint 5 where there is no change to the datamodel at all, your dba will be sitting around keeping bored. It becomes almost impossible in sprint planning to commit in a reasonable time if you have to divy up and assign at the task level by role instead of just grabbing the next set of priority features that fits your team's velocity. The generalist model will inevitably bring business value in the long run. You may just not see it right away until you achieve cross-pollination.
I would warn that if you are already in silo-ed groups by role, then you have to be very careful in am agile reorganization. Many people are not ready and don't want to be ready to lose their special titles and just become team members. I would think you should almost always expect some amount of turnover.
It is preferred that in scrum/agile development that most individuals on the team are 'generalist' meaning that anyone can reasonably step into any role so that anyone can pull off items in the backlog as the come and nobody is waiting around for others.
now this may not be the case in your situation today but doing things such as peer programming and standup meetings to see where people are having impedements and to improve cross pollination of knowledge will help in obtaining this goal.
At my company we create a temporary cross function team for each project. Our existing teams are still there, but it is really important that we have cross functional teams for scrum.
We generally try to mix up a little bit to get some cross-team knowledge, but we for the most part work on our specialties. But as the project progresses we can more easily help out on different teams
When I worked for my previous employer, the company reorg'ed the whole dev organization and product management. They put engineers, qa, and analysts in each team. The split was mostly vertical/functional with some exceptions. Those exceptions were a mistake - the architecture vertical did not fit, because it was really horizontal. I thought that cross-functional teams worked well. In your case, the db and front-end departments need to merge with the rest if possible, and new verticals specific to your product may be created
We split our team into New Product Development and Existing Product Maintenance, with the ability for any developer to hop from one to the other between sprints.
I think we have maintained the traditional team, at least for now. There are a couple of other teams within the applications branch of the Information Systems department where I work though these were put in just before we got into Scrum.
There is a big project most of us are on that is using Scrum and the team seems to be evolving along nicely. We have some new tools and processes that seem to have helped us a lot and given us a sense of "awesomeness" that hopefully we will pass on to the other teams.
For changes to a database, any of us developers can make the change in the development environment and then pass along the script to a DBA to be done when it is ready for production. For changes to the network, there are infrastructure folks that handle that and initially setting up a server in terms of O/S, network, memory, hard drives, etc.
发布评论
评论(7)
事实上,我什至无法想象如果你保持角色孤岛,Scrum 会如何运作。 在 Scrum 中,我们通过产品构建垂直切片,以便冲刺期间交付的每个功能都需要您提到的所有技能(加上您没有的 QA)。 如果人们不都在同一个团队中,您将如何创建持续的协作并让他们致力于冲刺? 对我来说,这似乎是最有可能以“Scrumfall”结束的方式。 无论如何,我都不是专家,但在我看来,Scrum 失败的必然方法是将其视为项目管理解决方案,而不是整个组织变革。 其文化是核心。
回答你关于“通才”的问题。 简单的答案是,如果让某些人只能做某些事情,就会在完成任务时造成巨大的瓶颈。 有了专业知识,你在每一步都会受到限制,因为你的资源有限。 在 sprint 1 中,您可能需要完成大量数据库工作,而这不仅仅是一个 dba 可以完成的工作。 但在 sprint 5 中,数据模型根本没有变化,您的 dba 将无所事事。 如果您必须按角色在任务级别进行分配和分配,而不是仅仅抓住适合团队速度的下一组优先级功能,那么在冲刺计划中几乎不可能在合理的时间内提交。 从长远来看,通才模式必然会带来商业价值。 在实现异花授粉之前,您可能不会立即看到它。
我要警告的是,如果您已经处于按角色划分的筒仓组中,那么您在敏捷重组时必须非常小心。 许多人还没有准备好,也不想失去自己的特殊头衔而成为团队成员。 我认为你几乎总是应该预期一定数量的营业额。
I actually can't even imagine how scrum could work if you maintain your role silos. In scrum we build vertical slices through the product so that every feature delivered during a sprint requires all the skills you mentioned (plus QA which you did not). How would you create continuous collaboration and have people commit to the sprint if they weren't all on the same team? Seems like the most likely way to end in "Scrumfall" to me. I'm not an expert by any means but it seems to me that the sure way to fail at scrum is to think of it as a project management solution instead of an entire organizational change. Its cultural at the core.
To answer you question about "generalists". The easy answer is that by having certain people only able to work on certain things you create big fatty bottlenecks in getting to Done. With specialties you are always constrained at each step by having limited resources to work on something. In sprint 1 you may have a lot of db work to do where there is more than just that one dba can do. But then in sprint 5 where there is no change to the datamodel at all, your dba will be sitting around keeping bored. It becomes almost impossible in sprint planning to commit in a reasonable time if you have to divy up and assign at the task level by role instead of just grabbing the next set of priority features that fits your team's velocity. The generalist model will inevitably bring business value in the long run. You may just not see it right away until you achieve cross-pollination.
I would warn that if you are already in silo-ed groups by role, then you have to be very careful in am agile reorganization. Many people are not ready and don't want to be ready to lose their special titles and just become team members. I would think you should almost always expect some amount of turnover.
在 Scrum/敏捷开发中,团队中的大多数人最好是“通才”,这意味着任何人都可以合理地担任任何角色,以便任何人都可以在待办事项中完成项目,而没有人在等待其他人。
现在,您今天的情况可能并非如此,但做一些诸如同行编程和站立会议之类的事情来了解人们在哪里遇到障碍并改善知识的交叉授粉将有助于实现这一目标。
It is preferred that in scrum/agile development that most individuals on the team are 'generalist' meaning that anyone can reasonably step into any role so that anyone can pull off items in the backlog as the come and nobody is waiting around for others.
now this may not be the case in your situation today but doing things such as peer programming and standup meetings to see where people are having impedements and to improve cross pollination of knowledge will help in obtaining this goal.
在我的公司,我们为每个项目创建一个临时的跨职能团队。 我们现有的团队仍然存在,但我们拥有跨职能的 Scrum 团队非常重要。
At my company we create a temporary cross function team for each project. Our existing teams are still there, but it is really important that we have cross functional teams for scrum.
我们通常会尝试混合一点来获得一些跨团队的知识,但我们大部分时间都专注于我们的专业。 但随着项目的进展,我们可以更轻松地为不同的团队提供帮助
We generally try to mix up a little bit to get some cross-team knowledge, but we for the most part work on our specialties. But as the project progresses we can more easily help out on different teams
当我为前雇主工作时,公司重组了整个开发组织和产品管理。 他们在每个团队中安排了工程师、质量保证人员和分析师。 除了一些例外,这种分割主要是垂直/功能性的。 这些例外是一个错误——垂直架构不适合,因为它实际上是水平的。 我认为跨职能团队运作良好。 在您的情况下,如果可能的话,数据库和前端部门需要与其他部门合并,并且可能会创建特定于您的产品的新垂直领域
When I worked for my previous employer, the company reorg'ed the whole dev organization and product management. They put engineers, qa, and analysts in each team. The split was mostly vertical/functional with some exceptions. Those exceptions were a mistake - the architecture vertical did not fit, because it was really horizontal. I thought that cross-functional teams worked well. In your case, the db and front-end departments need to merge with the rest if possible, and new verticals specific to your product may be created
我们将团队分为新产品开发和现有产品维护,任何开发人员都可以在冲刺之间从一个团队跳到另一个团队。
We split our team into New Product Development and Existing Product Maintenance, with the ability for any developer to hop from one to the other between sprints.
我认为我们一直保持着传统的团队,至少目前是这样。 我工作的信息系统部门的应用部门内还有其他几个团队,尽管这些团队是在我们进入 Scrum 之前就已经加入的。
我们大多数人都在使用 Scrum 参与一个大项目,并且团队似乎进展顺利。 我们拥有一些新的工具和流程,它们似乎对我们帮助很大,并给了我们一种“令人敬畏”的感觉,希望我们能将这种感觉传递给其他团队。
对于数据库的更改,我们任何开发人员都可以在开发环境中进行更改,然后将脚本传递给 DBA,以便在生产准备就绪时完成。 对于网络的更改,有基础设施人员负责处理,并最初在操作系统、网络、内存、硬盘等方面设置服务器。
I think we have maintained the traditional team, at least for now. There are a couple of other teams within the applications branch of the Information Systems department where I work though these were put in just before we got into Scrum.
There is a big project most of us are on that is using Scrum and the team seems to be evolving along nicely. We have some new tools and processes that seem to have helped us a lot and given us a sense of "awesomeness" that hopefully we will pass on to the other teams.
For changes to a database, any of us developers can make the change in the development environment and then pass along the script to a DBA to be done when it is ready for production. For changes to the network, there are infrastructure folks that handle that and initially setting up a server in terms of O/S, network, memory, hard drives, etc.