Browsed by
Month: August 2014

Hackathon

Hackathon

什么是Hackathon 来自维基百科的解释 编程马拉松是一种活动。在该活动当中,电脑程序员以及其他与软件发展相关的人员,如图形设计师、界面设计师与专案经理,相聚在一起,以紧密合作的形式去进行某项软件专案。 新CEO新气象 微软有了新的CEO是总所周知的,可是外界的朋友不知道新CEO给公司带来了什么样的变化,我说一说我能够感受到的吧。 之前微软可以说是各个组之间各自为战,最明显的例子就是身为公司的“攻城狮”,却不能访问别的组的代码,新CEO上任之后,提出了One Microsoft的口号,其中就包括了允许我们访问公司内其他部门的代码,而且经过一定的审批,还可以去修改别部门的代码。因此各个部门的代码终于实现了开源,虽然现在还没有特别好的方式去理解别人的代码,然而这个好的开端的确是值得肯定的。 最近,公司更是取消了每年一次的company meeting,取而代之的是引入了Hackathon这个“新兴”事物,对于一个有30年历史的公司,能够举办这种新的活动,简直就是大象在跳舞一般。 我在这次活动中做了什么 开始并不是特别了解这个活动的目地和如何去实践,只是大概知道可以利用2天时间完成一个项目,而项目就完全是自己感兴趣的东西,可以去试一下一直没有机会用过的api,可以去完成一个app,甚至可以组装硬件。总之就是2天时间自由利用。 于是乎我就开始想自己想去做什么了,先想了想原则: 这件事请需要是有趣的 这件事情需要是能够用一些iOS或Mac上我没有用过的API的 所以综合了上面的原则,我决定去做一个Game Center for Powerpoint iPad。  众人拾柴 在提交了项目申请后,陆续收到了2个同事加入的 消息,很高兴自己的项目能够有人一起合作。大家在愉悦的环境下开始了kick off会议,在会议上,大家商讨了项目的大体设计和实施方案。 两天黑客日 终于到了黑客日,我们开始紧张的编程。我自己主要负责的是Word Scramble游戏,里面我尝试了之前一直没有用过的Sprite Kit。好久没有尝试过这么紧张并且投入的编程,这种时光还是刚毕业时才体验过,一边在大脑里面构思,一边查找API并且实践,第一天很快就过去了,基本上按照了原定的计划,实现了这个游戏。 第二天做什么呢?最开始我的计划是加入一个内嵌的browser,然后打开一个制定的页面,并且提供browser一些API来访问PPT的内容,让网页游戏可以结合PPT内容。 但是真的到了第二天,还是决定不要加入这功能了,因为如果是打开一些别人写好到网页游戏,那么并不能和PPT互动,而自己如果自己去实现一个网页游戏,那么又要引入内嵌browser,又要写API,又要写游戏,可能会来不及,所以这个构想就放下了。 最后第二天我做到是加入一个联网功能到组内其他成员的游戏。这里先得介绍一下他们做的游戏,基本上就是给PPT每一个功能一个分数,当用户使用一个功能时,就加一些分,最后用户可以查看自己的分数。而我要帮他们做的就是把用户的分数上传到Azure网站,并且提供界面现实现在所有用户的分数。 结果和反思 两天的hack结束了,我们实现了我们预定的目标。接下来的就是成果展示会和评委会评奖。不出意外的是,我们的项目落选了。 这次活动的过程中,我们享受了编程给我们带来的乐趣,但是最后没有获得奖励还是不免心中忧伤。毕竟辛苦2天的成果如果能有人肯定,那一定是极好的。 总结下来,我们最后没有办法跟别人compete的原因应该有这么几个。 第一,项目的idea最好是能够一句话就能说清楚的。这个也是很多人创业失败后总结出来的原因。我们的项目并不能第一时间吸引别人。例如我们想把PPT跟游戏结合起来,可能用户并不知道你要做些什么,后来我们做的Word sramble,用户也不知道为什么PPT里面要加入这个游戏,他们有什么理由来玩,并且你这个游戏怎么跟PPT结合。虽然我自己的想法是还不错,当人完成PPT演讲, 可能用这个游戏的方式来巩固一下自己PPT过程中的要点。反观别人的项目,最后成功的,大多是都能够一句话说清楚,而且能够有吸引别人的点。 第二,项目太过追求多而忽略了精。因为我们是做很多游戏,所以大家各自为政,没有能够很好的结合大家的力量,现在回想过来,如果当时设计一个游戏,我们就做一个,这样大家就更能够接受。其实如果做多也没关系,但是一定要多得让人觉得wow,你们可以有这么多,我们最后只做了两个,就感觉很一般了。 第三,项目的成果展示一定要找最了解项目的人来做,当时我们组里面一个同事自告奋勇的说可以找PM来帮我们做展示,那个PM经常有机会去给别人做展示,所以我当时就想当然的觉得这是一个很棒的地方,我们自己不用耽误时间来做,并且又有非常有能力的人来帮忙,一定效果不错。结果呢?因为这个人是最后阶段才加入进来,所以他根本就不了解整个项目的特点,所以他把很多东西都按照自己理解来讲,自然而然失去了我们都初衷,例如我花了一天时间做都world score,其实是个加分的功能,因为目前微信之类的社交平台上流行很多很简单的游戏,就是因为了它有社交功能,而我加入了world score,那么游戏玩家可能会去比较自己和别人。而这个PM做展示的时候,这个功能只是一点带过,根本就没有做完整的介绍。 虽然两天时间过得很快,但是我还是感觉自己收获颇丰,这次的活动无论是从技术上,还是从项目上,都是对自己的一个很大的提升,感谢微软给我带来的这些。