最近的工作主要是新系统的开发,因为我是后期加入的原因,整个系统的架构并不是我完成的。尽管我可能比所有人都熟悉这套系统。
所以我想把我的一些理解记录下来,在两年前就与一个客户深入的沟通过这套系统的前期架构,并且我认为当时的沟通在现在看来都是很合理的。所以在开发初期我有一些自己的想法想表达出来,但由于种种原因我还是放弃了。
其实这也算是一个实验性的项目,我的想法是在初期的时候仅仅提供最最简单的功能框架然后尽快推出给一部分客户试用,通过一段时间客户的反馈再来进行第二次开发,其实项目开始初期所有人也好像都是这样打算的,包括决策者。可当项目进行一半的时候由于他们的不断讨论设想,系统发生了巨大的变化,越来越多新的功能和角色的加入使工期一拖再拖,到现在以我看来已经属于过度设计了,尽管以后系统可能就会是这个样子,可初期这样做使客户的学习成本大大增加了,这就意味着项目风险大大提高。尽管决策着可以通过各种其他的方式进行补救,可我仍然有些担心,因为在这之前,我独立完成过一套独立的相关系统,就是因为考虑的太多导致最后的结果很不好,客户的反馈结果无一不是学习成本过高,员工不愿意使用。
针对特殊行业的系统肯定会有这样的弊端,我的建议是提供最简单适用的模块让客户尽快上手,一段时间内通过客户反馈进行二次开发,这样的好处会让客户的学习成本降低,同时二次根据客户需求进行改进可以增加客户的信任感,这样更能增加客户对系统的粘性,何乐而不为之呢?
我打算自己利用空余时间来把以前失败的系统重新做一边,记几个要点:- 编码前完成总体架构
- 制定整套系统的UI元素
- 规范整套系统的提示用语
- 所有这一切完成后开始编码