写给一个App做了10个月还没有上线的公司。
脑图
岁末年关,也是App蓄久代发之日。
对于公司我这里有一个价值100多万的建议,它可以提升我们公司软件开发效率,减少开发成本,从而节省一笔不小的开支。还可以更快更方便的开展其他业务提升时间利用率。在这个时间就是金钱,效率就是生命的时代里我相信这也许是一个很不错的建议。如果它能奏效预计能提升40%的效率。如果简单的换算成钱来看(1W/人/月 * 30人 * 10个月)* 0.4 ≈ 120W
,这还不包括节省下来的时间完成其它事情所带来的收益。
人都是逐利的,公司也一样。不同的是公司凝聚了个人的力量组成团队,抱团打天下以便更容易实现目标牟取相应的利益。我有幸能加入公司,成为这个利益共同体中的一份子,同时我也想贡献自己一份微薄的力量将我们的共同利益最大化。所以在我加入公司这段不长的时间里发现了一些问题并斗胆总结出来,不知道是否客观正确,但我主观认为它确实影响了我们这个利益共同体的利益最大化。
存在问题
1.无任何计划
俗话说无规矩不成方圆,做软件开发也一样。朝立夕改不仅不能做到至善尽美、反而会影响项目整体的稳定。计划的重要性是不言而喻的,但是我并没有在我们的团队中感觉到它的存在。
合理的计划绝对是效率提升最好的帮手,如何制定出合理的计划我觉得需要专人专做。就好比我们都会画画,但我现在需要请一位画师给我画像,我不会去对他的工作指手画脚甚至随意更换要画的画像。同理如果一个人自称懂程序,但不清楚H5和原生的优劣如何能决定一个功能或一个界面是用原生或H5实现?
好的计划会很清楚的表明什么时候干什么事情,有很好的条理性。像我通常做项目时会简单的分成一期二期三期等阶段性进展,并很好的将要实现的功能进行划分。在前期打好基础,后期开枝散叶这是我们通常使用的策略。
如果我们有了拟定的计划,那我们还需要在时间节点去回溯计划,找出影响计划完成的责任源头。比如我们之前拟定了20号上线的计划,后来为什么会不疾而终。没有对过去的反思,如何行走当下,更甚面对未来?
2.无任何流程
生活中我们常常需要走各种流程,流程是事物进行中的次序或顺序的布置和安排。办事有办事流程,开发有开发流程,业务有业务流程,而程序又是一段段代码按照给定流程执行的工具。没有流程或者流程混乱做出来的程序也不会是一个健壮的程序。
常见的软件开发流程会有:需求分析-->软件设计-->技术架构-->代码编写-->功能测试
。当然你也可以有你自己的流程,这里有一些前人总结出来的开发模型,也分析了利弊。不难看出我们现在的边做边改型只适用于几百行的小程序,如果他们能帮助我们更好的做好工作,为什么不去学习一下了?
常见的迭代流程
这个是目前软件开发最常用的敏捷开发的迭代流程图,也很清楚的标明了不同阶段该如何管理和介入。同时我也希望我们能采用这样的开发模式,而不是现在的。
还有就是最重要的BUG处理流程,这里我找到了一篇文章算是不错的科普,它教我们如何划分BUG类型、缺陷等级以及BUG处理流程。可以看到发现BUG并不是立即去打破程序员目前的工作状态。
3.需求不明确
这一点在很多地方都存在,就比如船详情从我开始做到现在基本稳定的版本我已经改动不下4次。还有最近需要修改的部分都没有很明确的需求。
4.意见不统一
这个也是因为没有良好的开发流程导致,领导说哪改哪,不同人对要实现的功能有不同的目标。记得选择优惠券和地区选择都遇到的类似的情况。
5.设计缺陷
不知道是开发没有按照设计图完成UI,还是设计图表达的不够完整,经常性的重做既是对设计人员成果的否定,又是对开发人员时间的浪费。
6.UI改动频繁
不是说UI不能改动,也不是说领导没有了指挥的权利,只是想说可以将改动总结提炼,以达到风格一致性或功能完整性。我们经常使用的App基本上半月一小改一月一大改,QQ改了15年它也还再改,这些比要的进化肯定是必须的。经得起用户使用的版本才是稳定的版本,用户体验提升、用户数量增加的改动才会是好的改动。没有刻度的秤杆只是一根废柴。
7.无任何系统性测试
测试很重要,它是对产品质量的保障,而我们一直再改,敢来一次系统性内测吗?
解决方案
成功有赖于良好的项目管理,好的项目管理流程是怎样的?
1、制定合理计划并严格执行
2、明确业务流程、减少沟通成本及理解偏差
3、各司其职、责任到人
4、增加需求分析环节、减少设计缺陷及试错性开发
5、分析责任源头、增加追责机制
6、明确开发、测试流程。分清事务优先级
简单罗列了一下我想到的方案,但真正能解决问题的还是执行力的问题。
所以说了这么多我能给出的建议就是第一条:制定合理计划并严格执行,如果做到它肯定不止值100W。毕竟很多大型互联网公司完善的制度也是在执行这一条。
以上也只是个人愚见,谨以此表明我自己的看法和态度,为自己争取一个良性的工作环境。愿公司越来越好,早日实现利益共同体的目标。