从程序员一路走来,我们中有多少人都曾热衷于系统功能的大而全,那些可有可无的配置功能,以及仅仅作为修饰的个性化定制。虽然这些功能都似乎能为我们的产品增光添彩,但它们真的是用户最需要的吗?如果让我们回到过去,我们还会坚持付出那些代价去实现这些功能吗?凯发游戏入口官网为大家总结了程序员开发的时候应该注意的一些问题。
优秀的系统绝不可能凭空产生,它也没有一个统一的标准,众多选择中作出平衡与取舍。该使用什么样的架构,采用哪种技术,在这个功能中使用什么设计模式,采用何种缓存策略等等,这些都需要我们根据当时的环境、资源、用户等要素做出恰当的选择。与其提供很多功能而最终用户却始终觉得不好用,倒不如做好一个能真正帮助用户解决问题的功能,让用户觉得,“嗯,这样就挺好”,然后再进一步,“如果能…就会更好了”,这样一步一步做出理想的产品来。
我们在系统设计与开发时应该尽可能避免的问题:
不盲目使用新技术:新技术意味着风险和不确定的代价(多因修补未知缺陷引起),因此我所在的金融行业里,很少会选择那些新生技术(1年内),而更倾向于选择成熟且稳定发展中的技术或框架。
避免过度设计:过度设计源于系统设计者没有理解用户的真正需求,而将自认为有必要的功能附加于系统之上。而前面提到的可配置、个性化等就是那些最典型的例子。要避免过度设计其实也很简单,要做到多看(看那些优秀的系统是如何设计类似功能的),多想(站在用户的角度去想他们所提需求背后真正的痛点和问题是什么),多做(不要只停留在需求文档上,尽可能快地做出能够验证需求的功能原型,然后与用户不断确认和改进),多说(在每一个阶段都与用户保持持续有效的沟通)。
不在项目中技术镀金:技术镀金指的是开发人员在项目开发中过于追求技术的完美性,试图在技术上镀上一层完美的金壳,导致软件开发工作量加大,项目时间拉长,而最终有可能导致整个项目的失败。我们不应该否定程序员追求完美的自我要求,但应该在项目中引导他们正确地理解“这样就好”的理念,帮助他们平衡追求完美与项目现实要求之间的关系,从而作出最恰当的技术方案选择。