63

对技术负债,技术和业务权衡和重构,重写,升级的一些看法

 5 years ago
source link: http://www.jianshu.com/p/ff9a7d87a2c4?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

技术负债

在技术圈,有一个债务术语叫【技术负债】或者【技术债务】。【技术负载】带来的显性和隐性成本是非常高的。

显性的是技术不给力, 运营/产品/商业团队都很难受,而这种难受实际带来的损失会比想象的大,甚至对整个公司的前景都产生了影响。

第二个是隐性的,隐性的是指 虽然你随便找个团队都能把某件事情(系统)做出来,但是这个事情(系统)埋的雷太多,它只是跑起来了,但其实不能持续的跑。不能持续的跑体现在那些方面呢?

  1. 无穷无尽的看起来很小的bug
  2. 很多业务诉求甚至表示无法实现
  3. 研发有60%以上的精力专注在人肉运维该系统。
  4. 新的业务功能完全是在写新的代码,老的代码不敢护着不愿意去动。

最后的结果是去跟老板说,对不起,这个系统我们实在run不下去了,只能重构甚至重写了。

这部分属于隐性成本,它的实际开销也是远远大于管理者想象的。大家可以想像下,是个程序员有八个人肉运维该系统的运转,另外两个对接业务,但是效率极其低下,这其实是在浪费你的程序员的成本,同时各个业务部门也都不满意,很难受,严重影响了业务的发展。

所以,怎么避免产生技术债务呢?怎么解决技术债务呢? 在讲这个之前,我们再提一个【历史名题】,业务和技术到底谁优先。

业务和技术到底谁优先?

大部分和技术有关的公司都会说业务优先,业务优先没有错,没有业务你公司就死了,还谈何技术优先。

但是执行中最后都会歪了,变成跛子,导致技术没办法把业务优先支撑起来,业务优先也就成了空话。

另外当大家提业务优先的时候,骨子里想的是什么? 想的就是你做技术的就是一堆死板的工匠,比如你是个木工,你好好做好木工就行了。但实际上工程师不同于此,没有工程师文化,工程就做不好,但是大家适应不了这种变化,你一个工匠跟我提文化,这不是搞笑呢么,几千年的治人思想 ,没办法。

值得一提的是,中国也开始慢慢过了有个Idea找个团队做出来就行的阶段了 ,美帝现在的阶段肯定是我们未来的阶段,基础技术美帝始终都有在大量投入 技术驱动也很明显。这就意味着,随着商业模式慢慢都被做透了,大家拼的就是工程了和服务质量了。

所以关于业务和技术到底谁先行,最后的总结的就一句话:

战术上业务先行,战略上持续关注技术

重构,重写和升级

重构,重写,升级适用于编码,也适用于架构,也适用于各种支持业务的系统。有一个好的工程师文化的团队,重构,重写,升级应该是在日常中完成的,并且是自驱的。

做到这一点,有什么好处呢?因为这可以避免和减少你的【技术负债】。

怎么做到这一点呢?战术上业务先行,战略上持续关注技术

很好,我们把这三者之间很好的串联起来了。万事皆有关联,靠的近的事容易有因果。所以他们三者也逃不出这个因果关系。

能做到日常的重构,重写,升级,是非常需要勇气和主动责任的精神,也考研团队技术实力,而这也是工程师文化的一种。我们来看看为什么是需要勇气的,主动和实力的。

  1. 重构,重写,升级意味着新的bug和坑,主动迎上去需要勇气。
  2. 重构,重写,升级短期不是必须的,主动迎上去需要主动和责任。
  3. 重构,重写,升级不是处故障的借口,而是让故障更少,业务更快的的主动出击行为,这就需要实力。

当然,要减少技术负债,提升业务效能需要做的事情太多太多,但是重构,重写,和升级真的能起很大的作用。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK