手头一堆的需求,哪个做哪个不做,哪个优先做,哪个可以延后呢?一类是业务方的需求,业务方很着急;一类是技术债需求,我们想把系统做完善。都有道理,怎么排优先级,怎么取舍呢?
为什么要取舍?因为资源总是不足的,需求总是做不完的。作为一个技术团队的负责人,让团队有很好的节奏,从一个成功到另一个成功,至关重要。让每个成员有成就感是对负责人最大的考验。
那如何选择呢?先来看第一个原则,以终为始。
什么是以终为始?就是想一下,如果这个项目已经完成了,满足了所有需求点,产品也用上了,然后能带来什么好处呢?咱们都是商人,无利不起早,说说看。往往这么一看,哪个重要哪个不重要就一目了然。需求是永远做不完的,但是要有先后。
技术债类的需求往往更需要这么想一想。人类对美好事物的追求真是无穷无尽的。尤其是有追求的工程师,总希望自己的系统尽善尽美。但是,做到这些都需要成本的。我觉得拥有成本意识是一个合格架构师必须具备的。想一想,这次的技术优化做完了,能有啥好处呢?如果只是解决了偶尔出现的问题,每次临时来解决,工作量也不大,那是不是可以延后呢?
从最终的目标来考虑,优先级就一目了然。
另外,我们要注意,如果真的要调整项目的优先级,一定要做好提前的沟通工作。以终为始,必须要和需求方达成共识才可以。要跟需求方说清楚,为什么要延缓去实现,我们当下又可以通过哪些方式临时来解决。要有同理心,不要总站在自己的角度,这个很重要。
不光项目开始阶段,我们要以终为始,项目的过程中也依然需要。比如设计阶段,各种实现方式如何权衡,往往需要我们回到要解决的问题本身,权衡利弊,才不会迷失了方向。比如项目结束阶段,要衡量是否达成了最初的目标,得失之间需要总结,不忘初心方得始终。