我刚开始在Scrum工作,似乎缺少了一些东西。我是Scrum的新手


23

该代码是经典ASP / ASP.NET组合的完整混乱。混乱包括我们修补大混乱或对其进行补充。我们都太忙了,无法开始重写,所以我想知道。

Scrum中哪一部分可以让开发人员有能力说足够就够了,并要求他们有时间开始大型重写?我们似乎无休止地循环使用“ Stories”修补旧代码。

因此,事情似乎由非技术人员执行,他们似乎不希望推动重写,因为他们不了解代码库的糟糕程度。

那么谁来负责进行这种大的重写更改呢?开发人员?Scrum Master?

目前的策略只是为了找到时间,去做自己不参与上级领导,因为他们大多归咎于当前的混乱我们是在.. <-关于非技术人员告诉技术人员在这里做什么插入咆哮->


20
Sham敏捷再次抬起了丑陋的头……许多公司都说它们“敏捷”并且使用“ scrum”,而实际上它们都不这样做。
Oded 2012年

4
您没有做Scrum

20
考虑打印一张大海报,并将其放在墙上,让您的非技术人员可以清楚地看到它:半精明敏捷软件开发宣言 ...而左侧的项目在理论上听起来不错,一家企业公司,我们绝对不能放开右边的商品
gna


8
“<-insert咆哮关于非技术人员告诉高新技术人们应该做些什么这里- >”,管理层应该100%的百分之告诉人们高新技术什么做的,这就是为什么他们是管理和负责的业务,这是他们做到最好。他们100%应该不是做的是告诉他们怎么做,技术人员应该决定如何技术上实现什么,他们被要求做的。还有什么是完整的naïveté

Answers:


7

我不知道为什么这对人们这么难。他的商业案例就在这里:

We seem in an endless loop of just patching old code with 'Stories'.

开发人员时间就是金钱。很多钱。我离开一家公司,该公司计划在一年前修改其用户界面,希望采用scrum可以帮助他们停止旋转。发生了什么?相同OL'相同OL'。他们继续使用新功能,尽管由于基础代码库完全是过时的混乱,即使每次编写的代码都变得毫无意义,但“技术负担”却没有商业案例。自从我离开以来,他们的前端并没有发生任何变化,而我之所以被带去是为了彻底改造它。在那的两个月里,我实际上并没有碰过一点CSS或JavaScript。我只是搞砸了HTML和1990年代后期的一些古老Java模板系统。

我的答案?尽您所能,但是如果其他开发人员已经放弃并且为达到冲刺目标而工作很晚,而不是主张更实际的截止日期,并坚持认为技术债务实际上是一个阻碍性的问题,那就承担最坏的情况并开始寻找新工作现在。您的开发人员无法或不允许他们表达他们的担忧,或者业务太短了!

从长远来看,忽略这些问题总是要付出更多的代价。不多一点,但是更多。这不仅会牵扯到开发时间,而且会不可避免地减少您的人才水平,因为更了解并且拥有其他选择的开发人员将避免像瘟疫一样困扰您的公司。我目前的老板是开发商和公司所有者。我们不会重写某些东西,而只专注于其他优先级,但是当某些东西由于始终如一的时间消耗而确实需要重构时,它将得到适当的重构。结果很明显。由于多种因素,修改和添加新内容变得更加容易和快捷。如果采用适当的体系结构,曾经可能要花费数小时才能完成的工作可能需要花费几分钟。企业不喜欢听到它,但是为此值得搁置。

Scrum在开发人员没有太多影响力的环境中是失败的,IMO,因为对于业务类型来说,太容易想忽略维护和更新,而在需要时可以将其放在“成功计划”列表中的要点表示出来评估时间到了。他们将始终偏爱他们的生皮和晋升潜力,以期长期受益,即使它一贯地咬他们的屁股而忽略了这些问题。

Scrum还是一个以利润为动力的行业。公司为培训Scrum付出了很多钱。希望采用的人应该谨慎对待被推向谁,以及在给定的文化中它将变得多么现实。

无论如何,如果您实际上对开发一无所知,那么糟糕的代码库,含糊不清的管理以及没有尖刺的开发人员都是痛苦的秘诀,而在任何有用的方面,这种环境都几乎无法提高您的技能。在您真正发现您为解决该问题而付出的努力是否真正得到回报之前,请立即开始对GTFO采取行动


关于重构,我发现人们无法“内在化”重构是所有开发中不可或缺的一部分,这很奇怪,当问题如此严重时,您无能为力,那么您就无法接受。
nicodemus13年

1
或者您没有单元测试。:)单元测试的主要好处之一是,它使您可以放心地进行重构。良好实践的最大问题与一切都一样-它需要纪律,而且通常人们更喜欢懒惰。
nicodemus13年

2
那或者它们是极端编码人群的又一礼物,可以很容易地将其转变成一种工具,该工具可以使错误的行为发生于错误的手中。自动化测试在关键点上很有用,但我更喜欢声音架构和编写接口而不是测试。
埃里克·雷彭

1
我会说任何事情都是一样的,我个人编写测试来帮助定义接口。
nicodemus13 2012年

1
然后是所有待解决的难题的痛苦,因为有些小的例外情况可能无法通过初始分析轻易发现。
JB King

33

如果您确实要做Scrum,我对此表示怀疑,那么产品负责人将负责决定重写。多数情况下,重写不是一个好主意,顺便说一句,因为它不会产生任何新功能,只会引入新的错误。

http://blog.objectmentor.com/articles/2009/01/09/the-big-redesign-in-the-sky
http://www.joelonsoftware.com/articles/fog0000000069.html

扩展“重写不是一个好主意”:

尝试逐步改进几乎总是更好。就像Jarrod Robertson在评论中写道的那样,找到需要改进的模块,成为该模块的专家,并为下一个冲刺编写一个故事,以改进该特定模块。向产品负责人解释为什么该模块需要工作。


8
如果您有自己所声称的经验和智慧,请加紧努力,找出那个失败的模块,成为该模块的专家并修复它,然后整理一个业务案例以重新编写它,因为那样您将是该模块的专家

3
一些混乱需要清理。引用Joel的文章并断言,在没有任何可疑的统计数据的情况下,重写很少会成功(因为谁吹嘘成功的重写?)不会改变这一点。
Erik Reppen

3
@ErikReppen那么,当您的客厅杂乱无章时,您会拆除房屋并建造新房屋吗?
EricSchaefer

4
如果您阅读他的评论,他不是在谈论客厅。可能很难说出一个房间在哪里开始而另一房间在哪里结束。整个房子着火了。
埃里克·雷彭

5
哇,牛仔。在我们发表关于“重写不是一个好主意”的笼统声明之前,我认为我们需要以一个事实为条件,那就是转向新技术和适应时代对于您的IT生存至关重要。如果您不采用更新(希望更好)的技术及其所提供的优势,那么您的竞争对手就会。一般而言,这是正确的。T型车是完美的好车,但是由于竞争和新技术的采用,汽车已多次“改写”为我们今天驾驶的更好的汽车。
blesh 2012年

18

我真的会变得直率...

  • 您负责这项工作中的开发人员吗?
  • 您是项目负责人吗?
  • 开发人员在项目中持有多少“权益”?
  • 您进行改写的业务理由是什么?
  • 使它完全无用且不可恢复的代码库又是什么呢?

您已经说过您刚刚开始工作,但您似乎已经掌握了那里的情况。也许我误解了您提出问题的意图,但是我给您的印象是,您进入工作后会遇到许多问题,并且您已经得出了最简单的结论,在该结论中代码被破坏了,唯一的出路是重写,但是您是否真的考虑过雇主为此付出的代价?

使用任何现有的代码库-无论状态如何恶劣-所有者通常都会在代码所代表的产品上投入可观的投资。代码库既有直接成本也有间接成本,而作为软件开发人员,重写通常是您要做的最后一件事,因为这样会使您的代码资产贬值,从而使您之前的所有工作获得较低的回报。努力。

以Window的操作系统为例。创建了每个新版本后,就会有大量代码从上一版本继承而来。有时,整个库和API会被拖到几代OS中。为什么?因为开发人员知道这些元素可以正常工作,已经过测试,已经过修补和修复以防止安全和内存问题,并且因为进入该状态花费了很多钱。没有人愿意在赚钱的时候就抛弃工作代码,即使维护成本相对较高,从头开始的成本也始终会更高,在像微软这样的公司中,他们有数十亿美元在银行如果愿意,允许他们从头开始,但他们不愿意 t因为他们想最大化他们的投资回报。您的雇主与Microsoft没什么不同,除了有数十亿美元的现金可用于项目。

因此,代码是一团糟,听起来公司的各个部门之间存在沟通和边界问题。您或您的同事可以做什么?

一种选择是像团队一样继续前进,并希望将来有奇迹。可能不是一个好主意,可能只会增加您的挫败感和压力。

更好的选择是简单地完成工作,但在此过程中,它会寻找机会添加测试以支持那些看起来最脆弱的代码区域,然后对其进行重构,直到它们变得更稳定为止。您可以轻松地进行有说服力的论点以提高公司的投资,而不是简单地将其全部抛弃。

一个更好的选择是组织一个团队,并确保您有足够的资历来陪伴某个人,使他们成为一个很好的案例,使团队可以更有弹性地安排时间来改进代码库。我不在乎公司有多忙,或者时间表看起来多么僵硬,总是会有偶尔的“残酷”活动可以用来挤压一两个改进。但是,如果可以在完成其他任务的同时进行改进,那就更好了。如果是我,我很乐意与一位经理合作,并在软件开发人员阅读的一些规范书籍中向他们介绍概念。 清洁代码可能是您的团队最需要的那个。播下一些有关如何改进代码的种子,并提供一些您所要表达的示例。一个好的经理将看到为代码增加增量改进的价值,特别是如果您能够描述技术债务的概念。帮助您的团队负责人或经理为改进代码提出良好的业务案例,他们会更有动力对此采取行动。

仅仅说“代码不整洁”还不够。您需要鼓励您的同事一直练习干净的编码,并使用干净的编码技术来鼓励您在整理时进行一些整理。每当我从事新工作时,我都会打印出一张小海报,然后从办公室墙上挂下来。它说:“始终努力使代码比您发现的代码更漂亮”。在它旁边,我添加了另一个,上面写着“百合不需要镀金”。他们俩都提醒我,我应该始终尝试改善发现的问题,但要避免简单地将一个问题和另一个问题镀金。大规模重写通常是最糟糕的“镀金”操作,因为它们常常是出于错误的原因进行的。在某个时候肯定可以使用全新的产品版本,


不,我不负责。我是一位开发人员,拥有12年专业编程经验和7年.NET编码。我签过许多合同,过了一会儿,您很快就会对代码的质量有所了解。多少“赌注”?我不确定你的意思。我们可以继续使用旧的CLASSIC ASP进行修复,因为它现在非常脆弱,并且比这些变化是好的现代体系结构的一部分花费的时间要长10倍。商业理由是该站点现在由于某个模块而无法正常生产,原因是该模块似乎没有人理解,原因是该模块的营业额很高
punkouter 2012年

我认为您不了解此代码库有多糟糕。最重要的是,这不是火箭科学。这是CRUD101。它正在显示一个表单,供用户填写,验证并从数据中创建一些报告和PDF。基本上就是这样。但是10多年来,代码已被分割成许多糟糕的部分。在过去的12年中,我已经参与了大约20个项目,而这一定是我所看到的实际用于生产中的最糟糕的代码集合...我希望我可以向大家展示
punkouter,2012年

我为初学者所做的就是找到团队中的一些人,他们对编码充满热情,并且有兴趣成为最终实现这一目标的一部分。这是不容易找到那些人,因为...... brucefwebster.com/2008/04/11/...
punkouter

16
@punkouter:我不认为您理解这里提出的观点;代码库为“不良”不是重写的业务案例。对编码充满热情并希望将事情做对不是重写的商业案例。昂贵的生产错误和停机,以及花费数月的时间来实现琐碎但重要的新功能-这些为重写提供了业务案例。
Michael Borgwardt '04

1
@punkouter您对“死海”现象的描述链接也特别容易。通过流失而失去知识对企业没有任何价值,而收回其能力却具有巨大的价值。为避免潜在的昂贵和不必要的重写而花费的时间,比失去知识和专业知识具有更大的商业价值。鼓励更好的雇用做法,并迎接挑战,解决问题和改进系统的挑战,这是您赢得一点荣誉并成为雇主的宝贵资产的机会。
S.Robins

13

这是官方Scrum指南中Scrum开发团队的正式定义。我重点介绍与您直接相关的部分:

开发团队由专业人士组成,他们负责在每个Sprint的末尾交付可能发布的“完成”产品增量。只有开发团队的成员才能创建增量。开发团队由组织架构和授权,以组织和管理自己的工作。由此产生的协同作用可以优化开发团队的整体效率和效力。开发团队具有以下特点:

  • 他们是自组织的。没有人(甚至不是Scrum Master)告诉开发团队如何将产品待办事项转换为潜在可发布功能的增量。

  • 开发团队是跨职能的,具有创建产品增量所需的全部技能。

  • 除开发人员外,Scrum不认可开发团队成员的头衔,无论该人正在执行的工作如何;这条规定没有例外;

  • 各个开发团队成员可能具有专业技能和重点领域,但是问责制属于整个开发团队;和,

  • 开发团队不包含专门用于特定领域的子团队,例如测试或业务分析。

因此,开发团队应对自己的混乱情况负责,自行解决,而不必问团队以外的任何人。

在以后的每个估算中都包括技术债务修复时间,并确保提供的软件质量是一流的。

如果确实需要完全重写,则必须在Scrum Restrospective中解决该问题。产品负责人最终可能会取消该项目并开始一个新的项目。产品负责人也是唯一可以取消冲刺的人。


8
团队负责自己的混乱,但他们没有选择技术债务与新功能的优先级。由产品所有者决定。只是,一旦PO确定了积压的优先级,团队就可以决定如何交付积压。他们可以说“如果不先重构Y就无法交付功能X”,但他们却不能说“不,对不起,除非从头开始重写,否则我们不会添加任何新功能”。
布莱恩·奥克利

6
@BryanOakley:我不建议从头开始重写。我建议随着开发团队在相关领域开展工作,逐步减少技术债务。我也建议他们据此进行估算。

1
那太好了,但是如果我们需要新的服务器,新的数据库,新的软件,以便我们的开发人员拥有我们重写所需的所有工具,该怎么办?当唯一的“故事”与解决当前问题有关,而与允许重写的概念无关时,重写将如何开始?
punkouter 2012年

1
@punkouter:如果必须重写,请在scrum回顾中解决该问题。然后,产品负责人将负责取消当前项目并开始一个新项目。

5
不要以为重写决定是“正确的”决定,只是因为它是最吸引开发人员的决定。有时,出于商业原因,现在就交付功能,即使这会增加技术负担。
DJClayworth

8

正如所描述的,我不得不说我认为与SCRUM没有任何关系,或者您的产品开发团队目前是一个问题。

这个是正常的

您所描述的是代码库的正常熵。在您的情况下,团队可能离理想还差得远,但是仍然每个代码库最终都变成了泥泞大球

在一个完全完美的 绿地情况下,所有你能做的就是开始从绝对熵和移动更远朝它慢。

我同意其他人的观点,代码库混乱是由于开发人员造成的。我确信它早于SCRUM的采用就已经很多年了。

这不是技术或开发人员的决定,而是业务决定。

您不知道为什么产品所有者不希望重写。您作为开发人员认为这是必需的,但是确实有任何商业案例吗?

如果存在真实的业务案例,则不仅挥舞着手;“代码是我想要开始的新旧烂摊子,因为那是我想要的”,然后考虑到该投资的回报,管理层将承担重新编写的费用。

您没有给出一个可靠的业务案例来进行重写,只是对您对其他人如何造成此混乱的意见感到之以,并且不想处理它。

证明-利润促使业务决策放弃可用的软件,而不是某些OCD需要干净的代码库

如果你能真正表现出的证明,不只是理论,但很难证明是花X美元在绿地重写将保证让 X * N以美元为业务Y的时间框架(其中N高,Y短),你可能会得到管理层一定的牵引力。您可以提出和证明的情况极不可能。

否则,您只需要处理它,这就是现实。与您坚定的断言相反,如果没有这种完美无瑕的重写,绝对没有前进的方向,我敢打赌,您抱怨的代码库从现在起5年后仍将继续工作并在某个地方运行,并在很长一段时间后为某人提供功能和价值你已经离开公司了。


1
这并不意味着开发人员不必在内部使用某些版本控制系统,而是要照顾好自己和他们的最大利益,这仍然是开发人员的责任。在您的救命稻草人中,这200名开发人员没有做他们需要做的事情,管理人员没有开枪,也禁止他们自己设置版本控制系统。

3
混乱的代码库绝不是管理的直接结果,因为管理从不直接负责编写代码。就这么简单。Manangement负责为开发人员提供并营造一个不太理想的工作环境,但是解决诸如缺少版本控制之类的问题的责任始终落在那些从事实际工作的人身上。
彼得·兰格

1
外包开发人员是一个管理问题。内部人士更了解。管理层喜欢假装他们通过雇用200名开发人员来节省大量资金,而实际上他们可能与20名有能力的开发人员做得很好。就像我所见过的许多Scrum实现一样,采用的策略是无能的产物,而实际上是公司员工的开发人员对此没有任何控制权。
Erik Reppen

2
@Erik,不是说经理不必为糟糕的代码库(或部门中做出的任何其他错误决定)承担责任,并且经理没有直接负责提供开发人员工作的环境,例如您所描述的场景。但是唯一可以直接负责代码库的人是编写代码本身的人。
彼得·朗格

3
我还要补充一点,不让您的开发人员无法实现业务目标是愚蠢的。我从来不明白为什么人们如此故意将这些东西隐藏在实际决定其产品行为的人们面前。知道公司的长期目标实际上可以告诉您如何设计应用程序。此外,开发人员(至少是优秀的开发人员)可以解决问题。他们不断地解决问题。我们中的一些人会提前想到并解决它们,或者至少在我们的法规中打开正确的大门。
Erik Reppen

7

人们通常要求“大笔重写”时,我通常会持怀疑态度。在某些情况下,绝对有一定道理,但在大多数情况下,遗留代码具有价值(因为它已经在生产中,并且被用于启发其创建的目的)。在许多情况下,执行大型重写与敏捷相反。将新版本的应用程序带到可以有效替换现有应用程序的时间。

我更喜欢的方法是马丁•福勒(Martin Fowler)所说的扼杀藤蔓。使用新方法实现新功能(包括对现有功能的更改),但将现有应用程序用作可以扩展新功能的网格。这为您提供了两全其美的优势,在进行大量重写时,您不必停止所有工作,但是您可以受益于编写利用更新框架的新代码的好处。这绝对比开始清理工作更困难,并且可能不那么性感,但是与为已存在的所有内容进行废弃相比,它为企业提供了更多的价值,因为它已经过时了。


如果现有的基础已经一团糟,那将是困难的。他谈论的是完全不同的作者将多个遗留的asp.net系统紧密结合在一起的方式,用于同一个该死的网站。Web表单本身就是一个庞然大物,我敢肯定这是混杂的。
Erik Reppen

哦,我从未说过这将是最简单的方法……但是它对利益相关者更可口。另外,希望您一次做一次,希望您可以确保当今天的最新和最伟大的明天变得过时时,逐步淘汰它更容易。
迈克尔·布朗

我同意。但是就像Ive所说的(不确定所有人),现在不存在的是大约9个独立Web应用程序的集合,其中一半是Classic ASP,另一半是ASP.NEt的不同形式。所有方法都使用完全不同的方式来处理数据访问等。因此,要做的唯一的方法是伪造UI,使其看起来像新代码是旧代码的一部分..是的,也许。数据库。一张表有400个字段!
punkouter 2012年

我很好奇。该表代表什么?自从我看到i ++以来,这是我所听到的最糟糕的事情。doSomething(i); 在某些代码中重复执行了十几次,这些代码是从一个无效的JSP标记溢出来的。
埃里克·雷彭

5

我将在哪里以及我们的工作方式是:写一个新故事并将其交给产品负责人,然后由产品负责人决定如何确定优先级。一个例子是:“作为产品X的开发人员,我想在这一领域重新编写代码,以便将来的开发更加有效。”那么,接受标准就必须遵循以下原则:重写/重构x这样就更好了。

我不知道您的情况,但是如果我们要从头开始,那就是与产品负责人坐下来并说服他们为什么这样做,然后写一堆故事来重新创建现有案例的情况。功能。

我们尝试处理不良代码和/或遗留代码的其他工作是包括在分配用户故事时用于重做的任务。


开发人员可以编写“故事”并提交它们吗?问题是解释重写的原因对于他们来说太技术性了,无法处理...我只能说..“当前代码很难管理和破坏” ..
punkouter 2012

6
@punkouter:如果要重写的原因纯粹是技术性的(即不花费商业金钱),则您没有足够的理由进行重写。
Michael Borgwardt'4

@MichaelBorgwardt:您是说技术原因永远不足以重写某些内容吗?如果我正确地理解你的话,那是一个根本上不可行的方法。一直困扰我的一件事是正常的主/从方法,即“业务”决定“ IT”或任何部门所做的一切。这仅在一定程度上是正确的。IT有其自身的内部需求,而不是由企业决定的-这通常是一回事,并且会导致非工程化,不适合用途的软件。
nicodemus13年

1
@ user12355正如我所看到的,Michaels的观点是,如果它没有让他们赔钱,就不会赚钱,那么就永远不会有这种情况。如果他们没有赔钱,那么重写会花费他们钱。无法收回的钱。开发人员可以说“此代码很烂”,但是除非他们可以向雇主证明其经济利益,否则除非他们自己这样做,否则他们将永远不会获得重写的绿灯。
钻机2012年

1
@ user12355:技术原因绝对足以满足用户需求。它们不一定足以使该故事升至榜首并进入冲刺。
亚当五世

4

决定进行大笔改写是一项商业决策。您可以通过将自己的观点卖给负责事物业务部分的人员来尝试影响业务决策。

然而; 从一次迭代到下一次迭代的代码质量变化是开发人员的决定。如果您允许代码质量下降,那么您正在增加技术负担,以便现在满足产品所有者的期望。您可以做的是开始对编写的代码负责,并确保它改善了代码库,而不是相反。现在,这意味着您将失去速度,因为您一直在减少技术债务,并且您的产品所有者一定会失望的。您可以尝试解释一下,您急于让代码质量下降,并且现在正在采取措施纠正此问题。

现在,我意识到这是一个可怕的步骤,可能会很想将其再延迟一次,因此您可以在重要的截止日期之前退出功能X。不幸的是,等待时间越长,难度就越大。

顺便说一下,这绝对不是Scrum的问题,我也不建议针对Scrum的解决方案。这与开发人员拥有代码所有权有关。


1
是的,当您有10年的稳定营业额历史并且一次开发人员一次性完成时,他们显然不能很好地编写代码或理解现代架构。对我来说是新工作,而不是习惯于看到如此低质量的代码..我希望重写不仅是出于我自私的愿望,即喜欢编写新的好代码..也是为了所有人的利益..即使他们不像我那样了解情况。
punkouter 2012年

1
我只能重申已经说过的话;正式地,您不能确定现在是进行大规模重写的时候了。我猜您可以尝试向利益相关者展示将代码库逐步转变为痛苦程度稍差的状态需要花费多少精力,并将其与完全重写所需的精力进行比较。
Buhb 2012年

3

开发人员有责任就代码库的当前状态向世界发出警报。这可能发生在每日例会,回顾或非正式场合。这看起来似乎很明显,但是如果您不清楚表达混乱是什么,并因此浪费了多少时间,那么没人会注意到。Scrum Master通常负责将信息传递给PO和负责项目的人员,并说服他们需要做的事情,然后促进团队实施解决方案。

附带说明,IMO不一定是对此类问题的正确答案。但是,如果开发人员对当前的代码库感到厌倦,则朝着更整洁的体系结构迈出可衡量的小步通常是一个更好的主意,因为您可以看到进度,通过定期向PO展示成果来证明工作合理性,并继续实施新用户故事平行进行,而不是在无休止的资源垄断改头换面中迷路。


正如我提到的那样。将6个经典ASP站点+ 4个.net 1.1站点合并到一个站点中是没有办法的。所有代码都是由不同的人以不同的方式编码的。
punkouter 2012年

我很确定代码库将在未来几年内向前发展,以诠释Jurrasic Park的Ian Malcom博士:“我是说管理,呃...找到了办法。”

可能会在几年后到来,但是那些紧密结合在一起的传统.net站点的各种风格在那几年可能不会走太远。
埃里克·雷彭

当然,但是如果所有这些.net网站都继续运行,并且它们的运行继续直接或间接为公司创造收入,为什么前进的势头如此重要?当收入直接受到代码库质量的影响时,您可以相信,经理们将立即浪费时间进行重新设计,因为他们所有人都像开发人员一样需要抵押贷款。
彼得·朗格

根据我的经验,不断前进的动力通常是问题的根源。痛苦始于周转期望并没有减少,而他们仍然对架构问题充耳不闻,并认为Scrum将每两周神奇地开发一套完整的功能,而不会进一步加剧问题。我并不是说如果我们不能提出解决我们所遇到的时间浪费的替代方法,那么我们就应该警惕剔除材料的冲动,但是我已经看到至少有两个非常好的案例我的职业生涯大修。
Erik Reppen

2

您问:

Scrum中哪一部分可以让开发人员有能力说足够就够了,并要求他们有时间开始大型重写?我们似乎无休止地循环使用“ Stories”来修补旧代码。因此,事情由非技术人员执行,他们似乎不希望推动重写,因为他们不了解代码库的糟糕程度。

作为既是经理又是开发人员的人,对您问题的最简单答案是,Scrum或任何其他方法论都不存在,或者在任何业务场景中,开发人员都有权说足够就够了,并且要求改写。这里的许多人提出了很好的,有效的论据,以解释为什么重写通常是个坏主意,并解释了如何以及应该如何以渐进的,敏捷的方式实现变更。我都同意。

但底线更简单。永远不要做出这个决定。您是员工,而您真正要做出的唯一决定是“我会继续为这些工作工作还是找一份担心我疯狂的技能的新工作?” 您的新工作也不允许您做出决定,但是至少您会感到自己在命运中掌控自己。


1
如果我在这里正确地阅读这句话,听起来您对无法坚持新员工感到有点痛苦。如果我没看错,您是否认为,新员工的技能实际上对他们不愿在贵公司工作而有足够的需求,因此他们是唯一的非固定员工?
埃里克·雷彭

1
差远了。实际上,我部门的员工已经和我在一起了几年。我几乎没有翻身。我要说明的重点是,最终,在任何公司,任何行业中,员工执行的工作完全取决于签署薪水的人而不是员工。员工必须做出的唯一决定,就是坚持或不坚持与员工的关系,这是我的老板提出要求时包括的本人。原始海报询问他作为一名雇员何时决定发展。答案永远不会。
彼得·朗格

那么“惧怕我疯狂的skilz”的特征是什么呢?这个家伙是一位经验丰富的开发人员。我可以从我在类似情况下的经历告诉你,他所谈论的问题不仅是要按自己的方式做事,而且实际上是一场持续不断的灾难,既使每个人都痛苦不堪,又使雇主浪费了更多的钱。时间和人才保留比他们可能意识到的要多。
埃里克·雷彭

1
因为我在说明基本论证的谬误,该谬论源于自我(从心理学的角度来看)。这不是他有多熟练的问题。这不是代码混乱的问题。这不是开发方法可以为他做什么的问题。这是关于权力的问题。在雇员关系中做出决定的权力属于雇主。员工拥有的唯一决定权是当这种关系变得难以承受时,取消该关系。
彼得·朗格

1
我同意,Scrum对于处理技术债务并不满意。但是我不同意原始问题的基础。他实际上是在问雇主/雇员关系问题,但只是在问题中提到了混乱。就像我是否问过:“作为一名基督徒,制作Enchillada的最佳方法是什么?”。这不是一个真正的神学问题;即使我误以为我的宗教信仰是相关的,但这仍然是一个关于烹饪的问题。
彼得·朗格

1

我感到您很痛苦,但不确定与Scrum有什么关系。是否重写代码的决定与开发过程无关。


承诺每两周完成一次工作的开发过程可能会在很多年以来被忽略的大规模重构中起到很大的阻碍作用。我在Scrum培训中注意到的第一件事是他们对技术债务这一话题的看法。宣布您的应用程序现在变得更精简,变得更慢,并且可以更快地完成工作,这并不令人兴奋。企业类型希望它们可以显示给朋友和投资者的可见增值。
埃里克·雷彭

1

等等...什么?

你在打补丁吗?您应该进行重构。坚持敏捷的价值观。使用TDD和适当的做法,情况最终会变得更好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.