上周末去参加Google Girls,其实也就是包装后的黑客松,也是一个只允许女生参加的黑客松。
期间经历了一些不愉快,也学到了不少东西,不仅仅是在技术上的锻炼,更多的是从快速开发中更能感受到软件开发正规流程化的重要性,以及一些面向Demo编程的技巧。
只有我们组没有获得什么Extra的奖品其实是挺惨的,不过主要还是因为不熟悉黑客松的模式,我们输得也不算太冤枉,毕竟没有做出来实际的产品。
在过去我的开发模式基本上都是出idea,分析需求,列清单,分模块,分轻重缓急来决定几次迭代次数,在迭代中不断完善,之后测试,最终出成果,就算是不考虑重构和迭代的项目也需要两周以上,我记得我做过最快的一个站也是一周多(没什么需求的Port站做了2天,当然那是在后端几乎没有的情况下),在这样的条件下,我很少有面向demo编程的经验,因为面向demo编程太过速成,各种表现都不够细致,考虑的不够详尽,我觉得做一个项目如果学的太少就没什么做的必要了,做项目就尽可能的多学一点东西,当然包括代码的可读性、健壮性、性能等等都可以尽可能的做出优化。
换言之,一天半对于我而言,基本上就是想个idea,最多只能再多做个架构的事情,在平时的开发进度上,其实是基本上不写代码的,这种黑客松对于我而言着实是一种挑战,我要选择性的优化我的流程。
还有一点失误是,在学校的时候我很清楚队友的实力,因此架构会根据队友实力动态调整和分配工作量,这样我也能预估一下大概能做到什么档次,在自己做完的基础上能够配合他们,但是这次因为是临时组成的队伍,无法很好的衡量队友的实力,就做出了比较错误的设计,直接导致了后来不会做,只能自己上的尴尬——尽管我能快速配合其他人,但是自己就已经分身乏术了,他们一些完全不懂无法下手的领域只能由我来。
之后是PRD和接口文档太晚产出,基本上明确的时候只剩下四到五个小时了,而此时我要重新调整自己这边的所有情况已经比较难了,要重新梳理思路然后开始写,其实第二天出了文档之后已经算是写的很顺了,但时间实在太紧张,基本上是对接不上的情况——而且对面两个人一个模块,我一个人两个模块……会的语言都不一样实在是太尴尬了。
选题的话自然不多说,我们估计的太过乐观,实际上一天半确实只能调调API进行开发,看到别人都是基于地图API和面向demo编程的时候一脸懵逼,其实如果这样的话,我们似乎也很快就能开发出来,Port站就是基于Google Map的,而且是实际能用的项目,只需要用两天(包括Express零基础的成分,后来也确实发现Bug,交给后人修了: ) )。
面向demo编程本质上就是在最小化错误情况,以能跑作为第一要义,这个直到比赛结束我才刚相同(因为有组在展示的时候发现他们其实没写后端,只是前端demo罢了)。
不过其实我们最后还是释怀了——觉得几个人想出了一个很有趣的桌游,游戏自然不是一蹴而就的,相视一笑——至少看地图API看腻了,我们这个似乎别有一番风味吧。
综上所述,PRD,文档,这几点在开发中至关重要,虽然急,也不能跳过这几个流程干活,这是最该注意的,工作上也是一样的,也算是一次宝贵的经验——反正还年轻,这也算可以付出的试错成本,只是导致了连续工作两周,整个人都不太好。不过也尝试了一下新鲜设计以及Cooking+Vue(还不够熟练),也算可以吧。