【本Blog均为xu1ji原创,仅作为学习总结之用。如转载,请保留此声明并注明本页URL】
前期思考 有多重要?(欢迎评论)
问题背景描述:
创业团队。
我们最近在做一个产品,一个规模比较大的web应用。
由于具有创新性,国内市场没有成熟的产品可以参考。
正因如此,我们简单想好基本的功能和架构,心中有了一个大概的样子,就开始编码了。在整个开发过程中,我们一边开发,一边思考新功能是不是要加,一边思考旧功能的优化和删减,因为之前思考和定义的不是很充分,所以我们开发者一直在处于不断修改心中蓝图的过程中。
这样真的好吗?
持续思考日志:
写于2012-10-17:
首先我必须要说:前期没有做足充分的产品定义和设计,就开始编码,这是绝对是很不合理的。
新产品和没有参考,或者自主研发这都不是借口,因为太多软件工程的书里都传达着这样一个信息:
“软件工程实践中,一半以上的项目都会存在交付日期拖延、功能不完整甚至于项目失败的问题,而导致这些问题最大的诱因,就在于:前期需求定义不完整和规范,或者需求变动过于频繁”
所以说,即使种种原因,如没有现成参考等,也一定要尽可能思考充分,要确定好要做的功能模块(哪怕是几个备案选一),要想清楚系统的用户需求,想清楚系统的核心本质,想清楚在产品用户体验过程中,我们会传达给用户一个什么信息。
这是关键:
脑子中我们对系统本质了解的透透的,都不一定能达到预期的效果。更何况我们没理解透彻,糊里糊涂就做下来了呢?
推而广之,在编码、测试乃至看书、查资料等技术问题上,做之前先动动脑子想清楚究竟怎么下手,什么是最优选择。看似耽误了做事的时间,但是对于整体的效率来说,通常是更有效的一种方式,就像我们总有这样的经验:以前中学写作文的时候,花十分钟打个草稿或者提纲,通常能有效的缩短整体的写作文时间,而且动笔的时候一鼓作气更流畅,文章逻辑更清晰。
同样的道理,可为什么很多时候我们都做的不到位呢。
写于2012-10-20:
真的很纠结。
是因为创业公司吗?十几个人的开发团队,水平模式(所有人员涉及产品定义/设计/编码和测试,各有偏重)。
应该是有序的啊:
1.看见树木,又见森林,心里知道整个产品是怎么样,核心是怎样,这个模块的功能是什么,意义何在。
2.想清楚每个模块投入的成本和实现的价值,考虑清楚性价比再做决策。
3.做每个模块时候,应该先从用户体验出发吧,我觉得这是最重要的。然后根据这个,考虑视觉流和界面,然后是功能实现的问题。如果每每都从功能或技术难度考虑问题,怎么做出一流的产品啊。
4.沟通真的很重要,怎么建立一个自上而下的沟通方式,怎么有一个好的决策制度,真的很重要。如果一个员工(甚至只是编码或者测试,都不是产品)觉得这个产品有严重的缺陷或者设计失误,应该怎么进行有效沟通呢。
总而言之,最近很充实,学习和思考了不少新东西,加油。
写于2012-12-15:
现在不止是需求的问题了,而是做一个产品,应该本质上做什么的问题。
做产品不是为了做出来,而是为了实现一种概念,为某些用户满足需求。【今晚酒店特价】就是一个绝妙的例子,要分析市场和需求,考虑各种条件,最后综合得出结论。
引用周教主的两句话: