编程从来都是一项集体工作,在我们程序员的代码世界里,几乎所有的事情都是依靠协作来完成的。像我们每天都在使用的微信、支付宝、淘宝等应用,也无一例外都是由那些优秀的开发团队创造出来的。尽管,随着专业领域的不断融合,程序员将会变得更加全面,也更全能 ,但你仍不应该成为一匹独狼,因为这将会给你带来那些技术之外的问题。
不切实际的梦想
我经常听一些程序员谈论他们的梦想(大多是创业想法),特别是那些能够独立创造的程序员,都会有做一个APP或是一个网站进行创业的念头。但不得不说,大部分程序员的梦想可能都不切实际。虽然,为之努力也能得到收获,但你同样也可能因此失去宝贵的时间、金钱和其他更好的机会。
如果说一个人的梦想成功的机会只有5%的话,那么如果这个梦想同时是两个人或更多人的,那相信它成功的机会就可以达到20%甚至更高。人们总是会认为自己的梦想或计划非常完美,无懈可击,但事实却证明他们往往想得太过理想而偏离了实际,而旁人却更容易站在相对客观的角度来帮助你作出评判和分析。因此,当你有一个好的想法时,先别急着动手,也别直接去找那些风投顾问,而是试着把它分享给你希望一起合作的伙伴,如果你的梦想也同样能打动他们,那相信你离成功便又进了一步。
尝试做所有的事情
我曾在《全栈工程师如何快速构建一个Web应用》一文中讲述了自己是如何独立完成一个Web应用开发的,如果把它看作一个产品的话,我几乎承担了产品品经理、UI设计师、架构师、开发工程师、运维在内的所有角色。但做出一个产品仅仅只是一个开始,如果想要获得持续的发展,那你必须能够根据市场的反应,不断优化你的产品,你还需要进行市场推广,争取获得外部的投资,及时响应用户的反馈等等,而这些事情,你不可能全都一个人做,因为这会让你的精力过于分散,而无法做好任何一件事情。
你需要能够抓住那些核心的东西,并把其他任务委派出去。如果你身边有一群志同道合的小伙伴相助,那无疑是最好的,即使没有,你也可以利用码市、猪八戒、猿团等众包平台将这些任务以外包的方式委派出去。对于分配出去的这些任务,你仍然需要做好进度的管理和质量的把控,这可能会带来一段时间痛苦的磨合期,但这却能把你从那些次要的任务中解放出来,去专注于那些更有价值的事情。
无法获得帮助和意见
一个人即使懂得再多,也不可能知道所有的事情,即使能力再强,也不可能永远都做出正确的决定和选择。同伴的重要性有时并不在于和你一起去完成那些技术工作,而恰恰在于在一些关键的时间点上给予意见和建议。每一个项目和产品都是相当脆弱的,最近几年我们看到多少曾经叱咤一时的互联网产品因种种问题走向末路。任何一个错误的选择,都有可能将整个产品引入歧途,最终导致失败的命运。你需要建立一个更加开放的团队,让每个人都愿意提供他们的意见和建议,你也需要真诚地对待和处理它们,这是你走向成功的关键。
失去工作的节奏
一个人工作的最大困难在于难于把控工作的节奏,在项目初期,出于热情你会斗志满满,经常熬夜干到天明,而随着项目不断的进行,热情会随着困难的增多或迟迟看不到成功的希望而慢慢消减,你可能会因此懈怠,好几天不做任何事情。也有很多时候,你只是一心想着把你的产品尽快做出来,而忽略了那些优先级更高的事情,比如市场和用户调研。另一方面,有太多的事情可能会干扰你的工作,其他的工作、生活中的琐事、新的兴趣爱好等等。构建一个项目或产品就像是一场长跑,按照一定的节奏,持续地进行非常重要。如果你不是一个人,而是和一个团队或一群伙伴一起工作的话,就不得不去制定工作计划,安排任务的先后依赖与优先级,虽然看起来你会因为需要做一些额外的工作而使自身的效率降低了,但团队中的每个人都会能在更稳定的节奏中工作,虽然这种节奏也会因项目阶段的不同发生波动,但整体上却是相对平稳的,这会给每个人一些压力,但这也使每个人都能更有持续性地产出,并给整个团队带来力量。
疏于归纳整理
归纳与整理的能力因人而异,但相较于团队而言,那些个人开发者更容易忽视日常工作中的归纳和整理。我们都曾使用过那些类似于TODO List的软件或APP,来安排自己的任务,制定优先级等等,但在大多数情况下,这些工具最终可能都成为了摆设而没有起到提升工作效率的作用。因为除非你有很强的自制力,否则这些工具很难对你产生约束作用。而在团队中,情况就不太一样了,为了协作的需要,我们会引入一些管理工具去制定任务,安排优先级,归纳文档,这些会给所有人带来约束,因为,如果我们需要让其他人理解自己的工作(包括文档、设计、代码),就必须更加自觉地做好归纳与整理。在团队中,每个人都会尝试去把事情做好,否则便会引来其他团队成员对自己能力的质疑,而这是每个程序员都不愿看到的。
更容易放弃
程序员单枪匹马地去做一个产品或项目,更容易半途而废。这当然与他们一开始的想法可能就不切实际有关 ,但另一方面,在遇到困难时,放弃的代价相对更低,也是重要的原因之一(只有你为之付出了努力,而你完全不需要对他人负责)。我看到很多创业公司,虽然举步维艰,从旁观者的角度来看似乎毫无希望,但每个人都仍然坚持着他们的梦想,不轻言放弃,因为他们需要为共同的努力负责,也为每一个团队成员负责,很多创业者都有着这样的情怀,而他们中的确也有人因为坚持而最终赢得了成功。
“不要轻易放弃你的梦想”,这看似有些老生常谈,但这对很多人来说却是发自内心的声音。我曾参与过一些孵化项目的预审,看到过那些创业者满怀激情地演示自己产品的原型,可惜这些原型中的大部分都没有变成最终的产品,而那些能够坚持下来的创业者会对我说“他们感到最兴奋的事情,便是坐在公交车或地铁上,看着身边的人拿出手机打开自己所开发应用的那一刻”,虽然这可能并没有为他们带来直接的财富,但相信这一刻的成就感和满足感却已经远远超过了金钱。
每次换工作,你都会认识一批新的同事,很快你们也会成为不错的朋友。但真正的伙伴却很难得到,他们总是在你最需要的时候,为你提供意见和建议,能直言不讳地指出你的问题,在遇到困难时不离不弃,更会为你们共同的目标而倾尽全力。优秀的程序员绝不孤单,他们的身边不乏志同道合者,这也是他们能够变得愈发出色的原因吧。