跳到主要内容

保存的帖子

软件开发人员不需要许可或宽恕

Dave Nicolette |龙头
戴夫尼科尔特 高级顾问
读: 软件开发人员不需要许可或宽恕

软件开发人员

这一个是软件开发人员。

敏捷软件开发的基本思想之一是软件请求者具有了解客户价值的主要责任,并向构建解决方案的人解释“什么”;虽然制造商有责任在构建解决方案时确定“如何”。

然而,整个行业的长期问题是,制造商允许请求者决定“如何”。

特别是,我正在考虑始终保持软件设计清洁的概念。澄清广泛误解的“技术债务”的想法沃德尼尼岛重申“整个债务隐喻,让我们说,偿还债务的能力,并使债务隐喻为您的优势工作取决于您的写作代码,这足以在您来理解您的问题时能够重构。”

“技术债务”一词不仅仅是迅速键入代码和忽略设计的借口。“重构”一些可选的,我们在我们的业务利益相关者批准它时做的“额外”的事情。亚博vip9通道

罗恩·杰弗里斯有一篇文章描述基本重构是在软件开发人员的基本专业实践中的基本重构。他解释了我们如何开始逐步清理代码基础,在我们的正常工作过程中,而不会将锻炼转化为好莱坞生产。

软件开发技巧不是项目经理,客户,产品所有者或任何其他非技术利益相关者的责任。他们是制造商的责任;建筑商;开发人员。始终保持设计清洁是专业软件开发人员的基本责任。

不要要求许可

不要要求执行你被雇用的工作。

前一段时间,上述Ron Jeffries宣布,他不会要求重构的许可,而不是提出允许编写“如果”声明的许可。(我还没有及时回来疏通推文。相信我。)

您不会“请求权限”重构。你是自然而然地这样做的,并且是你工作的一部分。当您遇到需要一段时间的代码大量的代码时,您会通知您的利益相关者对项目的影响;如果您可能被允许重构,请不要问他们,漂亮。它会发生,它会产生影响。

在您继承了代码基础之前,您遇到了所谓的“技术债务”的回收力矩。这个事实,人们不理解病房的意图与债务比喻今天没有帮助你。脸部的红色无关紧要,产品所有者达到它;特定的用户故事将比“应该”的时间更长。

有债务,然后有债务

如果您想与债务隐喻一起玩,那么请考虑这种情况,类似于欠歹徒的钱。您的配偶或您的业务伙伴可能坚持您没有资金亚博vip9通道给予,因为如果您现在支付返回,您将丢失您的家或您的商店。但如果你现在不付回去,你和你的家人/伴侣已经死了。字面上地。说“否”不是一种选择。时期。即使贷款被前身取出,你就在钱的钩子里。

正如歹徒的贷款都没有严格合法,所以代码基础的原始技术债务并不严格按照病房对“技术债务”的定义。太糟糕了。没关系。注意现在到期。现在。

不要要求宽恕

作为专业人士操作。知道什么是正确的,在您的专业职责范围内,并相应行动。即使存在,没有任何有资格判断您的技术决策的“原谅”。您负责“如何。”没有别人了。

如果你选择不是要按照您的方式保持代码基础清洁,则代码中的CRUFT将增加到系统不再可行的点。在系统的计划生产寿命到期之前会发生。它会因为你而发生,不是因为你的利益相关者没有给你重构的许可。

当你知道的时候,你希望他们有你的背部吗?“不用担心;我的错。我告诉他们不要重构,过去两年的每一次迭代。“

他们不了解重构的重要性,因为它在他们的专业领域以外的领域。因此,无论他们说什么,代码群的损坏都不能是他们的错。当时候责备时,他们会说,“我相信球队知道如何开发和支持软件,他们让我们失望。”

他们会是对的。

“但我们不是(完全)敏捷!”

留下Cruft的一个常见借口是,团队或组织没有完全融合“敏捷”,或者还没有完全留下“敏捷”。

我不是在谈论一个“敏捷”的东西。如果您在工作崩溃结构中的工作包中从SCRUM产品积压或从工作包中的任务上工作,这并不重要。如果您在一对或暴徒中单独工作,并不重要。如果您坐在团队工作空间,办公室,小隔间或咖啡馆,那并不重要。

如果您正在进行绿地开发,增强或错误修复,并不重要。如果代码已具有可执行单元测试,请无关紧要,使您能够更安全,或者您使用的是使用全功能IDE,可以更轻松地将重构应用于代码。轻松或努力不是点。敏捷或非敏捷不是点。

最终它归结为您和代码。你所做的完全是您的选择。做出明智的选择。

“但我们会被解雇!”

这个借口一直困惑我。外科医生是否同意不会花时间消毒器械,因为医院想要更快地处理患者?工程师是否同意伪造检验报告,以核电站展示核电站墙壁墙壁中的混凝土空隙,因为主要承包商希望避免丢失日期的罚款?是否一位注册会计师会同意融合号码,因为她的雇主希望这本书想要适合潜在的合并?

他们可以被解雇“不服从?”当然。但他们不是厨房奴隶。他们有职业生涯声誉想一下。平衡,被解雇工作不可吓人。专业人士在谈到这一点之前可能会在自己的倡议中留下自己的倡议。一旦他们发现它是什么样的组织。你是不是一位专业的或者不是吗?

你担心你找到工作的能力吗?根据市场,美联储考虑了一个U-3率在5.0%和5.2%之间表示全职工作在美国。根据统计,截至2018年6月1日,“信息”部门的人民失业率为3.5%。很多,这是由于人们在工作之间搬到了更好的机会时。

根据可行的,填补技术职位空缺的平均时间是33天。增量重构不会增加用户故事的循环时间。不得不暂停解决问题的技术债务大量巨大债务不会在发布中引入33天延迟。该长度的延迟将指示代码已经不可行。那么,是什么是射击你的商业案例,因为你亚博vip9通道坚持正确地完成工作?

保持代码基础清洁是作业的一部分。没有一个通常的借口持有水。这是2018年。借口有点迟到,不是吗?去做就对了。

下一个>故意对软件开发人员进行练习

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*