让技术活下来
有这样一种观点,认为设计优良的框架,细致考虑并精巧实现的架构自然会被人们重复利用。事实上,即便是最精美,最优雅的框架,可复用性最高的系统,也必须满足下面的条件才可能被复用:
(1)大家知道它们存在
(2)大家知道如何使用它们
(3)大家认识到利用已有资源好过自己动手
如果大家找不到可复用的资源,或者不知道如何使用这些资源,人的天性就会发挥作用,他们就会自己动手实现。
“是金子总会发光”的想法在软件领域可能行不通,那些时髦的框架之所以被推到了浪潮之巅,是因为有人在营销它们,不得不承认商业规律已经融入到了技术方案中。当然,这并不总是好的,方案本身很容易绑架用户,吞噬着使用者的理智。在享有种种表面上便利的同时,我们似乎看到了它们伪善的一面,“买它吧,用它吧,它能给你带来快乐……”。
技术出身的工程师们,很容易对这件事嗤之以鼻,把全部精力放到了设计和架构本身,追求极致,但是忽略了技术究竟该怎样被别人使用。这些理想主义者的假设,会加速技术的灭亡,在残酷的市场竞争中被淘汰。人们并不会为优雅的设计买单,他们只相信价值和利润,活下去才是第一要务。这就是为什么很多企业追求技术推动业务、技术与实践结合的原因了,因为不得不这么做,毕竟,工具只有被使用才有价值。
Reuse is about people and education, not just architecture.
帮团队看清问题
我们可能感受到了,在项目实践中去推广一门技术,是多么的困难。让别人做一件事情,影响团队的决策,个体是多么的无力。每个成员都只会从自身角度出发,按个人收益进行决策,并不会顺利听从安排,也不容易受到别人的鼓动。虽然同事们不会因为使用这些工具而付钱,但是会付出时间,精力甚至牺牲尊严,这是产生抗拒心理的根本原因。一上来就推销我们的工具和技术,显然是不可行的。
反观自己,当我们发现了解决方案为之高兴的时候,很容易忽略我们的目的是为了解决问题。而且大多数问题,往往都不止有一个解决方案。当我们说服别人不希望人家固执己见之时,自己也要保持开放态度,如果自己偏爱的方案无法改变,就无法接受更好的方案。
因此,不要告诉人家他们现在的这个选择“不对”,不要就好像人家误入歧途一样跟人家谈话。因为我们是在尝试解决问题,而不是推行方案。我们需要做的是帮团队看清问题的本质,然后让适用的方案有机会出现。只有确定真的有问题,才能弄清楚是什么问题,以及这个问题是否值得解决。
不要力挽狂澜
无论是在生活还是工程实践中,人们很容易看到事物的现状,但是发展规律就不容易看清了。当人们对现状不满时,直觉上的反应就是要改变它,但是又忽略了导致现状的原因。因此,这样的改变通常是不能凑效的,并不会因为我们想要改变它,而产生改变,事物由其自身的发展趋势。
看到了事物发展的趋势,就能运用它,人们会不由自主的向着趋势行动,趋利避害和从众心理是本能反应。高明的领导者,甚至会营造趋势制造条件,引导人们行进的方向。先把河道疏通,再开闸放水,河水就会自然的流动。看不到趋势而强行改变,会遭遇很大的抵触,把精力用到了内耗中。力挽狂澜的个人英雄主义,往往并不凑效。顺水推舟顺势而为,才是明智之举。
那么如何营造这种趋势呢?我们需要做的是吸引,就好像鲜花吸引蜜蜂一样,营造人们对现状的不适感,让趋势对人们有利。同时,相信团队的能力,把责任委派出去,鼓励对趋势有利的行为。人们就会主动尝试,为解决这种不适向着趋势前进。不要限制人们的想象力,让计划持续可变,关注现状与目标之间的距离。