刚来到这家公司,被委于重任,负责公司的第一款产品------餐饮类的(具体是什么由于与公司签订的有保密协议,在这就不说了,大家知道是一个餐饮类的软件就行)的开发工作,接到此任务后感觉有点压力,因为公司没有一个整体的做软件的流程,我也不太了解老员工的性格,但是既然老总相信咱,就硬着头皮上吧。
首先是理解老总的需求,老总是一个不懂技术的人,需求就两句话,这可难为我了,他的两句话:想做一个餐饮类的软件,可以点菜。就这么多,我的天呢,这也叫需求,没办法。开始搜所此行业类的软件,然后找到了几个很不错的,综合了一下,和老总谈谈,需求总算明确了一些。这个需求阶段,我的感悟是老总不明白的,你得想法设法找一些问题,让他去确定,比如你可以说我们可不可以这样去做,然后引导者老总去思考。
开始没有流程,以我的经验,就是和老总商量每一个步骤都要出一个文档,当然了,需求结束后要出一个需求文档。这阶段浪费的时间不少,因为开始老板自己都不知道要做什么软件,所以在这阶段我下的功夫太多了。后来证明,这阶段下的精力还是不够多,因为这个软件后期又改了三次,因为需求不明确,所以告诫那些项目经理,需求一定要确定,不然的话后面太浪费时间了。
需求文档出来后,开始进行下面的产品设计阶段,原来我一般都是做项目的框架,很少去设计产品,这对我是一个很大的挑战。怎么办呢,我的想法还是那样,开始看大量的行业类的软件,开始总结人家的UI,然后出了几套方案,让美工炫出图,让后让老板确定用那一套。当然了,产品设计阶段不仅仅是UI交互,还有后台的数据库设计,接口设计,原型图。与数据相关的都是小case,所以数据这一块做的比较快。这一阶段的时间主要是浪费到了UI交互方面,因为这些如果不能创新的话,会影响客户量,因为不懂技术的人只看UI,此类的软件功能基本上都差不多,就看你做的好看不好看,这个标准很简单。当然了,我们设计UI的时候,不能仅仅考虑美工,更重要的是考虑简介,大方,做一款软件不能做的太复杂,越简单越好,特别是类似的移动端的软件,必须做到简单,尽量少的让用户输入东西,这些都是最基本的设计如那件的原则。在这一阶段,主要出的文档有:UI交互图,数据库设计文档,接口设计文档,原型图(主要侧重于业务流程)。
这些搞好后,开始进行令人兴奋的编码阶段,这阶段是最享受的阶段。
测试阶段:这阶段我做了一个很愚蠢的事情,就是没有好好去测试软件,就让老板去看,弄得很尴尬。当老板去测试后台的时候,当点击第二次就出现了一个bug,第三次有一个bug,第四次也有一个bug,老板最后来了句,你好好测测,再让我看。教训啊,很严重的教训。所以下面的测试,必须先过我这关,之后才能让老板看。
上面基本上就是整个项目的流程,中间出现了不少问题。
(1),需求明确问题:需求必须明确,确定,否则不要往下面进行。
(2),数据库设计问题:要几个人在一快去讨论确定,因为一个人的想法是片面的,有可能会考虑不周全。
(3),衔接问题:接口设计一定在写代码之前完成,并且能测试,达到能用的程度。我中间遇见的问题是,程序员等接口等了好几天,真是浪费时间啊。
(4),UI交互:做这个软件,UI换了3套。浪费了大量的时间,以此为鉴,一定得让老板考虑好,不然的话苦的是我们在一线的程序猿。
(5),切图方面:美工的切图速度太慢,也浪费了不少时间。由于ios切图和Android的切图差别太大,应该找两个美工一个负责ios,一个负责android,这样不必等美工去去切图。当然了美工要是老手,一个人就搞定了,可惜,我们的是新手的啊 ,太慢了。
(6),测试:如果我们把整个项目堪称是100%的话,前期的需求分析,产品设计占40%,中间的代码实现占40%,后期的测试占20%。由此可见测试的重要性,因此以这个软件为分界线,以后我会很重视测试环节。测试也有一定的技巧,我认为要有以下几点:一数据为空的时候,二,数据量很大的时候,三,压力测试,很重复某一个环节,四,交叉测试,让不同的人去测试。
此流程需要改进的地方:
(1),上下级交流问题,交流的及时性。
(2),同级的交流问题,什么事都要商量着来,不能自己太独立。
(3),美工作图,更加细化,最好能标出字体多大,一天线的高度是几个px
(4),多征求程序的意见,集中每个人的优势,寻找最佳答案。