技术的根本目的是为了持续交付。
纯粹的、没有任何利益目的的技术仅仅只是一种工具而已,它的最终目的是为了实现某种功能。但技术是有难度的,是需要耗费时间与精力去研究才能有成果的,如果无偿,很少有人能潜心研究技术。一旦技术商业化,它的最终目的就变成了对客户负责,抽象点说就是为了能给客户持续交付。而一家企业给客户持续交付的能力往往取决于该企业自身的技术实力与技术积累。我们完全可以说一家科技公司的技术积累或者说核心技术栈就代表着这家公司的 “脾气”。
科技公司在创业初期,对技术栈的确立是非常重要的,技术栈对创业最直接的影响就是开发软件的效率与开发的软件的可扩展性了。对于靠技术吃饭的创业公司来说,软件质量无疑是命门之一。在创业初期选择技术栈时应该格外注重它的 “可扩展性”。所谓可扩展性就是指这些技术在使用了一段时间以后发现不能满足需求,对它们进行升级或改造的可行程度。有一条万能选择法则:选那些如果在后面出了问题,能够靠花钱来解决而不是必须要投入人力才能解决的技术栈。
我们必须要牢记:任何优秀的人、事、物,都是通过进化而来的,技术栈也是如此。在创业初期,我们可能连需求与方向都还没完全确立,所以就很难设计出一种完美的技术栈结构出来。在极度不明确的环境中,选择我们最熟悉的,选择最简单的,选择能最快速地解决我们当下的需求的技术。千万不要浪费时间过多的时间去追求什么架构啊软件设计原则啊之类的。这些都是属于以后的事,以后的事就得以后再去考虑,操之过急和揠苗助长有什么区别?
科技行业经过了几十年的发展,现如今已经基本各个行业都涌现出了大量成熟的技术解决方案。我们在挑技术时应该时刻遵循 “站在巨人的肩膀上” 这一指导原则。在技术选择上优先选择热门的开源技术,其次是商业解决方案,最后对于那些实在是没有现成解决方案的、或者极其机密的技术才自己去实现。这一选择法是最最节省综合成本的选择方法。
关于写代码,对于能参与到创业事业中的程序员来说,大部分应该都是有比较丰富的开发经验的人了。因此关于写代码我这里只简单强调一下几个需要注意的地方:
- 命名
- 代码复用
- 单一职责
- 高内聚与低耦合
对于多人协同开发的软件项目,一定要采用 “持续集成” 的开发模式。所谓持续集成是指在项目初期就将各自负责的模块对接起来,并根据对接结果来修正后续的开发过程。千万不要各自埋头各自为政,在最后关头才考虑整合的事,这样的话,你一定会想死的。
虽然说决定科技创业是否成功的因素技术层面只占一小部分,但正是这无数个不可或缺的一小部分才能构成一个完整的大蛋糕啊。