1. 开发周期不能完全依据客户需要而定
a) 有时候客户会很着急要一个系统,通常这时候他们不是考虑系统开发需要多长时间,而是他们什么时候需要什么时候就要开发出来
b) 这种很紧的项目,客户往往没有明确的需求,只是一个大概的想法
c) 在项目一开始可以谈条件,一旦接受了客户提出的开发周期,客户就会理直气壮地在他们认为不满意的时候提意见,所以最好的办法就是一开始评估好,不要等已经开始做了才对客户不满
2. 技术(尤其是新技术或未使用过的技术)一定要验证过才算,不能凭空想像
a) 新技术的实施难度,即使是跟之前用过的技术相似度很高的新技术,都是超乎在最开始的设想的
b) 可以在正式开始前做一些演示版,顺便了解技术实际难度
c) 万不可凭臆测认为应该存在什么技术,或某项技术应该实现了什么功能(最近在做的一个项目,技术选型为Silverlight + ADO.NET Data Services + Entity Framework,开始的时候客户数据库没确定下来,先用SQL Server数据库做数据层,以为将来换成其他数据库只需要将Entity Framework的Data Provider替换一下就行了,几分钟的事,但最后客户确定的数据库为Oracle,微软并没有提供用于这个的Data Provider,Oracle自己也没整,开源项目也没有比较完整的实现,实在到最后没办法只能把整个系统的数据访问方式全变掉,现在很是ft中)