很多项目开始的时候,或者很多特性在规划的时候,第一步就是需求分析。需求分析可谓是整个软件开发中至关重要的一步。然而有些时候,开发团队都弄不清楚这个特性到底是干什么,他们自然不知道,因为他们不是用户。真正的需求只有用户才知道。不过,你不一定有大量的时间与用户沟通,用户也不一定能把他真正的想法完美而无歧义地表达出来。书中针对这种需求不明的开发,提出了两种不同的解决方案:原型和曳光弹。
原型开发有一个非常重要的前提:任何所写的代码,将一定会被遗弃。如果不满足这个前提,请不要使用这种方法,否则会发生很严重的事情。若是一个原型,则可以考虑更加简单的方法来实现它,如c++或c#,亦或者使用黑板将想法画出来,这样不仅看到最基本的效果,还能减少开发量。而且在原型中不用担心效率问题。只需谨记:代码将被遗弃,所以尽情的在上面实验各种想法吧。
一旦原型找到合适的方向后,我们就可以将原型抛弃而开始曳光弹开发了,这也是这两种开发模式最本质的区别。在曳光弹开发时,搭建一个足矣支撑项目的框架,然后慢慢开始进入正常产品开发迭代,最后完成一定的功能,交付使用,最后再根据用户的反馈意见修改,直至最终成型并交付。
在项目中,自动化的好处是不言而喻的,在项目中。我们利用它来帮助我们跟进开发进度并尽早发现问题。书中使用了无处不在来描述自动化这件事,甚至提出了一切都要自动化的概念。然而自动化并不是上流的表现,因为有些事你可能永远不会重复,所以,一定要注重实效。同样的一件事,不要让自己做三遍,如果做多了,就把它自动化吧,因为它极有可能是你要经常重复的工作。
原文:http://www.cnblogs.com/houtaoliang/p/4469741.html