关于问题定义和解决的感想

来源:互联网 发布:mac如何进入屏保模式 编辑:程序博客网 时间:2024/05/20 23:56

1 问题的来源也许在自己身上,换过来指责自己,即时只有1秒钟。(礼貌对待他人)

2 问题不仅仅是问题,有时候也牵扯到利益分配。(“技术出现了问题,从来都不单纯是技术导致的问题”。

3 问题的提出者是否并不想解决这个问题。

4 问题经过不同受影响人的描述,可能涉及多个解决方案。(问题对不同受影响者的本质是不一样的)

5 当前问题的解决方案总会造成新的问题。

6 问题的来源有缺陷,应重新修改设计或思路。(难题是人造的,造成问题的本体有缺陷,或不必须的先决条件, 更换解决问题的方向或领域,(购买软件或设计软件,优化算法或更新硬件))

7 问题是否可以外包。

8 你永远不能肯定你有一个正确的定义,但永远不要放弃需求它的努力。

9 问题是否有被忽视的定义(对应异常处理)

10  问题的语境描述是否限定你定义问题的思路。


(参考《你的灯亮着么》 《代码大全》  王垠 “解决问题”与“消灭问题”》    ,  robbin《对.net系统架构改造的一点经验和教训 》

附:问题描述的语境描述。

文字游戏通常比那些不受欢迎的解决方案要来的便宜。如果每个文字游戏相当于一支箭,那么我们需要用满满的一大袋箭才有可能击中正确的问题定义。下面列出我们曾经玩
过的一些别的游戏,每一个都曾经为一些人挽救了100万美元或者更多的损失――文字游
戏黄金列表: 
1.改变重读的方式(就像上面那个例子里那样)。 
2.把positives(正的)变成negatives(负的),反之亦然。 
3.把MAY(可能)变成MUST(必须),把MUST变成MAY。 
4.把OR(或者)变成EITHER OR(不是...而是...),反之亦然。 
5.把AND(和)变成OR(或),反之亦然。 
6.选择一个有明确定义的术语,然后在该术语出现的每一个地方用它明确的定义替
换它。 
7.遇到每个ETC.,AND SO FORTH,AND SO ON等等的时候,为这个列表加入
再添上一个明确的例子。(用这个例子试试。) 
8.找出那些说服性的词和短语,例如OBVIOUSLY(显然地),THEREFORE(因此),
CLEARLY(无疑地),或者CERTAINLY(当然)。把这些词或者短语替换成它本
来指代的那个观点。 
9.将一个句子或一段话的内容画成一副画。 
10.  将文字用公式来表达。 
11.  将公式用文字来表达。 
12.  试试将一幅画的内容用文字表示出来。 

13.  将YOU(你,你们)替换成WE(咱们,我们)。 
14.  将WE替换成YOU。 
15.  将WE和YOU替换成BOTH PARTIES(双方)。 
16.  将A(一个)替换成THE(这个)并将THE替换成A。 
17.  将SOME(一些,某些,某个)替换成EVERY(每一个)。 
18.  将EVERY替换成SOME。 
19.  将ALWAYS(总是)替换成SOMETIMES(有时候)。 
20.  将SOMETIMES替换成NEVER(从不)。


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

怎样解决问题 《how to slove it》 《在代码大全里》


l .理解问题,你必须理解要解决的问题 问题是什么?条件是什么?数据是什么?有可能满足条件吗?已知条件足以确定未知吗?已知条件是否不够充分?是否矛盾7 是否冗余? 
画一个图,引入恰当的符号,把条件的不同部分分解开。 

2 .设计一个方案。

找到已知数据和未知之间的联系。如果不能找出直接联系的话,你可能不得不考虑一些辅助问题,但最后,你应该找到一个解决方案。以前你是否遇到过这个问题?或者是见过与它稍有不同的问题?是否知道与其相关的问题?是否知道在这个问题中有用的定理? 看着未知!努力回忆起一个有着相同或类似未知的问题。这里有一个与此相关的你以前解决过的问题,你能利用它吗?是能利用它的结论还是能用它的方法?是否该引入辅助要素以使这个问题可以再用? 能否重新表述一下问题?能用另外一种方式表述它吗?返回到定义。 如果你无法解决这个问题, 可以先试着解决一些别的问题, 是否能想象出一个容易解决的相关问题;一个广义些的问题或是一个更特殊的问题?一个相似的问题呢?能否解决问题的一部分呢?仅保留一部分条件, 忽略其余条件;未知可以被决定到什么程度?会发生什么变化?能否从数据中推导出一些有用的东西?能否找出适于确定未知的其余数据?能否改变数据或未知?同时改变两者呢?这样做能否使新的未知和新的数据更接近些? 是否使用了全部的数据?使用全部条件了吗?是否考虑了这个问题的全部必要条件? 

3 .执行你的计划。 
执行你解决问题的计划,同时检查每一步工作。你是否可以认定每一步都是正确的?你能证明这点吗? 
4 .回顾,检查一下答案。 
你能检查一下答案吗?能检查一个论证吗?能否用另外一种方法推导出答案?能否一眼就看出答案? 能否在其它问题中再利用本题的答案或者结论? 

原创粉丝点击