软件做得太好,反而没人用?DBA的尴尬,开发者的选择。 我干过几年数据库运维,从一开始就觉得SQL Server挺神的。装个软件点几下鼠标,基本就能跑,备份还原啥的傻瓜式操作。一开始我还觉得特别爽,觉得自己捡了个大便宜,干得活真轻松。 可干了一段时间就发现不对劲了。越轻松的时候,老板越觉得我其实就是在混日子。偶尔有同事问为什么要装那么多硬盘,我说要高可用,老板说那不就一个备份么,你天天也没事干啊。这感觉特别憋屈,明明懂一堆东西,结果因为软件太稳定了,根本用不上。 后来我试着去折腾MySQL,头一回装环境就折腾了两天,各种配置、编译、调参数。但是把东西跑起来的那一刻,心里那叫一个爽。我觉得这才是技术人该有的样子,有挑战,有成就感,不是光装个软件就完事了。 MySQL的社区氛围也特别对我胃口。大家在网上讨论怎么优化SQL,怎么调InnoDB的缓冲池大小,怎么搞分库分表。这些问题都是实打实的,解决一个就能显得自己技术牛。而SQL Server群里大家讨论最多的,基本是怎么装,或者版本兼容性之类入门的东西。 我还去过一个公司,那儿的程序员都用MySQL。我问他们为啥不用SQL Server,他们跟我说,SQL Server那个图形工具虽然好用,但总感觉像是在“玩”软件,不是在做技术。在命令行里敲代码,看着数据一行行出来,那才叫干活。我听完觉得挺有道理,虽然我之前用的也是图形界面。 PostgreSQL后来火起来也不是没道理。它的功能和SQL Server差不多强,但它是开源的。这意味着你可以看到源码,可以自己改着玩,可以跟社区一起提意见。这种参与感让我觉得,自己不是一个“使用者”,而是整个技术生态的一分子。这种感觉,SQL Server给不了。 所以当我自己也开始做开发平台的时候,我开始犯愁了。我想把开发门槛降得很低,让大家点点鼠标就能出东西。但我又担心,会不会像我当年用SQL Server一样,东西做得太好了,反而让程序员觉得自己没存在感,没意思? 我想了很久,慢慢明白了一个事。程序员不是不喜欢“简单”,而是不喜欢“没得玩”。如果你把一个软件做到全是答案,没有挑战,那肯定没人愿意碰。但如果你给的是工具,让他们自己拿着去搭房子,砌墙,装修,那他们就会很兴奋。 我的平台应该让人能快速出东西,但同时要留出足够的空间,让他们去琢磨业务逻辑,去优化自己的算法,甚至去扩展平台的功能。简单是基础门槛,但不是天花板。让平庸的人能用,让牛人玩得爽,这应该是做平台的一个方向。 我现在觉得,技术的最终目的不是让你累死,而是让你能安心干自己想干的事。降低门槛不是让开发者变笨,而是让他们能把心思花在真正有价值的地方。想通了这一点,我就不怎么纠结这个事了。 特别