以下是结合书本和工作得出的一些认知:
第一个系统是精简、其貌不扬的,主要用途是激发他人的想法和创造力,它成功的几率很小;
第二个系统是由专家来设计的,商业化、臃肿而缓慢,功能丰富,成功率最高;
第三个系统保留了第一和第二系统中最佳特性和被大家完全接受和理解的部分的结合。
Unix人员的开发步骤:
1、撰写一份简短的功能规格文件;
2、编写软件;
3、使用迭代的软件测试/重新编写代码的开发过程,直至完成全部功能;
4、如果有必要的话,在撰写一份详细的文档。
他们没有臃肿的解说文档,但他们用可见的demo来告诉需求方软件将来是这样的,我们是否需要做出调整?
通过demo的确认保证了他们不走弯路,并且激发了需求方的创造力,使最终产品更加完美。
他们采用迭代式的开发,不断的从需求方哪里获得反馈消息来修正软件的方向;他们采用组件式的开发,颗粒度精细到合理,所以不必担心他们的重构。
所有功能开发完成后再编写出程序员或者专业感兴趣的人能看懂的文档就可以了,文档不是给需求方看的,不需要那么臃肿。
其实所有的系统都可以用三个系统的理念去构建,任何系统都不可能一蹴而就,其实当你开始创建一个系统的时候,可以说你同时也在创建第三个系统。