每次更改的版本控制和错误跟踪开销是否过多?


50

我在一个CVS疯狂和Bugzilla坚果的地方工作。

  1. 每个发行版都有太多分支,以至于无法计数。每个人都在不断地自动合并。

  2. 这项工作没有流动性。一切都感觉锁步。即使是简单的事情,也需要25个步骤。这不像是在工厂生产线上,而是每天自己建立工厂。

情况示例:

要修复一个错误,首先我要获得一个干净的新虚拟机。然后,根据Bugzilla报告中描述的另一个分支,为该单个错误修复程序创建一个分支。我将分支安装在计算机上,进行设置。我修复了错误。我将其检入,将其和机器留给其他人进行测试。然后,我必须进入错误控制软件,并解释我的工作并编写测试用例以及所有步骤。最终,其他人将其与发行版合并。

无论错误有多微小,我都必须做所有这些事情。有时人们将多个错误的工作结合在一起,但是正如我所说的那样,分支太多了,这几乎是不可能的。

在其他任何工作中,我只想修复该错误即可。我什至不记得使用SCM,尽管我曾经做过的每一项工作都使用过SCM:这是因为在其他每项工作中,他们都以某种方式使其无法使用

在这个过程中是否有障碍,并成为自身的终结?这甚至是工程吗?


8
对您来说不好:(您工作的公司是否拥有CMMI 3和更高版本?
artjom 2011年

6
听起来该组织早些时候被严重咬伤,并且防御能力不断增强。也许您应该问一下它的历史?

1
而且由于主管鼓励不断分散注意力,您的工作肯定是个地狱...
葡萄树

57
这是一个问题还是博客文章?
宫坂丽

31
如果该软件是核电站的控制系统,这似乎并不是没有道理的。如果是Facebook粉丝页面,那似乎太过分了。没有上下文,很难说这是否合理:当然,有些项目不是它所为,而其他项目当然是。
edA-qa mort-ora-y

Answers:


89

在这个过程中是否有障碍,并成为自身的终结?

不幸的是,繁重的过程很常见。有些人-尤其是管理人员-虔诚地认为过程会产生产品。因此,他们过分地处理了流程,却忘记了实际上只有少数几位辛勤工作,精明的人真正创造了产品。对于高层管理人员来说,甚至认为他们的业务掌握在极少数人手中是令人恐惧的,因此,他们闭上了眼界,而想到了他们亲爱的“过程”,这给了他们控制的幻觉。

这就是为什么拥有少数优秀工程师的敏捷创业公司可以击败大型,成熟的公司,后者的员工将95%的精力用于流程和报告上。曾经曾经击败竞争对手和/或创造了全新市场的曾经是小型创业公司的一些例子:

  • 苹果(Apple I由1位工程师创建;当时公司有3名员工)。
  • Google(最初由2位程序员创建)。
  • Facebook(最初为1人努力)。
  • 微软(1975年成立2人公司)。

可以轻易地说,这些只是离群值,极端例外,而做一件严肃的事情,最好成为一家大型的成熟公司。但是这个清单还在继续。等等。尴尬地长。几乎今天所有的大型公司都是从一家车库商店开始的,这做得很不寻常。有点奇怪 他们做错了。您认为他们正在按照流程进行吗?


19
我想知道,您在这里提出的任何索赔是否有证据?您是主要来源(即执行管理层)吗?您是否与他们进行过访谈或阅读过访谈?有趣的是,各种各样的回答都说“是!马上开始!”。似乎来自从来没有付出过付出的人,因此无法保证准确性。我认为对于我们来说,区分真正正确的答案与开发人员(众所周知是反管理人员)只想相信那些答案是很重要的。
亚伦诺特,2011年

6
我真的不认为在批评这样的答案时,应该由我本人或其他人来提供“更好的支持信息”。您提出了非常有力,广泛而广泛的主张,并提供了零证据-甚至没有传闻证据-对其进行支持。不幸的是,这种民粹主义胡说很容易使一个所谓的专业社区动摇。
亚伦诺特,2011年

11
真的,您认为告诉人们想听的内容并不容易获得选票吗?是的,说穿了,我对那些支持这些不当答案的暴民并没有太多的尊重。我猜我不能责怪像您这样的人在社区奖励这种行为时做出了绝对的最低限度的要求,但是尽管如此,我希望人们至少在受到批评时会尝试改善其答案,而不是固执地指出投票的理由。
亚伦诺特2011年

8
整个事情?“某些人”-哪些人?“特别是管理”-为什么假设他们更有可能相信这一点?“宗教想象”-您如何确定他们的信仰没有事实或逻辑依据?“过程产生产品吗?” -谁确切提出了该特定要求,在什么情况下?“过度处理”-究竟是什么意思?“业务掌握在极少数人手中”-到什么程度,以及如何做到?“闭上眼睛/控制的幻想”-解释吗?“敏捷的初创公司……可以击败大型,成熟的公司”-您是否断言这不是离群值?
亚伦诺特,2011年

7
@Aaronaught:这个论坛不是科学论文。没有人,不是您也不是我,将不会为他所写的每个句子提供解释。您只问这些问题的答案,因为您不喜欢它。显然,它触动了神经,但是文明地不同意呢?对于初创击败大公司,例如读取只是两个第一的产品说明从这个句子:amazon.com/Radical-Innovation-Companies-Outsmart-Upstarts/dp/...
Joonas Pulakka

21

公司通常会遭受我所称的控制灵活性难题。规则,结构和官僚机构的开销越少,完成任务就越容易和快捷(这也越有趣)。但是,做“坏”事情和“好”事情一样容易。这意味着只有拥有熟练的员工而不会犯一些非关键性错误的人才可以。

另一方面,如果您的员工中低至半熟练的员工很多,并且/或者犯错的成本太高(例如北半球上的航天飞机碎片的风险),公司往往会越来越多地采用“规则” ”和“过程”以尽量减少它们。

唯一的问题是,这些过程的累积开销使完成任何事情变得困难,这将导致更多有才能的员工离开公司。这导致平均技能下降得更多,需要更多的流程和官僚作风。因此,死亡螺旋一直持续到大事情发生或公司破产为止。

如果您发现自己在一家公司看来在这方面已经超出了回报,那么您可以解决自己“不关心”您的工作(这是大多数留下来所做的事情),或者摆脱困境灵魂完好无损的:)

如果公司还没有走得太远,并且您有能力通过绝对的决心和毅力尝试扭转这一局面。请注意,这可能会花费大量工作和个人精力,无法保证成功,因此请务必确保这样做值得。有时候,最好只是减少自己的损失,并让自己更加丰富自己的经验。


17

这种开发方式只有一个合理的理由:开发的软件绝对是关键任务,在任何情况下都不得包含任何错误。想一想客机上的喷气发动机喷油固件,心脏起搏器固件或核导弹发射系统。

在所有其他情况下,成本开销将扼杀企业。分手后要往前看了。


2
他们声称这是关键任务,但是任何软件都可以这样说。这取决于客户接受故障的程度。如果它是关键任务,我不得不问为什么,例如,他们似乎真的不喜欢将任何项目的所有权授予任何人的想法。最近,有人问我一个我三个月前写的复杂软件,我无法提供任何线索,因为一旦我开始工作,他们就使我突然离开了该工作。这些人是白痴。他们认为每个人都是可抛弃的,除了他们之外,其他任何人的意见都是毫无价值的。
2011年

1
@Ponk,尽管每个人都是一次性的。当流程定义了工作,并且客户已经接受了软件并且资金不断涌入时,一切都不再是关键任务。为什么现在要关心创新?客户可能只是在乎,马上就知道他们的供应商拥有一支训练有素且随时可以使用的软件开发团队,他们可以在不到一年的时间内推出新功能。同时,除了您正在工作的幻想以外,让您和团队完成任何实质性的工作并不重要。
maple_shaft

1
@maple:一件事变得多余了。另一个原因是,如果人们因您的小错字而死亡,并且除了失业以外,您还将面临误杀和数年监禁的指控。这就是我所谓的关键任务,没有那么多软件会面临这种风险。
SF。

3
他们这样做的原因不只是原因之一。说一个发展过程比另一个过程好就等于说橙色比香蕉好。如果他们有利可图并且可以支付薪水,那么此过程将比某些敏捷公司更好。从所写的内容中,我只能看到这个人做错了。有很多公司为开发人员提供更多自由。
Dainius

+1指出在某些情况下(甚至在软件中)这种级别的控制是必要的。
riwalk

15

这个问题实际上包含两个问题,需要分别解决:

为什么有些团队有严格的开发流程?

简单的答案是,如果不这样做,就会发生错误。代价高昂的错误。对于开发而言,这是正确的,对于IT领域的其余部分(系统管理员,DBA等)也是如此。

对于许多开发人员和IT工作者而言,这是很难理解的,因为我们大多数人只曾在“极端”中工作过-大型的财富式公司,至少有十几个开发人员,并且遵循严格的流程,或者小型的微型ISV甚至是自由职业者,人们不会很糟地搞砸,或者搞砸的成本很低。

但是,如果您曾经见过处于这两个阶段之间的公司-即使是一家拥有出色,才华横溢的IT员工的公司-您也会了解没有流程或流程不善的危险。您会发现,员工之间的沟通遭受了组合爆炸问题的困扰;一旦您达到一个团队中大约6-10名开发人员的水平,主要或严重缺陷的主要原因就不是缺乏人才或专有技术,而是缺乏沟通。

爱丽丝在周一早上四处询问,并决定可以在躯干中进行重建手术,因为没有其他人在做那部分。鲍勃(Bob)一个小时后才回来,那是他休假回来,精力充沛,决定要在那个完全相同的区域实施一项新的主要功能,为什么还要打扰分支机构,因为无论如何都没有人触摸过该代码?因此,爱丽丝还清了这笔“技术债务”,鲍勃实施了他的杀手级功能,该功能已经停滞了6个月,当他们最终都签入自己的代码时(当然是在周五关闭时间之前!),整个团队必须留在后面,并努力度过噩梦般的冲突地狱,在接下来的几周中,这种冲突会继续作为错误和回归而继续存在。

爱丽丝(Alice)和鲍勃(Bob)都在编码任务上做得很好,但是他们俩都以一个错误的决定开始(“可能发生的最坏情况是什么?”)。团队负责人或项目经理将他们带入验尸,并敲出清单以防止这种情况再次发生:

  • 必须每天检查一次,以最大程度地减少冲突的影响;
  • 必须在分支机构上进行大约1天以上的更改;
  • 所有重要的任务(包括非功能性工作,例如重构)都必须在错误跟踪器中正确跟踪和分配。

我敢打赌,对我们很多人来说,这个“过程”似乎是常识。这是旧帽子。但是您知道很多较小的团队不这样做吗?一个只有两个人的团队甚至根本不会理会源代码控制。谁在乎?老实说这没有必要。问题只有在团队成长时才开始发生,但过程没有。

当然,过程优化就像性能优化一样。它遵循反指数曲线。上面的清单可以消除80%的缺陷,但是在实施该清单后,您发现其他一些原因可以弥补其余 80%的缺陷。在我们的虚构但熟悉的示例中,由于具有不同的构建环境,可能是构建错误,这又是由于没有标准硬件,并且开发人员使用的开源库每2周更新一次。

因此,您有以下三种选择:(a)标准化硬件并严格限制第三方库的使用,这既昂贵又可能严重损害生产力,或者(b)设置构建服务器,需要sysadmin组和a专职开发人员来维护它,或者(c)让开发人员自己通过分发标准虚拟机并告诉开发人员在此基础上进行开发来自己做到这一点。显然,(b)是最佳的长期解决方案,但(c)在可靠性和权宜性方面具有更好的短期平衡。

循环不断。您看到的每个“策略”通常都是为了解决实际问题而制定的。正如乔尔·斯波斯基(Joel Spolsky)早在2000年写的那样(与您完全不同的话题是,但仍然有意义):

当您走进一家餐馆时,看到一个标有“禁止狗入内”的标牌,您可能会认为该标牌纯粹是说明性的:饭店先生不喜欢狗在附近,因此当他建餐厅时,他就竖起了这个标牌。

如果这就是发生的一切,那么也将有一个“禁止蛇”的标志。毕竟,没有人喜欢蛇。还有一个“禁止大象”的标志,因为当他们坐下时,他们会摔碎椅子。

标志存在的真正原因是历史性的:这是一个历史标记,表明人们曾经试图将狗带入餐厅。

在大多数(我不会说全部)软件团队中都是相同的:诸如“您需要为每个错误修复添加一个测试用例”之类的策略几乎总是表明该团队在历史上存在回归问题。 回归是这些问题中的另一个问题,最常见的原因是通信中断而不是功能不足。只要您了解该策略,您就可以使用合法的快捷方式(例如,我必须修复6个小错误,但是它们都具有相同的功能,因此我实际上可以为所有9个小写一个测试用例)。

这就解释了为什么存在这些流程,但这不是全部。另一半是:

为什么这个过程很难遵循?

这实际上是一个更简单的答案:这是因为团队(或其管理人员)专注于可重复的结果并最大程度地减少缺陷(如上所述),但并未充分关注该过程的优化自动化

例如,在原始问题中,我看到了几个问题:

  • 修订控制系统(CVS)是当今标准的传统。对于项目,它几乎已完全被Subversion(SVN)取代,而Subversion本身很快就被诸如Mercurial(Hg)之类的分布式系统所取代。切换到Hg将使分支和合并变得更加简单,即使在上面的假设示例中,每日提交的要求也将变得不那么痛苦。该代码甚至不必编译,因为存储库是本地的。-实际上,懒惰的开发人员甚至可以根据需要自动化此步骤,设置注销脚本以自动将更改提交到本地存储库。

  • 没有花时间使虚拟机过程自动化。获取,配置源/库并将其下载到虚拟机的整个过程可以100%自动化。在本地计算机上进行错误修复时,您可能会在某个地方的中央服务器上运行一个无人值守的过程(并且仅使用VM来确保构建干净)。

  • 另一方面,在一定程度上,每个开发人员的VM解决方案开始变得愚蠢,您应该只拥有一个Continuous Integration服务器。这才是真正的生产力收益的地方,因为它(主要)使单个开发人员不必担心所有构建。无需担心设置干净的虚拟机,因为构建服务器始终是干净的。

  • 问题的措辞(“所有步骤的测试用例”)表示正在进行一些手动测试。同样,这可能适用于工作量相对较低的小型团队,但在更大范围内根本没有意义。回归测试可以并且应该是自动化的;没有“步骤”,只有添加到单元/集成测试套件中的类或方法。

  • 不用说,从Bugzilla升级到更新(更好)的Bug跟踪系统将使那部分体验的痛苦减轻得多。

公司不一定只是因为尚未解决这些问题就变得便宜愚蠢。他们所知道的只是当前流程有效,并且在某些情况下,他们规避风险,不愿对其进行任何更改。但是,实际上,他们只需要让他们相信这些好处

如果开发人员花了一周的时间来跟踪所有非编码任务的时间,那么您可以轻松地将其累加起来,向管理层表明(例如)零资本,100个工时的投资来升级到Mercurial消除解决合并冲突的每周最多10个工时的工作,那么这就是10周的回报,他们几乎肯定会同意。构建服务器(CI)的想法相同,或更完善的错误跟踪。

回顾一下:团队还没有做这些事情,因为没有人说服管理层今天要做的足够重要。因此,要采取主动,将其转化为成本效益方程式;找出在可以最小化风险的情况下可以简化/自动化的任务上花费了多少时间,并计算了收支平衡点和新工具或技术的最终收益。如果他们仍然不听,那么您已经知道剩下的选择了。


如果开发人员花了一周的时间来跟踪所有非编码任务的时间,那么您可以轻松地将其累加起来,向管理人员展示……并将其转化为成本效益方程式等。

上面的部分看起来值得进一步扩展。

我可以确认它有效。程序员在我从事的一个项目中几次使用它,每次导致所需的更改。

我的总体印象是,如果做得正确,此技巧会否决大量管理层的无知和惰性。

我想指出,尽管我们(开发人员)不得不采用这种DIY方法的公司在IT方面非常不成熟。在经验丰富的软件供应商中,我看到的东西大部分是由经理自己完成的。通常,他们比我们的程序员更有生产力。生产力更高。


9

如果您在一个受到严格监管的行业中工作,那么可能会有一些麻烦的原因:有一天您可能会受到审核,并且您必须出示所有记录以解释谁修复了该错误,如何修复,如何进行了检查,如何进行了测试。等等...

因此,这可能是必要的邪恶。

另一方面,如果没有合理的理由(除了管理层缺乏信任之外),您应该尝试与经理交谈,并告诉他如何为公司节省时间(从而节省金钱)。

如果正确解释,没有人会拒绝更快更好的过程。

但是,请准备好辩护您的论点以证明变更的合理性。


4
我曾经接受过这样的工作面试,这与医疗保健有关,他们将这一过程描述为生活中的地狱。老实说他们很好。
2011年

2
但是,这样的过程以当前的实现为原始且无缺陷为前提。真正将这种过程锁定在损坏的产品上是真正的危险。
edA-qa mort-ora-y

1
“如果正确解释,没有人会拒绝更快,更好的过程。” ---我可以想到决策者可能会遵循的许多议程,但这些声明都不成立。

@kekekela,这取决于您如何定义“更好”的过程。作为软件工程师,我可以将其定义为更有效,而项目经理将其定义为更具控制性。
maple_shaft

这可能取决于此。但是,如果将自己限制在认为每个人都确实希望根据自己的意图良好的指标进行“最佳”流程的处理,则会使您错失导致现状的许多根本原因。

8

问题的一半是您在流程中使用了过时的工具,而这些工具并不是专门为这些工具而设计的。您所描述的内容在现代DVCS中非常容易实现,而无需繁琐的为每个bug创建分支的任务。

另一个问题是您显然不在自己喜欢的工作范围内。您需要维护,而您却需要开发。除了换工作之外,几乎没有其他可以做的事情。


8

软件工程学科本质上是“关于过程的”,因此想知道它是否“已经”成为某种意义上的重点。

尽管大多数程序员宁愿为绝对的最小化流程所困扰,但就某种程度上讲,即使他们没有解决组织所面临的问题,有些人仍会主张采用敏捷方法,但是一家公司完全有可能决定使用“出于合理的业务原因(例如“客户要求”)的“ 繁重”流程。如果您的客户是《财富》 500强公司,大学或政府机构,这是很常见的。向这些客户销售产品的回报可能非常高,足以证明增加的过程开销。

您的公司是一个数据点,不可能将您的经验推广到整个行业趋向或远离较重流程的趋势。真正的问题是,哪种平衡最适合您的公司,产品,客户以及您个人(作为程序员)?如果您不喜欢在那家公司工作,可以促成变革或找到另一份工作。


1
+1代表“软件工程学科”。从任何意义上说,这都是一门学科。
丹·雷

6

从我今天从您那里看到的另一个问题来看,您似乎对工作很不满意。您已经去过很长时间了,您可以告诉您的主管您认为自己犯了一个错误,现在该是时候让您离预期更早了。

如果您擅长工作,那么您真的不会很困难地找到新工作;老实说,如果没有充分的理由可以进行这一工作,我可能也会考虑搬家。完全使用CVS对我而言确实是一个大难题,但是我总是在面试中问到源代码管理问题。显然,我不知道您的情况,如果您还有其他义务,可能无法辞职。


敏锐的观察:)我正在面试。
2011年

CVS我都可以忍受,一些公司对骗我的,我会使用Silverlight做WCF / RIA Web服务,而是把我放在一个古老的PowerBuilder应用和仍在使用VSS 6.面试我曾
maple_shaft

1
啊哈ouch @maple_shaft,这很苛刻。仍然想起您能告诉大孩子们的事情...我在powerbuilder应用程序上工作...:D#life-fail
匿名类型

3

我本来是想吐出非常糟糕的程序员是如何充斥软件工程的,但是您所描述的情况却很糟糕。

以我的个人经验,您描述的某些“过程”是伴随着管理和系统管理而完全没有意识到它们强加给程序员的系统效率低下。例子包括限制操作系统的选择,限制使用的软件,互联网访问,个人桌面管理权限;所有这些都是良好发展必不可少的

此外,公司不同分支机构采用的“魔术解决方案”之间的兼容性要求。示例包括总部实施集中式源代码控制,异地Outlook服务器以及可能不适用于每个问题的编码准则或语言。

保持企业领导者运转的乐趣并不多,但是我发现在一些公司中确实很少存在创新,创造力和辉煌的泡沫。


+1试图在可怕的情况下找到火花。
匿名类型

3

您可能在面向流程的公司工作。我会尝试寻找一家注重结果的公司,在这里重要的是什么而不是如何做。

在我的公司中,我们也有一个“流程”(但是非常简单)。但是当它妨碍了我时,我就会违反规则并跳过步骤。只要我不因捷径而中断任何事情,就不会有人对我说任何东西,因为我会得到结果。


2

在这个过程中是否有障碍,并成为自身的终结?这甚至是工程吗?

从字面上看,大多数工程学都是根据特定的问题将确定良好的部分按固定顺序排列在一起。这是最明显的,如果您问我一个ME他们整日做什么。您将工程设计与架构或早期产品开发(在任何领域)混淆了。关于您的问题,我有两个看法。

  1. 您似乎已被分配到错误修复工作,而不是体系结构或设计工作。
  2. 您的同事似乎提出了有限的解决方法(结合错误修复的VM)来提高它们的效率,您似乎并没有遵循他们明智的示例。

这是一个事实,即在需要大量人员参与的任何建设性努力中,有些人必须进行设计,而较大的一组人则要“进行”实施。抱歉,您属于第二组。

正如其他评论者所指出的那样,对于高度分支的开发模型,CVS并不是最佳的工具,但是我也注意到,您不负责合并……因此不必担心。

本质上,您的大多数抱怨似乎是“我不想在开发之前,之中或之后进行测试!” 让我们逐点分解您的步骤。

  • 要修复一个错误,首先我要获得一个干净的新虚拟机。测试环境
  • 然后,根据Bugzilla报告中描述的另一个分支,为该单个错误修复程序创建一个分支。-您复制在其中发现该错误的环境...这怎么不合理?
  • 我将分支安装在计算机上,进行设置。我修复了错误。我签入 -基本开发流程
  • ...让它和机器供其他人测试。-如果合并向南,您的合并团队可能希望它能够验证修复。
  • 然后,我必须进入错误控制软件并解释我的工作 -如果您在一家不这样做的商店中,为什么还要跟踪错误?
  • 并编写所有步骤的测试用例。-我可能是错的,但这似乎是所有“酷孩子”前进的方向
  • 最终,其他人将其与发行版合并。-以上几个步骤是为了简化工作

您前面的其他人显然会进行错误分类,以确保找到的错误不会在另一个发行版中得到修复,或者在以后的发行版中不会被修复(这是测试用例的目的)。

关于此过程,即使是非常不寻常或过分热情的唯一事情就是VM。如果我们知道您在哪个领域工作,就有很大的机会被认为是合理的。


2

有趣。你有测试员吗?他们应该这样做。我是一个,在我工作的地方,我们有一个不错的解决方案。

对于功能缺陷,就像您要解释的那样,我们的过程如下:

  1. 我测试了VM中的缺陷(由客户报告,或者在我的探索性测试中,或者是w / e)
  2. 发现/再现了错误。
  3. 我创建了错误。错误包括:
    • 从安装到发现错误的全面复制。
    • 指向VM快照的链接(如果我认为开发人员将需要它的话...我还是会快照它,以防万一他们需要它)。
    • 系统信息,我需要进行的任何特殊设置。
  4. 该错误已分配给开发人员。在他们进行修复时,我:
    • 创建一个测试案例
    • 将手动测试编写(或转换)为自动测试

然后,我等待解决方案,并以他们需要的任何方式帮助开发人员。解决后,我:

  1. 运行自动化测试用例和手动版本(有时)以确认修复。
  2. 关闭错误。

TL; DR:如果没有测试人员,则需要一些。如果您确实有一些,那么他们就不是在“尽自己的本分”。


2

汤姆·德马科:

...我的早期度量标准书 ...引用最多的一句话是第一句话:“您无法控制无法衡量的内容。” 这行包含一个真实的事实,但是我对它的使用越来越感到不适。引言(乃至书名)中的隐含含义是,控制是任何软件项目的重要方面,也许是最重要的。但事实并非如此。

...您越关注控制,您越有可能在致力于交付相对较小价值的项目中工作。

在我看来,比如何控制软件项目更为重要的问题是,为什么我们在地球上进行的项目如此之多,却能提供如此边际的价值?

软件工程:一个时代已经过去了吗?


这不是很明显吗?去赚钱。肮脏的性感钱。
maple_shaft

1

“然后为该单个错误修复程序创建一个分支,”

无需为单个错误修复创建分支。首先在bugzilla中创建错误。签出发行分支。进行修复。根据包含错误号的提交消息执行提交,该消息将更新错误并适当地将其标记为“已修复,需要测试”或“已修复,已测试,需要合并”,具体取决于提交消息中编写的文本关键字。错误数据库是对所有更改以及更改原因的理想跟踪机制。可以从错误数据库运行报告以提取此信息。


1

我认为大部分过程都是自动化的,因此在开始处理错误之前,虚拟机和分支的创建(包括编译代码,设置调试器等)都已为您完成。

对于所有的错误修复,值得描述的是您做了什么以及应该如何测试。我发现只写文字会遇到问题,因为它使我思考风险等问题。

因此,我认为该过程可能有点“过头”,但真正的问题是缺少支持该过程的自定义自动化工具。


0

伙计,您的思维过程是正确的,因为您所描述的完全是卑鄙的,是对软件中错误情况的真实证明。不过,这是个好消息,外面有那么多公司本着真正的精神实践敏捷。我工作的公司就是这样的一家。这些日子很多,这真是个好消息。

当您感觉到工作场所确实不对劲时,您可以做两件事-可以影响积极的变化,或者离开那个地方并加入一个更好的地方。

CVS或任何配置管理系统都不错。不幸的是,在没有真正了解其用途的情况下,它的使用方式在整个组织的@@ $中造成了一定的痛苦。

要快速了解敏捷的真正含义,请仔细阅读Venkata Subramaniam撰写的《敏捷开发人员的实践》一书。它用易于理解的语言写得很好。

祝您好运!

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.