技术预研(Technical Pre-Research, TPR)是指在立项之后到开发工作完成之前的时间内,对项目将采用的关键技术提前学习和研究,以便尽可能早地发现并解决开发过程中将会遇到的技术障碍。

了解需求

这块是预研的第一步,我们需要向需求方了解要实现什么功能?实现什么效果?给用户带来什么好处?能不能真正的解决问题?会不会产生什么不良的影响?这个需求的难点是什么?为这个需求要付出多大的代价(开发成本、沟通成本、机器、钱)?这个需求的性价比如何?这个需求是否违法?可能在这一步中,我们就可以把一些价值不大或者违法的需求扼杀在摇篮里。

充分理解需求

一切技术都是为了产品服务的,没有产品技术一文不值。我们要真正地从产品角度去思考,去理解产品经理到底要做什么;我们还要从用户的角度出发,去思考用户需要什么样的功能。这两点都可以帮助我们充分地理解需求。

需求的分解

在充分了解技术背景后,和产品沟通,了解可能的产品形态。需要尽量多的列举出不同的产品形态,然后将需求进行小粒度的分解。

预研的顺序

对需求分解成一个个小的技术点,并对每个技术点的相互依赖关系进行排序,预研应该先研究被依赖的技术点,而不是最难的技术点。当然,工程师可以凭借自己的经验来判断某技术点是否需要预研。所以说经验越多的工程师,预研的速度越快。

对于依赖方的验证

我们对自己的技术能有一个整体的把握,能有一定的信心。但是对依赖方(第三方)的技术就不一定了,所以我们要对依赖方做一个充分的技术验证,这块也是非常的重要。我们需要尽早的发现问题,如果需要依赖方去修改,这块的周期是非常长的,如果依赖方不配合修改,整个方案可能因此不通,很可能导致整个方案失败。具体的验证方式可以参照下面“技术方案的验证”。

多种技术方案的比较

对于一个功能,可能存在着多种实现方式,所以说我们需要将不同方案的优缺点弄清楚,并形成文档,并从工程师的角度给出自己推荐的方式,并说明自己的理由。对于不同方案的优缺点,一定要保持一种客观的态度,尽量通过多个维度去比较各种方案,比如:实现的难易程度、对性能的影响、对三方的依赖、资金成本、兼容性问题、是否存在体验上的偏差、稳定性。

技术方案的验证

我们要尽早暴露技术方案的问题,一些致命的问题可能会导致整个方案失败。
我们可以从以下方面去找到问题:

基本功能的坑
稳定性问题
性能的坑
压力测试
不同机型/平台/硬件的坑
兼容性问题
依赖方/耦合程度问题


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

Handler解析 上一篇
Android监控Java层联网动作 下一篇