创业公司或新项目如何做技术选型
一个创业公司或者新项目如何做技术选型?个人认为一定要记住这个根本:新项目最先要解决的就是原型核心业务落地验证商业模式。
具体实践中,应当遵循以下原则和避免类似常见错误
原则
- 匹配业务场景,快速实现核心业务
创业项目最大的特点就是商业模式未经验证,存在极高的失败风险。从技术角度来看,只有选择最简单快捷的技术栈,在极短时间内实现核心业务原型,让业务在实践中验证商业模式---成功,则更容易在有竞争者的时候走在前列;失败,所花费的成本更低,有效降低损失。
因此,在选择技术栈的时候,最重要的就是要想明白,技术的选择是为了让业务原型更快速的上线运营验证商业模式,其他一切都要让位于这个原则。
在具体实践上来讲,有些业务一开始就有高并发高负载等特点,那就选择相应的语言或者技术栈,在这个基础上选择更容易执行的技术;有些业务初期可能用户量并不多,更重要的是如何完美实现业务,那就应该选择开发效率高的技术栈。
- 尽可能少的引入和业务原型实现无关的技术
使用当前业界流行的架构牛逼的技术,对技术人员来讲,有利于成长和跳槽时的身价;但是流行的架构不一定适应当前的业务。微服务架构可以说是现在以至于未来很多项目的主要架构形态,但是对于一个创业项目来说,选择微服务架构,要处理很多和业务无关的东西,网关,注册中心,配置中心,链路监控,分布式事务,容器化等等,这些本身就有一定复杂性,但是和业务没有多大关系,做好了,并不能对初期业务实现运营产生多少帮助,做不好,影响业务实现不说,可能技术人员陷入其中不能自拔,给自己挖了大坑。
- 开源的最新的稳定的
根据业务选定技术栈之后,尽量拥抱开源的东西。选择最新稳定版本。
- 团队最擅长和可以驾驭的
有些技术可能比当前团队擅长的在业界里面有更好的热度,但是还是根据团队的实际情况,只要不是特别必要的情况下,使用团队更擅长的技术。
常见错误
- 业务不明确的情况下确定技术架构,追风火热架构
技术人员一定要了解产品业务原型,要有冷静的头脑,高大上的架构非常好,但是不一定能帮助业务更快实现,也不一定适应我们组织架构。技术人员本质的工作就是实现执行,技术架构不要脱离业务
- 热衷于内部造轮子排斥开源实现
这点无需多言,内部实现固然更贴近本身业务,但是很多时候,创业项目初期还不到需要自己实现轮子的地步,选择开源的东西,实在不行,在开源的基础上去扩展。
- 保守不愿意使用最新稳定技术
举个例子,当前 PHP 的稳定版本已经是7.2了,有些团队新项目的时候,可能适应了原先的版本,选择 PHP 5的各个版本,个人认为这就太保守了
一些题外话
技术人员走的路,其实不外乎如下:
1 成为技术专家,能解决大部分解决不了的技术难题。这个需要天分+坚持,能走下去的人比例比较低
2 熟悉业务,成为需求实现更好的执行者。知道如何分解业务需求,知道怎么样更高效快速的实现需求。其实这个并不简单,技术人员能帮助公司项目更好的发展,价值并不小。这也是面试的时候,应该非常看重的地方,技术能力并不等于工作能力。
随着 go ,java 的 spring cloud 的兴起,这些静态类型语言的开发速度效率现在也相当了得了;PHP 所自豪的短平快,优势不在那么明显。尤其现在是移动互联网时代,服务端输出的是接口,在选择语言的时候,效率差距不大的时候,很多人可能会选择性能高的。对于 PHPER 来说,不幸于幸运并存,幸运的是可能在业务初期,很多公司还是会选择 PHP 来快速实现业务;不幸的是,一旦业务壮大,PHP的用武之地就很小了。而现在幸运可能已经不在,PHPER 如果想要有更进一步发展,千万不能局限于 PHP了,睁眼看世界。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。