行业动态

心之所向,素履以往,愿为客户创造最大的价值

软件开发过程管理被比作一只自由放养的猫。换句话说,你不可能真的做到这一点,但你可以尽力去做。换句话说,软件项目就像试图在NBA防守勒布朗·詹姆斯。你根本无法阻止他,你最多只能想约束他。


软件开发


软件项目的开发和管理是一门不准确的科学,这不是秘密。以下是我多年来学到的11个真理,它们帮助我理解我们管理软件开发项目的能力是多么有限。


1.估计总是错误的。


无论你花一个小时还是一年的时间来估计,估计结果都是错误的。事情就是这样。结果不一定是非常不同的。也许只是一点点错误,但一定是错的。


如果你看到一个错误的报告,认为修复它需要一个小时,几乎可以肯定的是,它不仅仅需要一个小时。这可能需要45分钟或3小时,但只需一小时,甚至一两分钟。现在,你可能会说,大约一个小时。这实际上是一个更好的估计,因为具体和准确的估计是错误的。


目前,对于一个可能只需要一个小时的短项目来说,这不是什么大问题。但是...


2.项目越大,你的估计就越不准确。


项目越大,估计就越不准确,尤其是在项目开始时。就像上面一个小时的估计一样,如果你把一个项目估计为一年,可能需要9个月或36个月。在某些情况下,它甚至可能需要五年时间。没有办法知道这个项目是什么时候开始的。


项目越大,未知就越多。通常,项目越大,参与的人就越多。换句话说,随着项目规模的增加,会有更多的变量和更多的事情发生,这是你根本无法预测的。所有这些事情都会增加项目的时间,你一开始就不会在计划中。原因很明显。你不知道它们会发生。


3.注意力和注意力是我们最珍贵、最稀缺的东西。


在构建软件时,完成一个项目所需要的最有价值的事情之一就是团队中的开发人员能够集中精力而不受干扰。


分心的事情越少,团队的效率就越高。就是这么简单。软件开发经理的主要职责之一是减少团队分心的次数和持续时间。


当软件开发人员不受干扰时,他们的工作效率很高。当他们被打断时(无论是因为会议、问题还是其他事情),他们很快就会失去工作效率。我们都知道心流,我们都知道进入和维持心流状态有多困难。流动的时间和黄金一样宝贵,应该得到保护。


4.霍夫斯塔德定律是真理。


这是霍夫施塔特定律:


即使你考虑到霍夫施塔特定律,项目的实际完成时间总是比预期的要长。-维基百科。


这与估计有关,但值得注意的是这句格言的美。你可以假装报告你的估计,因为你认为这可以为你赢得完成任务的时间。你可以添加额外的因素计划中制定未知和未知因素,并增加你的估计。考虑到实际时间会比你想象的要长,但最终,完成一个项目的时间仍然会比你想象的要长。


5.不能加快软件开发,只能限制软件开发的速度。


对于一些管理者来说,这个真理真的很难理解。软件需要尽可能长的时间。没有办法让它变得更快。你可以要求团队投入更多的时间。你可以挥舞鞭子,拿起棍子。你可以乞求、哄骗和乞求开发人员。你可以说,但是,这应该只需要三个月!但最终,从长远来看,你无法提高软件开发团队的速度。


如果你开始意识到霍夫斯塔德定律的正确性,并认为我可以让这些人工作得更快,那么你就错了。你所能做的就是减少他们的干扰,让他们独立工作,防止他们降低工作速度。这种差异很微妙,但很重要。


6.你只能在很短的时间内出现赤字。


同样,你可以要求团队投入更多的时间,熬夜,周末加班,以及各种鞭打手段,你可能会从中获得一些(非常)短期收益。


但是如果你试图让它正常,如果你试图让团队的发动机一直在RPM的红线上运行,它就会被烧坏。很快,你就会看到收下降。人们,就像赛车上的发动机一样,不能长时间承受太多的压力,否则就会失败。


7.大脑时间比屁股时间更重要。


没有什么比要求工作时间更能降低生产力了(例如,你的开发人员必须连续几个小时坐在椅子上)。你可以衡量你的工作时间,并感觉到一个指标可以真正显示人们的工作效率。但这是错误的。要求工作时间只会降低团队的士气,因为他们实际上想把时间花在思考上。


大脑时间是最重要的。你这样想:假设你是一名经理,对你来说最重要的是看到团队坐在电脑前工作。你在办公室里走来走去,看着开发人员坐在椅子上敲击键盘。这是一个繁荣的景象。


但是在那之后,你意外地发现一些开发人员只是坐在那里盯着屏幕看。他们只是坐在那里看着。到底怎么了!大约半小时,他们什么也没做!


但他们确实在工作。他们在想。他们正在用大脑思考解决一个非常困难的问题。也许他们甚至会站起来在办公室里走来走去。最后,他们坐下来,写下11行代码,并标记用户的故事。


它们符合你的屁股时间标准吗?不符合要求。他们是否想出了一个非常困难的解决方案?


屁股时间不能证明什么。大脑时间意味着一切。


8.硬件比开发人员便宜,而且要便宜得多。


开发人员实际上非常昂贵。要吸引顶尖人才,你必须支付有竞争力的薪水。他们每小时都不便宜。然而,许多公司并没有意识到开发人员在这一小时内具有很高的价值,也不愿意为团队提供硬件。


算了吧,电脑很贵!额外的内存会使硬件预算超标!


也许会超出预算,但那是因为你的预算有问题!


假设你每年向每个开发人员支付10万美元,或者每小时支付大约50美元。假设他们每天花一个小时等待编译器完成工作。然后,假设您可以为开发人员的机器添加一些内存和更快的处理器,并将等待编译时间减少到每天45分钟。所以一个开发人员每天可以节省15分钟。一年200天,总共50小时。每个开发人员每年可以节省2500美元,每小时50美元。如果一台更快的机器的增量成本是500美元,结果是什么?


让我们来计算一下。假如你有20个开发人员,那么使用更快的机器反而会为你节省4万美元的投资。口算应该能算出来。


这只是为了减少编译时间的等待。此外,做其他事情的速度也会更快。


如果你的预算不允许更快的机器,你需要调整你的预算。


9.你无法衡量软件开发人员的生产力。


我曾经写过一篇关于这个主题的文章。


可以说,以客观的方式衡量开发人员的生产力是徒劳的,根本不应该这样做。有些方法可以主观地衡量生产力,但这些方法需要经验和良好的判断。这些能力很难获得。一旦你拥有它们,它们可以给你带来非常宝贵的价值。


10.如果你没有读过《人物》,那么你就不是一个真正的软件开发经理。


在我看来,只有一本书可以教你如何管理软件开发人员:那就是《人物》(一定要选择第三版...)由Tomdemarco和TimothyLister编写。


这本书非常优秀,见解深刻,一针见血,组织清晰,毫无保留。这本书充满了管理软件项目和软件开发人员的智慧。这是一部永恒的经典之作。


快找来读一读!


11.质量是一种认知,而不是缺陷的数量。


这一点真的很难接受。


基本前提是:您的缺陷管理工具中的缺陷接近于零,但人们仍然可以认为您的软件有缺陷。您的缺陷管理工具可能有很多缺陷,但人们可能会认为您的软件像岩石一样坚固。缺陷管理工具中的缺陷数量与软件质量无关。


在这里,我不是说你不应该试图减少你的缺陷数量,而是恰恰相反。但最终,只有当你的客户认为它的质量足够高时,你的软件才能说它是高质量的,而你的缺陷数量可能无法解释这一点。真奇怪,不是吗?


当我们谈论这个话题时,高的缺陷数量意味着什么?如果你的代码库有10000行代码,高的定义是什么?那么500万行代码呢?谁说的?


结论


即使在最好的情况下,在短跑道上安全着陆一个软件项目也是一个具有挑战性和困难的命题。在这个过程中,再加上一些模棱两可和一些定时炸弹,成功是一个奇迹。


关键在于接受和理解这些模棱两可,并与之和谐相处,而不是与之对抗。接受这11个真理将有助于解决这个问题。




数字化升级,从现在开始!

为全球1000+客户成功搭建部署直播系统 助力企业高速增长

联系我们
客服 电话

咨询电话

电话客服在线时间工作日9:00-18:00

+86 153-2764-1456
微信
微信