《让子弹飞》里,马邦德说:“步子大了容易扯着蛋。” :shock:
到底有多少系统是因为过度设计而成废品的,谁也说不清,过度设计带的影响很明显:
1、开发成本过高
2、开发周期变长
3、功能逻辑交织混乱,模块耦合程度高
4、用户使用复杂,用户体验不好,学习成本高
5、系统稳定性低,维护成本高
6、系统扩展性差
7、设计和开发人员出力不讨好
到底是什么原因造成过度设计的,我的亲身体会是:
1、系统功能设计时,过于注重细节,太过完美主义,试图作出一个功能,百分百满足用户需求。
而对于系统的主旨重视程度不足。
2、系统功能设计时,超前考虑,为了处理系统中很少存在的问题,花费大量精力,而且替用户考虑并不存在的推断。
3、系统设计时,考虑使用从未用过的技术进行实现,以为新技术可能为系统带来较多优点,但是又对新技术的认识程度不够,开发时,为使用新技术完成原有功能特点作各种变通。
实际,用户的需求可能很简单,他们只需要在短时间内拿出一个带有可以忍受的bug,但是可以完成大多数功能的系统,帮助他们完成业务,然后再对使用的系统进行持续修改和完善。
有两点需要注意的是:
1、开发要以实际情况为主,不能过多推断
2、开发周期要短,用户可以尽快使用和改造
说到最后,这种开发模式可能是敏捷开发的特点。
到底有多少系统是因为过度设计而成废品的,谁也说不清,过度设计带的影响很明显:
1、开发成本过高
2、开发周期变长
3、功能逻辑交织混乱,模块耦合程度高
4、用户使用复杂,用户体验不好,学习成本高
5、系统稳定性低,维护成本高
6、系统扩展性差
7、设计和开发人员出力不讨好
到底是什么原因造成过度设计的,我的亲身体会是:
1、系统功能设计时,过于注重细节,太过完美主义,试图作出一个功能,百分百满足用户需求。
而对于系统的主旨重视程度不足。
2、系统功能设计时,超前考虑,为了处理系统中很少存在的问题,花费大量精力,而且替用户考虑并不存在的推断。
3、系统设计时,考虑使用从未用过的技术进行实现,以为新技术可能为系统带来较多优点,但是又对新技术的认识程度不够,开发时,为使用新技术完成原有功能特点作各种变通。
实际,用户的需求可能很简单,他们只需要在短时间内拿出一个带有可以忍受的bug,但是可以完成大多数功能的系统,帮助他们完成业务,然后再对使用的系统进行持续修改和完善。
有两点需要注意的是:
1、开发要以实际情况为主,不能过多推断
2、开发周期要短,用户可以尽快使用和改造
说到最后,这种开发模式可能是敏捷开发的特点。