大家都在说程序员后期的发展方向可以是架构师,也可以是产品经理。然后巴拉巴拉的列出了一些相应的书籍。可是这些都是后期慢慢发展的方向,距离成为产品经理或者架构师还有很长的路要走,那么如果更快速的进入角色呢?然后每个人又都提出了,要有架构师的思维,要有产品经理的思维。那么,什么又是产品经理的思维,什么又是架构师的思维呢?然而得到的答案,大多就是考虑用户该怎么使用啊,这个东西该如何去架构啊,想别人之所想啊,云云……。可是对于我们来说,道理都懂,可就是不知如何下手。
最近和别人合作做项目,好像有幸接触到了这到了这两个的核心思想,并且突然感觉他们的核心思想好像就是一个。那就是————选择。
什么是选择,选择不是让我们去选择,而且让对方去选择。
比如,以产品的思维,我们给出的选择,不是自己去选择使用哪个项目,使用哪个功能。而是交由用户去选择。我们给出用户的是选择,可以让用户有更多的选择,可以让用户有更好的选择,可以让用户选择更好的体验。这就是围绕产品的中心思想。
在说说架构师,架构师针对的是谁?针对的是下面的程序员,而他的核心思想也是选择,选择哪种架构方案,选择哪种设计,选择哪些人来进行去做。等等,这些,都是成为真正的架构师后所要做的选择,当然,这些都是成为架构师以后的选择,还轮不到我们来考虑。那么我们来考虑下如何快速的成为架构师呢?那么就是我们要给出选择,让架构师进行去选择,让领导去选择。比如,针对这个功能模块,我可以有方案A,方案B,方案C。而方案A带来的好处是什么,缺点是什么,方案B带来的好处是什么,缺点是什么。所以我们往往在考虑一个模块的时候,应该先想到的是多种方案,而不是唯一解决方案,好多人考虑程序实现的时候,都没有考虑,如果不行了,该怎么办。更有甚者,或者最低级的程序员,则是直接给出填空题,然后让领导,让架构师去填空。所以说,要想尽快的成为一个架构师,是去考虑这个东西可以选择哪些方案,慢慢的,后面我们就会懂得,改使用哪种方案比较好,该选择哪种方案。
所以我们发现,不管最后要成长为什么,最先学会的肯定是选择。然后我们上升到人生哲学上,然后我们发现,我们不管做什么,最喜欢的是选择,而不是去填空。比如考试,我们喜欢的是选择题。吃饭我们选择的是吃什么什么饭,而不是吃什么。在向领导或者客户展示的时候,是方案1,方案2,而不是问用户和另外要这个方案。甚至约会的时候,都是问选择去哪,而不是问,你想去哪。填空题永远是个无穷答案,而选择题,让用户很好的去选择哪些,少了很多的思考。
我在跟着我们的架构师进行做项目的时候,听到他说的一句感触很大的话,那就是“你不能在盖房子盖到一半的时候,发现不能满足,而把整个楼都给推翻重来”。他的意思是说,如果当前的不满足,我们应该去寻找替代的方案,而不是为了去满足这个需求,去改底层的东西。尽量满足于需求,而不去动低层的东西。
还有,我在跟着我们架构师做东西的时候,常常被问到了一句就是“你有什么方案?”。期初我还不是很理解,甚至认为,这个方案不应该你来出吗?不然要你这个架构师干啥?这个技术方案你不是应该早就知道了吗?为什么不发出来?后来跟他聊的时候,他才道出来缘由。如果每个我都给出技术方案,那么你永远学不会如何去思考,如何去架构。我的目的是,给出整体的架构,在具体的架构就需要你去考虑,我会在你想的技术方案偏离这个架构的时候,把你拉回来。甚至我有各种替代方案可以选择。
另外,我在跟另外一拨人考虑做项目的时候,听到他们最多的就是,“这个这个让用户去选不就好了,这个让用户填,用户知道你这都有什么啊”。所以,他们总能把握到用户的需求,甚至在产品设计上不合理的地方。并且提出自己的想法,这个如何去做比较合理。
原文链接:Dennis`s blog