格鲁夫给经理人的第一课---第一章读书笔记

带着这个三个思考,我们去学点东西,试着改变一下。

你必须按预定的时间,可接受的品质以及可能的最低成本,依据顾客的需求制造及运送产品。

书中指出的生产步骤正好和我们的一样。

制造:可以和我们的开发联系在一起,我们在实际开发中,无论是一个项目的整体开发,还是把项目拆分,作为模块开发,或者是更小的拆分,都可以作为制造的部分。

组装:制造完成以后,需要组装来完成更大的个体,项目。例如模块化开发的情况下,很多的模块组合成一个完整的项目。

测试:对模块,项目,整体做测试以保证我们最后生产的品质。

三个生产步骤,以保证生产出的产品符合我们的需求,保证其质量。顾我们可以在实际开发中,在小的层面也去应用这些。比如我们拆分更小的需求,以此为需求,做一次生产三步走。

我们的程序开发,小到一个接口的运行,一个函数的运行,如果都通过单元测试,那么程序的每一步生产,都是合格的,在组装,组合成为完整的程序时,更有利于后面的测试,保证我们程序的品质。

复杂化的推导是基于产能的要求,在最简单需求的时候,我们用最简单的最实际最低成本的方式来实现。而当我们的产能要求更高,之前的方案无法满足,我们需要更多的人力,设备,机器,等资源来满足新的产能要求。

找出最佳策略的本质是 成本控制

凡是能以最低成本达到理想的运送速度以及品质的,便是最佳方案。

例如实际项目开发中,假设我们要提高我们的开发速度,两个方案可以实现,一个是招更多的人,另一个人提高个人产能。而实际情况是人力的成本很高。我们当然更加倾向于提高个人产能。这又涉及到背后培训,个人的自我驱动,公司文化,等等。

这就好比,我们有一块地,现在里面已经种了很多菜,有豆角,尖椒,青椒,彩椒,现在我们想吃麻椒了,最简单的办法就是从别人的地里挖一颗进来。

这两种方案实际上我们都有,我们既招人,也在自己培养,培训就是施肥,个人的驱动就是自己长大,而公司的文化就是阳光,水,空气,我们都在这个环境里,所有的一切都息息相关。

为了最后我们的生产产品的品质,我们要对我们生产出来的产品做测试。

而如果我们只在产品生产完成交付之前做一次验货操作,那个时候已经太迟了,如果这个产品发生问题,如果这一系列产品发生问题。

所以为了防止这种现象我们要在生产的每一个步骤中都加上测试的步骤。

例如开发模块的测试,后端接口的单元测试,数据的质控测试,每一个步骤产品的问题都应该及时找到解决,这样在组合完成最终的产品时,才能有品质保证。

所有的生产流程都有一个***通的特性,就是原料在流程中会变的越来越有价值。

如果不能及早的发现问题,那么它造成的损失就会越来越大,如果一个bug没有在开发阶段解决,而是在测试阶段,那么它耽误的就是整体流程,而如果它在线上暴雷,那么造成的损失就远远的超出了这个bug所在的模块,甚至是毁灭性的。

所以为了避免这种问题,我们要及早的发现问题所在,这种问题它不仅仅是做测试,也有在我们实际开发做单元测试,都是为了更早的发现问题,同时也是跟加全面的对我们的产品做品质保证。

毕竟在产品验收阶段,它的测试就只能是大体的,而无法保证所有的情况。

从后往前推。

甚至很多问题都不在是bug的问题,而是软件设计的问题,组件设计的问题,接口设计的问题,表结构设计的问题,而他们都基于背后产品逻辑的理解,甚至更往前推,背后产品逻辑,背后需求的理解,需求的真正产生,需求是否真的有价值,产品是否符合用户预期,全都息息相关。

NGVFBB

我们不仅要辛勤工作,还得懂得如何工作

假设我们现在人力充足,设备OK,兵强马壮,那么我们目标应该是什么呢?

当然是为了钱,那么怎么才能赚到钱?

当然这是以早餐店为出发点。

为了达成上面的目标,我们应该关注哪些目标呢?也就是你要关注今天的店运营的怎么样?

第一个:你想知道今天的销售怎么样,卖的如何?直接涉及的利润。

第二个:你会想知道原料存货,是不是够用,不够就要买,够了就先取消今天的订单。

第三个:你想知道设备的情况,是不是发生了故障。

第四个:人力资源,如果有两个人请假了,应该怎么办?

第五个:人力资源品质指标,服务生如果在送餐的时候把顾客得罪了,那不是得不偿失。

我们依据于上面的指标,来判断店的运营情况,来及时做调整,但是有一些指标的调整又可能影响实际的运营,例如,你发现一个员工品质不好,经常得罪顾客而屡教不改,但是店里只有他一个员工的时候,开出它就会影响另外一个指标,人力资源。

结合我们开发的例子:

我们开发一个程序,需要关注的指标:

在实际中我们需要同时关注这三个指标,而不能因为一个指标另外的指标全然不顾,为了单元测试了推迟交付时间,肯定得不偿失。通过权衡,找到最佳方案。

而为了交付时间,完全部估计产品品质,更加不对。

我们要设定好这三个指标,才能达成我们最终的追求。

有品质的产品,顾客满意,以及产品的利润等。

任何管理都需要评估。有效的评估策略应该是评估产出,而不是产出之前的生产活动。

所有的生产流程都可以用这个理论来概括。

你投入了什么到黑箱子,然后产出了什么?

你有一个早餐店,你投入了人力,原料,店铺,产出的早餐。

你要开发一个程序,你投入了人力,精力,时间,产出了程序。

现在我们已经有了这个神器,我们就知道我们追求的是什么?

我通过黑箱子产出了一个产品,那么理所当然我想让我们的产品品质好,卖相好,利润高,受顾客满意。

为了让我们的黑箱子更好的生产我们的产品,我么需要给他设定一些目标来来更好的运行。

因为你知道这个有可能坏事,或者你经历过之前的坑,这次就可以提出以避免这些事儿。例如:

等等这些。我们都可以在程序开发之前,提前规避掉这些问题。

例如我们要在6月份实现项目上线,那么我们就需要在10号15号20号开洞,来洞察进度如何,如果发现在15号的时候,进度还没有一半,甚至还在起步阶段,那么就知道这个月目标完成不了了。

项目的进度是线性开发,它不可能一蹴而就,一步到位的完成。

这个道理同样可以应用生活中,如果我这个月设定看一本书,而我知道10号还没有看完三分之一一,甚至还没有看,那么大概率,这本书就看不完了。

不太可能出现你最后两天来完成一个月目标的事儿。

和上面的指标相辅相成,你设定的一个月的目标如果能在10号的时候完成三分之一,说明进度正常,如果能完成一半,说明大概率可以完成,如果只完成了四分之一,那么进度紧张,大概率完成不了。

把每一个计划,预测的时间和实际完成的时间做一个表格,来检测哪里出了问题,造成的这种延期。

控制产出应该叫把控产出。

工厂的生产模式有两种,一种是订单生产,来一个订单我们做一单,如果一单需要做4个月,那么客户就需要等四个月,另一种是计划生产,我们自己预期未来的订单,提前生产,同时也在找顾客,生产完成以后立刻把产生销售给顾客。

项目开发也是这样,如果是做第三方项目,那么就是订单生产,因为之前我们并不知道要做成什么样?需要客户提需求。

而如果是做自己的项目或者是自己的项目卖给第三方,那么就是计划生产了。我们需要自己去拟定需求,需求池,拟定要做的事儿,计划未来要做的项目,完成哪些。制定排期。

一个项目的开发,模块的开发,项目的上线时间的拟定,如果一旦定下,就要全力完成,这是最基本的。

不过实际开发中,并不能完全按照理想的状态来计算,总会有其他的突出状况,我们并不能对业务或流程精确的预测,因为我们需要在这个系统中假如一些 弹性空间 。来保证一定的冗余。

我们可以用重复印证表来检验我们的计划生产,通过它我们可以找到计划生产也就是排期和实际开发中 的时间差异,找出问题的原因。

对未来做预测,我们可以调整管理工作,是一个提高产能的重要方法。我们知道了一件事儿的大体标准,我们就知道了如果我们要在这个时间点完成是否需要添加人力。或者减少人力的投入。

这个有一个公式:

产能 = 黑箱中不同部门的产出/此项产出所需的人力

两个办法来提高产能:

关于第二点:其实就是提高员工的个人能力。

一个活动有比较高的杠杆率,即表示同样的投入之下,这项活动比杠杆率低着有更高的产出。

一个人如果比另一个人在同一时间内做更多的事儿,那么他就杠杆率高,如果一个人能做别人做不了的事儿,那么他的杠杆率高。

而管理的工作就是提高杠杆率,这个概念在下一章会详细讲解。