xp方法与scrum方法_忘了Scrum,这种交付方法实际上有效(第2部分)

xp方法与scrum方法

It turns out Scrum doesn’t “work”, after all, that’s why people bastardize the Scrum framework, right? Since everyone likes to use Scrum, and then optimize it into something it wasn’t meant to be, a new delivery methodology is needed for the modern Agile world.

事实证明,Scrum并不“起作用”,毕竟,这就是为什么人们讨厌Scrum框架,对吗? 由于每个人都喜欢使用Scrum,然后将其优化为非必需的东西,因此现代敏捷世界需要一种新的交付方法。

警告 (WARNING)

This is a satirical piece, written to show the most horrific anti-Agile practices which can be implemented if you misinterpret the Agile Manifesto and the Scrum Guide. If you are following any of the practices detailed in this article, please feel free to reach out.

这是一篇讽刺性的文章,旨在显示最可怕的反敏捷实践,如果您误解了《敏捷宣言》和《 Scrum指南》,这些实践可以实施。 如果您遵循本文中详述的任何实践,请随时与我们联系。

Part 1 — Introduction, definition, and values Part 2 — Roles and Team setupPart 3 — Quality on larger projects, meetings, and artifacts

第1部分-简介,定义和价值 第2部分-角色和团队设置 第3部分-大型项目,会议和工件的质量

Novum团队 (The Novum Team)

The Novum Team consists of a Product Owner, a Build Team, and a Project Manager.

Novum团队由产品负责人,构建团队和项目经理组成。

产品拥有者 (Product Owner)

The Product Owner can also affectionately be called “Jira Admin” since their entire role is just to type up customer requirements into User Stories and put them into Jira.

产品负责人也可以亲切地称为“ Jira Admin”,因为他们的整个职责只是将客户需求键入“用户故事”并将其放入Jira。

Unlike Scrum, the Product Owner in Novum attempts to capture as many requirements as possible, with as much detail as possible, and then put these into the order which the customer dictates-since the customer will always know exactly what they want, and everything they want inherently has value.

与Scrum不同,Novum中的产品负责人尝试捕获尽可能多的需求,并提供尽可能多的详细信息,然后将其放入客户要求的顺序中,因为客户始终会确切地知道他们想要什么以及他们所需要的一切想要天生具有价值。

Nothing must ever be deleted, as that value time unit may be lost and the team could not envision the final product without it.

绝不要删除任何内容,因为该价值时间单位可能会丢失,并且团队无法想象没有它的最终产品。

专案经理 (Project Manager)

The Project Manager is the most senior person in the Novum Team, so the entire Build Team report to this person from a functional perspective (not legal line management — this sits with the Development Manager if there is one).

项目经理是Novum团队中最高级的人,因此,整个构建团队从职能角度向此人报告(不是法律部门管理;如果有,则由开发经理负责)。

The Project Manager “empowers” the Novum Team, and makes sure everyone follows the Novum methodology to the letter, and that everyone on the team is productive. The Project Manager, as the most senior member in the Novum Team, may need to make technical decisions when a technical person more senior than the Lead Developer is not around.

项目经理“授权” Novum团队,并确保每个人都遵循Novum方法论,并确保团队中的每个人都富有成效。 作为Novum团队中最高级的成员,项目经理可能需要在技术人员比首席开发人员更高级的不在时做出技术决策。

建立团队 (Build Team)

The Build Team is split up into the following specialisms; Developers, and Manual Testers. Each forms their own sub-team within the Build Team, and have distinct handovers so that once a sub-team has completed their work, the next sub-team then starts their work.

构建团队分为以下专业: 开发人员和手动测试人员。 每个人都在构建团队中组建了自己的子团队,并且有不同的移交,因此一旦一个子团队完成了工作,下一个子团队便开始工作。

Depending on the type of project, the Build Team can be extended to include the following sub-teams:

根据项目的类型,可以扩展构建团队,以包括以下子团队:

  • UX/UI Designer(s) (if building a website)

    UX / UI设计器( 如果构建网站)

  • a BA (If the PO is too busy to capture requirements)

    BA (如果PO太忙而无法捕获需求)

  • An Architect (If there is a lot a system design work, and this would stop the Lead Developer from being productive)

    架构师(如果进行大量的系统设计工作,这可能会导致Lead Developer失去生产力)

  • DevOps Engineer (If you are working with The Cloud)

    DevOps工程师(如果您使用的是Cloud)

  • Automation Testers (A special breed of Tester, these testers are more expensive than your usual Testers, but they speed up your testing and make you more Agile — only hire these if you have an enormous budget)

    自动化测试仪(一种特殊的测试仪,这些测试仪比通常的测试仪更昂贵,但是它们可以加快您的测试速度并使您更加敏捷-仅在预算巨大的情况下才雇用这些测试仪)

  • DBA/Data Engineer (If there is too much database work or really complicated database work)

    DBA /数据工程师(如果太多的数据库工作或真正复杂的数据库工作)

开发者 (Developers)

It is important that the Developers have a hierarchy in their sub-team and it is set up with the following titles:

开发人员的子团队中必须有一个层次结构,并使用以下标题进行设置,这一点很重要:

  • Lead Developer (you must have at least 1, but only 1 per Novum Team)

    首席开发人员(每个Novum小组至少必须有1个,但只有1个)

  • Senior Developers

    高级开发人员
  • Junior Developers

    初级开发人员

The ratio is usually 3 junior developers to 1 senior developer. If the development team has 4 or fewer developers, then the Lead Developer can be used instead of a Senior Developer (ie. 1/2/3 juniors developers and the lead developer).

该比例通常是3个初级开发人员与1个高级开发人员。 如果开发团队有4个或更少的开发人员,则可以使用首席开发人员代替高级开发人员(即1/2/3个初级开发人员和首席开发人员)。

Having a lot of junior developers on a project, rather than hiring experienced developers, is infinitely cheaper. Junior developers can easily be coerced into working longer hours and the lead/senior developers can tell them how to write their bits of the software.

在项目上拥有许多初级开发人员,而不是雇用经验丰富的开发人员,绝对便宜。 初级开发人员可以很容易地被强迫工作更长的时间,而主管/高级开发人员可以告诉他们如何编写自己的软件。

Hierarchy and seniority are important in the Development team since the juniors will be given the basic work, and the leads/seniors will be responsible for the more difficult work, and also end up having to rewrite the Junior Developers poorly written code, or intimidate and demean the Junior Developers for not being able to write code to the level of quality expected.

等级和资历在开发团队中很重要,因为初级人员将获得基本工作,而领导/高级人员将负责较困难的工作,并且最终不得不重写初级开发人员编写得不好的代码,或者恐吓和贬低初级开发人员,因为他们无法将代码编写到期望的质量水平。

Mentoring Junior Developers is strictly not allowed, as this wastes software development time, and instead, Junior Developers are expected to improve their coding skills by committing to overtime and by being intimidated by the lead/senior developers.

严格禁止指导初级开发人员,因为这会浪费软件开发时间,相反,初级开发人员应通过加班并受到领导/高级开发人员的威吓来提高其编码技能。

Image for post
Developer hierarchy in a Build Team
构建团队中的开发人员层次结构

The team model in Novum is designed to increase inflexibility, uncreativity, and unproductivity, and instead, have many teams — each with their own specialism — working separately within the same sprint, in the same Project.

Novum中的团队模型旨在提高灵活性,创造力和生产力,相反,有许多团队(每个团队都有自己的专长)在同一项目的同一冲刺中单独工作。

子团队之间的移交 (Handovers between sub-teams)

Trying to get all of these sub-teams to work together throughout the software development lifecycle (as Scrum suggests) is pointless since you can’t build software until it’s designed, you can’t test software until it’s built, and you can’t deploy software until it’s tested.

试图让所有这些子团队在整个软件开发生命周期中协同工作(正如Scrum所建议的)是没有意义的,因为只有在设计完成之前才能构建软件,在构建之前就无法测试软件,而且在测试之前部署软件。

Handovers between sub-teams mean that all relevant information is passed between multiple sub-teams in the Build Team and since all information is passed along, this improves the quality of the software. The important element of the handovers is not using documentation, as this would violate the Agile value of “Working software over comprehensive documentation”.

子团队之间的移交意味着所有相关信息都将在构建团队中的多个子团队之间传递,并且由于传递了所有信息,因此提高了软件的质量。 移交的重要元素是不使用文档,因为这将违反“通过综合文档工作软件”的敏捷价值。

Software development practices such as TDD and BDD, which can be used to integrate the testers at the start of developing the software, and thus prevent bugs, are inherently wasteful. It is much cheaper and faster to detect bugs and fix them after the software has been built.

诸如TDD和BDD之类的软件开发实践在开发软件之初就可以用来集成测试人员,从而防止bug的产生,这本质上是浪费的。 在构建软件之后,检测错误并进行修复要便宜得多且速度更快。

TDD and BDD are also very difficult for developers to understand and master, thus it will be a waste of development time and budget by having your developers try to master this new skill.

TDD和BDD对开发人员来说也很难理解和掌握,因此,让您的开发人员尝试掌握这项新技能将浪费开发时间和预算。

配对编程 (Pair Programming)

Pair programming is a wasteful practice in which two or more developers work on the exact same bit of software, this does not improve the quality or design of the software.

结对编程是一种浪费做法,其中两个或两个以上开发人员使用完全相同的软件进行工作,但这不会提高软件的质量或设计。

This practice does impart knowledge of that bit of the software between other developers, but this has no value since the same developer will always work on, fix and improve the same bit of software for the length of the project.

这种做法的确在其他开发人员之间传递了该软件的知识,但这没有价值,因为同一开发人员将始终在项目的整个过程中从事,修复和改进同一软件的工作。

Instead, this practice wastes development time and budget by having one or more developers watching another developer work.

相反,这种做法通过让一个或多个开发人员观看另一位开发人员的工作而浪费了开发时间和预算。

外包业务 (Outsourcing)

Novum works equally well if the developers and/or testers are working for an outsourcing company since developers in outsource companies a trained for years on the specific technologies your project will be using, before being put onto a project, and thus will be as skilled as developers hired directly.

如果开发人员和/或测试人员正在外包公司工作,Novum也会同样出色地工作,因为外包公司的开发人员在项目投入使用之前,已经接受了多年关于您项目将要使用的特定技术的培训,因此会像开发人员直接雇用。

The Lead Developer will need daily face-to-face meetings with the Project Manager and Product Owner — which fits with the Agile principle of “Business people and developers must work together daily throughout the project”.

首席开发人员将需要与项目经理和产品负责人进行日常面对面的会议,这符合敏捷原则: “业务人员和开发人员必须在整个项目中每天一起工作”。

Using video conferencing tools, the Lead developer can then direct the team and disseminate information about how to build the software (after being given direction from the Architect/Dev Manager), this aligns with the Agile principle of “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation”

Lead开发人员可以使用视频会议工具指导团队,并传播有关如何构建软件的信息(在从Architect / Dev Manager获得指导后),这符合“最有效的方法”的敏捷原则。向开发团队内部传达信息是面对面的对话”

重要的组织职称 (Important organizational titles)

The following organization titles are also required, and must sit outside the Novum team, as being part of the team will give too much insight into the issues the team has, and therefore cloud judgment as to why the Novum Team is truly struggling.

还需要以下组织头衔,并且必须位于Novum团队之外,因为作为该团队的一部分将过多地洞察团队所遇到的问题,从而使人们无法确定Novum团队真正挣扎的原因。

  • Development Manager (if the number of developers and testers is greater than 10)

    开发经理(如果开发人员和测试人员的数量大于10)

  • Test Manager (only if the number of testers and developers is greater than 25)

    测试管理器(仅当测试人员和开发人员的数量大于25时)

  • Senior/Principal Architect (if the Dev Manager is not skilled in system architecture, or there are not enough developers and testers to warrant a Dev Manager)

    高级/首席架构师(如果开发经理不熟悉系统架构,或者没有足够的开发人员和测试人员来保证开发经理)

  • Programme Manager (if you have more than one Novum Team, or you’re going through an Agile Transformation as Programme Managers are always infinitely more experienced in Agile Transformations than Project Managers)

    计划经理(如果您拥有一个以上的Novum团队,或者您正在经历一个敏捷转型,因为与项目经理相比,项目经理在敏捷转型方面总是经验丰富)

All important and system-wide technical decisions are ideally made by a Senior/Principal Architect or Development Manager who sits outside the Novum Team. This aligns with the Agile principle of “Continuous attention to technical excellence and good design enhances agility”

理想情况下,所有重要的系统范围内的技术决策均由Novum团队以外的高级/首席架构师或开发经理做出。 这符合“持续关注技术卓越和良好设计可增强敏捷性”的敏捷原则。

It is important that without looking into the Novum team, these two/three roles must decide who the underperformers are (usually with guidance from the Project Manager), and also direct the Build Team on how to build the project.

重要的是,在不调查Novum团队的情况下,这两个/三个角色必须确定谁是表现欠佳的人(通常在项目经理的指导下),并指导构建团队如何构建项目。

所有人都在笑 (All laughing aside)

If you are currently following any practices in this “methodology” please feel free to reach out to me, and I can explain in detail the damage it will be doing to your teams and projects.

如果您当前正在遵循此“方法”中的任何惯例,请随时与我联系,我可以详细解释它将对您的团队和项目造成的损害。

翻译自: https://medium.com/serious-scrum/forget-scrum-this-delivery-methodology-actually-works-part-2-a372a48b9880

xp方法与scrum方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值