软件开发过程中,一个牛人工作量可以顶十个人是一种什么样的体验
在软件开发领域, 经常看到某些牛魔王,比如说轮子哥,一个人可以干十个人的活,感觉这太不可思议了。 这已经彻底超出了我所能理解的范围。
牛人牛气冲天的地方是指 开发速度极快还是 技术攻关能力极强? 牛人是怎么做到 在同等时间内把十个人的活都干完的? 这是一种什么样的体验?
秉持严谨,严肃,客观的态度,特采用量化的方法来思考
衡量维度:
1 常规单位工作量下的开发消耗时间 (常规开发速度)
2 技术攻关(资料严重匮乏,缺乏可参考案例,前沿技术,曲高和寡的前提条件)时所消耗的开发时间 (钻研创新力)
牛人通常的参数指标是怎么样的?
我来说个low的。比方说有个任务要处理100组不同的数据。
然后来了个low程序员A,他花了100小时写了100个处理流程。
然后又来了一个高级点的程序员B,他花了15小时写了个处理引擎,然后花了5小时写了100组处理逻辑。
然后又来了个顶级程序员C,他花20小时写了个自适应数据处理引擎,极少人工干预自动处理所有数据。
你说A和B我们好比较,一个人顶五个人嘛。但是B和C怎么比?
而且万一后来项目扩展了,变成处理1000组数据,三者又要怎么比?
用单纯的时间指标是不能比较人的水平的。同样,挣钱速度也不行,代码量也不行。
严格来讲,应该是说一个牛人在一个软件项目,特别是互联网项目中输出给团队的总价值可以顶普通人十倍、百倍。
细究起来大概有以下情况:
1, 软件工程中特别讲究复用。大牛们一方面做得多手熟,另一方面不停在积累自己的可复用知识(轮子),长久下来差距就拉开了。不但自己干活稳准狠,还能给团队输出轮子。
2, 软件研发过程中有各种未知的问题会系统性或者突然性冒出来。这种时候牛人和普通人的差异可能就很明显。
一个团队轰轰轰做了一个软件,临近发布了遇到个问题死活解决不了,这种例子并不鲜见。
3, 又或者一堆普普通通的功能中间夹杂着一个高科技的模块,没有牛人就是搞不定。
也可能是一个项目中出现个模块团队都不会,需要现学。普通人等学完都老了。
4, 还有一种牛,自己功夫了得,顺带善为师。
而恰好有一些人,兼具以上或更多牛法。
如果是狭义按功能点评估,甚者是代码量来评估,或者说大家搬一样的低级砖的话,牛人有可能比普通人搬得还少些。
牛人写代码未必快,牛人之所以牛,是能解决棘手的问题,核心的问题。有些问题你就是拿枪逼着菜鸟做他也是做不出来的。牛不在于新人一天搬一块砖,牛人搬十块!牛人也最多一天搬两块。但是他可以设计图纸,解决工程难题!
能干的人,知道怎么选择产出最大的工作,知道怎么选择产出最大的实现方式,所以单位时间产出的最多。
盖茨、谷歌的布林、脸书的扎克,其实都只写了最初不多的代码。可他们实现的价值,和普通码农比,岂止是10倍!
你非要让他们和猿们干一样的活,也许人聪明,手上熟练,速度能快一点。有没有10倍,不好说;肯定不是成千上万倍了。
通常来说,牛人做的事情,10个普通程序员一起讨论,也根本做不出来。牛人负责搭框架,普通人往里面放砖头就行了。
我研究了牛人的框架很久,还是只能做到把砖头放的更快一点的程度……
一个真实的故事
某程序猿B 奋战两天修一个BUG,一直没有搞定,然后某程序猿A(其他部门)无聊中飘过来,看了15秒,说了一句:我前几年前遇到过一个很类似的问题,你去试试 XXXXXXXXXXXXX
15分钟后,问题解决
你也许感兴趣的:
- 14 个 Python 高级功能
- 使用 Rust 真的能让软件更安全吗?
- 我是如何破解房东的锅炉的
- Python 的新 t-strings
- OpenAI 为什么要收购 Windsurf?
- 两年的 Rust 使用感悟
- 微软:Node.js 越来越多地被用于恶意软件分发和数据窃取
- 为什么没有像 BitTorrent 这样的 P2P 流媒体协议?
- Python 异步编程的 9 个级别
- Oracle:为后量子密码学做准备
你对本文的反应是: