您能不能具体说说设计怎么为项目服务。
没有设计也能实现需求,所以大家都觉得KISS不错。

至于规避风险的必要性,我是在很多书上都看到过。
有一本书叫《死亡之旅》是具体说这件事的。、
您可以参考一下。

看你怎么理解设计。总不能什么都不想,直接开始编码吧。不理解你所说没有设计也可以实现需求。可以具体讲一下吗?

设计的目的是为了把需求转化为技术实现,通过分解工作包来估算项目时间和成本,从而建立baseline。这个过程中也会产生更多的风险预测和应对方案。

没有这个过程,你如何确定项目需要什么资源,多少成本,多长时间可以完成?

风险管理对项目管理是非常必要的。其目的是尽可能保证项目按开始确定的baseline进行。如果大的需求变化造成baseline变更,则后续按新的baseline进行。

简单讲,项目管理就是,follow plan, control change, no surprise.

我看明白了,您一直说的都是过程控制的东西。
而我一直想讨论OOD。
不是一个东西,
呵呵 :)

即使KISS,应该也是有设计步骤地。不管OO还是过程设计,根本还是为了满足需求。我还是不明白KISS没有设计也能实现需求是什么意思。
KISS应该只是说简化需求和系统,没说不做设计啊。

不是说是OOD了吗? 只是针对面向对象的设计。

没错,KISS也没说只能用OOD,或者不能用OOD啊。KISS只是一种需求和系统实现的概念或者方法,和OOD这种技术实现没关系吧。
不明白为什么要把KISS和OOD放在一起讨论。

网上有篇叫Why C++的文章把OO和KISS对立的。
而且我也看过基于KISS做的开源项目,基本就是C写的

看了一下这篇文章。我认为作者并没有完全对立OO和KISS。只是讲某些情况下C++的复杂特性不能保持KISS。

KISS是个原则,没有人打算毫无意义的把系统搞复杂。但是什么是简单,要看具体情况。

举个简单例子,程序要连接数据库,最简单的方式就是在源码中硬编码数据库连接串。相对于从配置文件读取要简单不少。但是这种简单真的是好的吗?

>>>不是说是OOD了吗? 只是针对面向对象的设计。
OOD不是“针对面向对象的设计”,而是“基于OO思想”“针对需求”做代码结构设计,为下一步OOP做准备。
“针对面向对象的设计”,就变成为OO而OO了。
做OOD,必须围绕需求来做。
>>>网上有篇叫Why C++的文章把OO和KISS对立的。
usejava说得对,KISS只是一个提倡简约的原则。
KISS怎么会和OO对立呢?KISS只会和有意无意把OO搞复杂的人相冲突。
>>>而且我也看过基于KISS做的开源项目,基本就是C写的
该用C写的东西,就用C写,这个我理解就是真正的KISS。但是,适合用C++、Java的场合,如果用C写,那就是追求复杂化。C不代表简约。该用C就用C,该用C++就用C++,该用Java就用Java,该用FORTRAN就用FORTRAN,这就是KISS思想。我的理解。

我对KISS确实不了解,实际上我了解的KISS仅限于我上面说的那些。

以后我会注意,回复文章会尽量严谨的。

我是完全不了解KISS。只是就简约原则说说自己的一般看法:
1)的意思是:软件就是服务,因此开发必须围绕需求来做。
2)的意思是:OO在某种意义上来说,只要用得适度,又做得好,应该也是一种简约。
3)的意思是:以工具来说,选用合适的,才可能是简约的。某些场合,Java比C简约。譬如说一个极端的场合:Java可以轻轻松松地实现代码可迁移,但如果让C来做,那是千难万难。