没有拯救程序员的美丽

古老的智慧说:“为了您被接受,将要被解雇,”。我被叫到这家工厂审计会计,信息系统,代码,流程等。但他们首先说自己的程序员不好。标准,工厂,糟糕。



工厂创造了美丽的产品。而且他本人很帅。真的很漂亮-显然,那些绘制产品的设计师参与了建筑物的设计。工作坊中也有美丽与和谐。清洁,有序,应有尽有。最重要的是,整个生产过程都实现了精美的自动化。



每一批产品都随附一个路线图,该路线图包含所有必要的技术操作,在何处获得,在何处发送产品等。在一张纸上-仅条形码,最少文本。



工人只需拿出一批零件,用扫描仪进行拣选-系统便立即知道他已经开始加工了。很多小尺寸文件,只处理了一个班次,因此在反映释放或操作通过的事实时,无需拆分它。工人完成整个批次的处理后,只需使用扫描仪进行拣选,系统便知道批次已准备就绪,可以转到下一个人。系统还知道零件在处理之间卡住-结束时有一个峰值,但下一个操作的开始没有峰值。



美丽与和谐。任何领导者的梦想。完全透明-您始终知道在何时何地。因此,领导者兴致勃勃地进行游览。他喜欢事物的运作方式。很好的自动化。



我瞥见工人在电话上打来很多可疑的话。当我们接近某人时,站起来看着一台漂亮的机器或灵巧的手-这个人微笑着工作。我们一离开,他就开始打电话给某人。



好吧,你永远不会知道,也许他们在这里很友善。还是这样的企业文化-您可以全天尝试。我没有时间-我需要弄清楚骨架在壁橱中的位置。无论如何,会计部门都坐在某个地方,敲打着大量文件,以解决问题,技术操作和半成品的运输。



我们去会计部门-不,那里很安静。他们坐下来喝茶。在计算机屏幕上-当然是信息系统-但当然不是问题的输入。定期会计工作。继续。



计划调度部门(PDO)可能出现堵塞。我们去那里。好吧,这不是一个障碍-只是很多工作。经理诚实地说,目前的瓶颈是为每个批次和订单打印大量的路线图。考虑到它们的体积小,可以获得很多纸张-实际上,这花费了PDO员工的大部分时间。



那么骨骼在哪里?不可能那么好。好吧,让我们和经理一起,我要和程序员谈谈。他肯定知道。



程序员坐在狭窄的壁橱里,一边打电话,一边疯狂地在系统中做某事。我等了几分钟,直到一窍不通,设法迅速认识彼此-程序员的电话再次响起。我又在等在下一个暂停中,我插入一个问题“我可以看看你的系统如何工作吗?” -再打一次。同时,所有已知颜色(绿色,蓝色,紫色)的即时通讯程序在编程器的计算机上闪烁。



程序员继续交谈,打开系统并在附近的计算机上向我发送消息。他开车回去,打开聊天,看图片,然后迅速将某些东西带入系统。



无事可做,我看看系统。我生成报告-有关销售,产出,成本,定价等。所有的报告都很漂亮。可用设置的最小值-仅美观的开关,例如按区域,产品组等。单击并享受美丽的景色-一切都整齐,舔,、梳理。



对于内部使用,通常不会在公司系统中完成此操作。在那里,该方法在技术上是先进的-存在某种通用形式,并且仅提取数据的请求在报告之间是不同的。然后,引擎根据需要对其进行旋转,并为用户提供设置-分组,过滤器,排序,着色等。像在BI系统中一样,只是更简单,没有多维数据集和其他优点。奇怪,您需要查看代码。



我看一下代码-我的脚在嘴里... 4-5千行代码生成一个发布报告。为了进行比较-通常50-100行就足够了,它们都是查询文本,其余的由平台提供。奇怪的是,他在这4到5千行中在做什么?



我看一下过程和函数的名称-还是有点荒谬。它们是人类可读的,并且已经很清楚地命名了-该死,他对每个单元都有自己的程序。一个显示车间1的数据,第二个显示车间2的数据,依此类推。



不,好的,它发生了-利润申报会更糟。我看了看课本。我们看到多少差异?一-请求参数更改。代替商店1-商店2。

共享更多模块-相同的垃圾。千吨的代码可以绘制精美的报告。尽管现在报告看起来不再那么漂亮。我期待午餐。午餐是神圣的。



还有。程序员恰好在12-00结束对话,将电话扔到显示器下面,站起来然后离开办公室。我跟随他。幸运的是,他非常生气,已经准备好讲话了。



好吧,事实证明。我在一家工厂担任程序员,没碰过任何人。他慢慢地帮助用户,添加了一些东西,维护了系统和服务器,重新填充了墨盒。一般。



但是企业负责人随后出国出差-他看到人们的生活。国外人民生活得很美。



他带来了美丽自动化的想法。我问程序员,他回答-有点废话。弱。负责人发现承包商,他们适合-那么为什么不适合?关键的功能要求是,商店中的每个人都应该拿起扫描仪,而不要动手操作计算机,并且在实施现实生活中的事件之后,发布,操作和动作的数据会立即出现。



说到做到。几个月的痛苦折磨,车间里充斥着条码扫描器的魔力高峰,就像一个真正的大型超市。经理被召集交出工作,亲自看到自动化的美丽。他们带来了一台大电视,并带来了一个标牌,可以实时显示车间的生活。



我们砰砰地通过了它。工人正在用扫描仪进行拣选-结果立即显示在电视上。第二高峰,第三高峰,第十高峰-商店和电视上的生活开始沸腾。经理很高兴。我签署了法案,承包商离开了。



程序员留下了。他试着告诉经理,所做的只是温和地说,不是需要的。顺序添加条形码读数的简单平板并不反映该问题。这只是一个实验室工作,它以键盘模式连接扫描仪-读取数据,写入表格,解密条形码-它很长,很复杂,里面缝着订单,批号,技术操作,术语等。



但是领导者不想听这种胡说八道。车间里很美。您永远都不知道这个村子书呆子背着什么。可能没有回滚就离开了-正确地为他服务。



好了,然后对于程序员来说,地狱开始了。他连续工作了几天,以确保系统至少能够正常运行。自己判断:较早,虽然经过一个地方,有一个延迟,但是发布数据到达了需要它们的地方。有带有释放数字的标准纸张,这些纸张已从车间拖到会计部门或PDO,并且这些数字被驱动到系统中,内部周转正常,余额正确,并且考虑了成本。



现在只有一张带有扫描和解码条形码的平板。好了,从生产计划中形成和打印这些条形码的机制。输出数据根本没有到达需要它们的系统部分,无论是在管理部门还是在会计营业额中。一块平板站在旁边,简单地累积了条形码扫描的数据。



首先,程序员在会计部门的压力下,将这张平板印刷在膝盖上-大致以商店以前手写纸的形式出现。我每天为他们打印这张表一次,将bukhs驱动到系统中。



然后,我痛苦不堪,编写了将数据从平面表传输到普通系统凭证的代码。似乎有可能让自己平静下来,但事实并非如此。经理再次去了一家企业,得知可以从系统中收到漂亮的报告。



像大多数工厂一样,以前,经理的报告是由特殊人员(会计师,经济学家,金融家等)编写的。他们从系统中获取数据,并将其转化为简洁,易懂,美观的表格。现在,经理希望直接从系统接收报告。



地狱的第二个圈子开始了。当然,截止日期非常紧迫-程序员已经被认为是a头破坏性的进步,没有人会让他放松。这就是成千上万的复制粘贴代码出现的方式,这些代码匆匆写在膝盖上。以及数十个精美的报告。



地狱的第三圈来自没有人料想的地方-来自带有条形码的平板桌上。它可以很好地展示,但是在实际工作中,无论是在技术上还是在使用过程中,所有设计错误都很快得到了解决。



首先,写入表的性能急剧下降。然后读取速度下降。块开始了。我们发现承包商签发的请求在扫描仪的每个高峰执行了1.5千次(!)次。某些地方有无限递归,在万分之一步被意志的努力打断了,并以“ //我们将限制示威”的评论表示。不知何故,许多用户突然发现了手动编辑数据的权利,其中有些人并没有利用这些权利。通过技术地图中的行号而不是技术操作号来控制操作顺序(这些操作是表中的不同列,并且不必重合),结果人们收到了提示性消息“操作顺序已中断”。使用纸张路由表,没有固定到商店的交付和更改控制的事实,导致不断的扫描失败-系统中的数据更改愚蠢地更改了条形码的组成,并且不再识别打印的条形码。等等。



自然,程序员将这些信息带到了经理那里,而且不止一次。自然,没有人听他的话。因此,程序员进入了最严重的时间麻烦。



一方面,有必要确保系统的当前运行。这体现在经常坐在电话上和手动编辑平板中的数据-这是平庸的,这样商店就不会迷路。另一方面,只要有时间,我就慢慢尝试修复所有问题。该工厂全天候工作,但是在晚上和晚上它们以某种方式减少了呼叫,因此程序员利用这段时间来修复美观的自动化系统。



但是,领导者积累的负面因素将不再被遏制。他们想解雇程序员。实际上,这是我依赖审计的原因之一。



几天后,当报告准备就绪时,我花了两个小时说服他们不要解雇程序员。我建议提拔他,最后开始听他所说的话。留出时间进行重构和整理。我们设法说服程序员,至少在今天不应该将程序员赶出去。我们同意再举行几次会议,包括。 -与程序员。那是我的错误。



第二天,大家聚在一起。各行各业的高管开始列出程序员无法解决的问题。他自信地回答了所有问题。通常,提问者对此保持沉默,用同样的短语“我已经完成了,我告诉了你”。我在大多数情况下都确认程序员在说真话。



为了进行更有效的论证,他们拿出一台计算机,开始实时显示“程序员无法以任何方式做的事情”。我们发现几乎所有“我们在正常工作中都缺乏的东西”。一切都足够美丽。至少有效。



在会议结束时,没有人了解其目的。程序员满怀希望地来到了工作场所。领导人也分散了,剩下的几个主要领导人。我坐下来等待判决-当然,是希望程序员有第二次机会并遵循我的建议(“您拥有所需的一切,只是不知道如何使用它”)。



但是判决结果却有所不同-“你知道,他必须被解雇。”为了什么?!当然,因为系统很漂亮。但这是行不通的。程序员应对此负责。



PS程序员很高兴他被解雇了。他没有离开自己,因为他对工厂中发生的事情感到负责,甚至承担过高的责任。一周后,他在一个新地方工作,薪水更高。



All Articles