生产者和消费者

生产者和消费者
文章图片
生产者和消费者 在学习操作系统的时候,大家可能学习过生产者消费者问题,下面这个网址已经讲的非常好。

http://dwz.cn/3rBztC
我们今天不谈这个问题,谈谈生产者和消费者。
某种角度来说,阅读可以理解为消费活动,写作可以理解为生产活动。
在一个以阅读为主要活动的社群中,入群门槛相对会比较低,但是活跃度同样会很高。比如大家对同一本书或者一部(一系列)电影有感,就会聚在一起消费这个事物,互动和增进影响,属于偏消费类的活动。
而在一个以写作为主的社群中,入群门槛就高了,需要成员具备一定的创作能力,一旦这类社群运作的好,就会产生巨大的影响,社群的活跃度会非常之高,持续时间会非常久,成员通过贡献智慧和输出,不仅有个人有成就感,整个社群也就成为了集体IP。
事实上现在的品牌公司就是一个集体IP,比如Google成为了全球重技术企业的强IP,华为成为中国重技术企业的强IP。
表面上看阅读和写作分得比较开,实际上现实中并没有分的那么开,在阅读的同时也会进行笔记和感想,评论,翻译等等二次创作;同样生产者和消费者并不能分的那么开,我参与了生产手机,同样也在使用手机;我拍了电影,同样再看(消费)大家对电影评论和二次创作(剪辑混搭、方言版本等等)。
在IT项目里面,也有所谓的生产者和消费者,一般认为开发者(我不喜欢程序员和码农这2个词)就是生产者,测试者就是消费者。的确,现状来说,国内的公司基本上就是这样的, 开发者只管写代码,就像完成作业一样,写完就拉倒了;测试者只管测试,就像老师检查作业一样,只管按部就班的检查,不负责辅导和修正。此种情况下项目就会变得崩溃。
举个例子,项目进行中,开发进度延期了2天,而测试进度已经被阻塞了,这个时候测试者就闲着了,有人会说你可以安排其他事情给测试者,但我想说项目的事情按照计划当前阶段能做的都已经做了(按照测试的固定职责所在或者说是作为消费者的定位),延期就是延期,直接造成了“人月神话”的破灭。
《国富论》的前三章都在谈分工,以下引用王福重《写给中国人的经济学》中一段:
提高劳动生产力,也就是提高劳动者的熟练程度、技巧和判断力。要提高劳动生产力,首先要进行分工。
斯密举了很多例子,说明分工是如何提高生产力的,最生动的当属“制作扣针”。一个劳动者……纵使竭力工作,也许一天也制造不出一枚扣针,要做二十枚,当然是绝不可能了。但按照现在经营的方法……一个人抽铁线,一个人拉直,一个人切截,一个人削尖线的一端,一个人磨另一端,以便装上圆头。要做圆头,就需要有两三种不同的操作……这样,扣针的制造分为十八种操作……像这样一个小工厂的工人,虽很穷困,他们的必要机械设备,虽很简陋,但他们如果勤勉努力,一日也能成针十二磅。以每磅中等针有四千枚计,这十个工人每日就可成针四万八千枚,即一人一日可成针四千八百枚。
的确,在工业化社会里面,需要不停地分工,不断地分工,就像麦当劳一样,全部流程化,标准化,分工不断细化和傻瓜化,就可以提高生产率。
IT项目领域,情况却不太一样,就以IT项目的测试来说,曾有人提出来了测试设计和测试执行是不是可以分开为不同的人来做,我认为这种分工并不妥当,这类型的工作本身就是脑力劳动,并不能分开来两个人,一旦分开,只会加大沟通成本,最终整体效率反而是下降的。
回到刚才的例子,开发者和测试者真的要分的那么开吗?或者换句话说,生产者和消费者真的要分的那么开吗?
开发者在代码开发完成的时候,是否可以自己做自我代码审查,开发之间的交叉单元测试,集成测试,乃至于系统测试和β验证呢?而不是死死的圈定你只能写写代码,作为一个纯粹的生产者。测试者是否可以在进度阻塞的时候,进入一起代码审查,单元测试,测试工具开发等等生产者活动呢?而不是把自己圈定为消费者,永远都是点点点的“评论家”。
更进一步,所谓的开发者/测试者,是不是能演化为全栈工程师,不仅仅会后端,还会前端,不只会数据库,还会编解码。。。。。。即既是消费者,也是生产者。
对于涉及脑力的活动,私以为不能分工那么细,我们既是消费者,也是生产者,就这样。
我的微信公众号:瓦力工坊
【生产者和消费者】个人微信号:jhhuawei

    推荐阅读