我和你一样,遇到问题总想找到通用的解决方法,或者归类到自己的通用知识体系里。所以每时每刻都在不自觉的做一些总结。以下这些是我觉着比较实用的提高效率的一些方法,不仅仅适用于产品设计需求分析和管理

1. 模糊到具体

将模糊的,General 的想法或者需求描述具体化,落到书面上。

有时候对于产品有很多想法,但是很多难以落地。原因就是这些想法过于模糊,没有具体化到如何实施,大部分会不了了之。如果把问题具体化,就很容易实施和落地。

比如以前我一天内想完成很多事情,但是到了晚上发现虽然做了很多,但是具体什么任务也没完成。后来,我一天的开始把需要做的事情列出来,晚上再回顾,效率提高不少,不会突然转去做列表以外的事情。

2. 以大化小

将大问题分解成小的问题,将大的需求分解成小的需求。这也是分治的思想。

复杂而且难以下手的问题,其实因为这个问题太大,没有细小到可解决的层面上。将大的问题分解成小的侧面,或者小的步骤,就容易逐步解决。

3. 隔离忧虑

往往某些需求和设计相互冲突和制约,trade off,这时候需要暂时屏蔽其他侧面的影响。

如果同时考虑问题的多个侧面,往往会过于复杂。相互冲突的优点和缺点,无法量化,也难以取舍。这时候最好先只关注问题的某一个侧面。

4. 黑盒抽象

Wiki 解释这是一种驾驭复杂系统的有效方法。暂时屏蔽和抽象细节。

人同时能暂时加载到脑子里的东西是非常有限的,从黑盒的角度用一些基础部件非常必要。这时候需要对黑盒的功能不怀疑。这是团队协作的基础,完成复杂,庞大项目的基础。

这也是我认为程序员最应该具备的素质之一。

5. 选择最简单解决方式

当有多种解决方案的时候,选择最简单的那一个。

用最简单,最熟悉的技术解决问题。

6. Fallback

对于有风险的方案,需要 Fallback 方案支持。有了 Fallback 的思想,也可以尝试和使用一些非常新的技术。比如 Google CDN 上的 jQuery 库,国内可能访问不了,但是对于国外用户来说它却非常好用,如下 Fallback 的例子。又比如 Websocket 只有比较新的浏览器才能支持,也可以这样有选择性的支持。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.8.2.min.js"><\/script>')</script>

7. Management Style

强烈推荐 Linux Kernel 的 ManagementStyle 一文章。

推荐这些相关文章

订阅这个博客:

关注我的微博:

关注我的推特: