你们好,我是光源。git
近日一直在思考一个问题,到底怎样作才算是完整且优秀得完成一次技术调研。github
我曾经以实习生的身份作过糟糕或让老大称赞的技术调研;也以正式员工的身份独自负责过技术调研工做(意味着不用向谁汇报,直接进项目);也以导师身份分配技术调研工做给新人,看着几个新人经历着我以前的遭遇,他中有完成得漂漂亮亮的,也有完成得不够好的;最后也旁观过优秀的同事作过技术调研。微信
教技术的书籍不少,可是教作事的书籍不多——即便有也不会教那么细。我曾因这类工做而彷徨、受挫,如今又看着新人彷徨、受挫,因而就有了想法尝试总结一个范式出来。markdown
所以下文会从我的的一些出发作一些总结和思考,与各位读者分享。固然做为追寻最佳实践的我而言,更欢迎能互相讨论以完善个人观点。因能力有限,若是有不妥或者补充的地方,还请联系我(微信公众号:guangyuan_coder),十分期待与你的交流。gitlab
除去本身发起的技术调研,其余技术调研都须要先了解需求。估计不少人看到这个就会心想,切,这个谁都知道啊。学习
是的,“了解需求”这是我的尽皆知且每一个人在技术调研前都会去作的一件事。但不夸张地说,在这个阶段栽跟头的人最多。优化
不少人,特别是新人,在这个阶段出问题的广泛缘由大概有如下几点:code
诸如此类。开发
解决方案也很简单,我们把问题一一解决。文档
首先是接到需求时,认真听对方讲,对对方所讲内容有疑惑的是能够在对方讲完后提问的。千万不要听的时候是懂非懂,想着待会私底下本身查(固然提问也要有技巧,这个本身琢磨去)。
而后假如不了解的东西太多(例如一上来就给新人分配一个陌生业务模块的任务,的确会一脸懵逼),又不想围着需求方各类打扰,彻底能够请教下熟悉相应模块的同事嘛。
最后,假如是复杂的需求,能够在作的过程当中,分步跟需求方确认,这个下文会展开。
这里举个例子:
一天,小明正热火朝天地写着代码,忽然肩膀被人一拍,回头一看老大正站在背后。
小明,这有个调研工做你去作一下?
没问题,具体是作什么呢?
是这样,咱们须要作一个 A 功能以支撑 B 模块,这块功能 iOS 端已经完成,能够与他们讨论下。
好的,没问题。
因而小明屁颠屁颠开始调研 A 功能是怎么实现,耗费了几天时间后,老大过来一看,诶,你这实现不是我想要的呀。
原来虽然小明选取的技术方案是业界知名的 A 功能实现方案,但却无法用到 B 模块上。并且需求隐含的意思是,既然 iOS 端已经实现了,需求的具体状况能够去询问 iOS 端对应开发。
在作好需求了解的前提下,调研自己会显得轻松点。
须要注意的是,进行调研时要合理安排时间,调研过程每每伴随着对新知的探索,很容易“沉迷于学习”。别忘了这是一项工做。(固然不仅是技术调研在平常工做中也同样,要学会合理安排时间,注意时间成本)
我的有个小技巧,按照如下步骤来作每每效果不错:
以上是关于“如何作”的。须要说明的是这只是个人我的习惯,你有本身的作事风格更好,不必强行一致。
还有一点须要注意的是,千万不要埋头苦干。
“沟通”应该是贯穿始终的一件事,在上文也提到了,对需求的理解误差可能会致使整个调研工做推倒重来。
那么该如何沟通,以及沟通些什么呢?
第一个问题,如何沟通。个人方案是,阶段性得去跟需求方或者跟有经验的同事讨论。好比一个技术调研有四个阶段,那每完成一个小阶段,就能够尝试去沟通一次(必须强调下,规则是死的人是活的。假如对方很忙的状况下,你偏要强行打扰对方去沟通;或者一个很小的技术调研你也按阶段屡次去沟通,就尴尬了)。
第二个问题,沟通的内容,我认为主要有如下几点:
作到以上几点,应该就差很少了。下面说说第三阶段,结果验收。
作完技术调研后,必定要有成果。
能够是调研以后发现“某个方案是最佳的”,也能够调研以后发现“尚无解决方案”,还能够调研后对需求自己提出质疑,但必定不能作着作着无声无息得作没了(不是全部技术调研都有需求方催促或跟进)。
反馈的展示形式根据需求来,有几种常见的展示形式:
我的比较推荐以文档的形式,大部分调研工做都很适合。
反馈的内容有几点是须要考虑写进去的:
大概是这些,总而言之,把一次技术调研当成一次绝佳的学习机会来作,那反馈的内容就不会显得空洞。
反馈的时机的话,在保证质量的前提下,尽可能主动、提早向需求方或组内其余同事提出。一方面是你的反馈对别人而言也是一个学习机会,另外一方面主动推送一件事也是一个优秀的表现。
以上是一点我的浅见,必需要说明的一点是,本人能力有限见识浅薄,上文的一些观点不必定正确。各位看官切不可太过信赖,仍是要有本身的思考为妙。
另外,写到最后,发现跟“技术调研”中的“技术”倒关联不大了,哈哈。我也就不纠结这个了。
最后,我写博客的目的就是但愿将我的的观点、观念摆出来让读者评价或吐槽,所以假如以为有不妥或者可优化的地方,还请不吝赐教。