学习了邹欣老师的现代软件工程《构建之法》的四象限法之后,受益匪浅。对于怎么区分需求的不同功能,以及怎么处理不同类型的功能提供了非常重要方法。

一、四象限的方法如下:

      杀手功能(Core):要把用户从竞争对手那里吸引过来,团队自己的产品要有一个差异化的焦点,在这个焦点上,我们的团队能做得比别人好10倍,高一个数量级(安迪·葛洛夫把它叫做10X原则)。这种功能又叫杀手功能。

      外围功能(Context):相对于杀手功能的其他功能。产品也许有很多功能,但是应该只有一两个功能是杀手级的。

      必要需求(Mission Critical):竞争对手和用户决定的一些此类产品必须要满足的需求,不能满足这些需求,产品基本没有什么市场。

      辅助需求(Enabling):产品的辅助性功能。

      这四种划分结合起来,就得到了功能分析的四个象限。

 

二、为什么要使用四象限法:

      1、一个公司可能有多种软件产品和服务,它们各有不同的战略意义。一个软件或服务也由很多功能组成,它们有机地结合起来,才能解决用户的问题,产生效益。

      2、一个团队的资源毕竟有限,四象限法能保证我们的投入得到较大的回报,用四个象限来划分产品功能的特点,可以更好地、理性地了解我们产品的核心价值,从而帮助我们决定应该把资源放在什么地方。

      3、四象限法能让软件团队清楚地看到自己感兴趣的功能处于什么地位,有了这些分析,我们就可以决定怎么处理不同类型的功能。重要的是,不要把资源平摊到所有象限中,而是倾斜到可以产生差异化和体现独特用户价值的地方。

 

三、具体的处理方法:

      对于产品的不同类型功能,我们有不同处理方法,具体来说,有下面五种办法:

      1、维持——以最低成本维持此功能。

      2、抵消——快速地达到“足够好”、“和竞争对手差不多”。

      3、优化——花大力气做到并保持行业最好。

      4、差异化——产生同类产品比不了的功能或优势(我有人无的优势,或者一个数量级以上的优势)。

      5、不做——砍掉一个功能也是一个办法,我们并不一定要做所有的功能。

       这样的方法也可以用在分析产品线的各个产品上。

 

我们用四象限法进行功能分类的github的地址:https://github.com/weilaizhe666/shizu/blob/master/SoftwareAnalysis.md