互联网项目实施框架

原创
2012/12/25 13:03
阅读数 346

每年一度的论文,贴上来大家分享一下。

互联网项目实施框架

  

文摘要

n  从创意说起。从产生一个创意的那刻起,我们就开始为创业做准备了。创意有很多表达方式,有的是用来改变家庭的生活环境,比如发明一个小板凳,不用的时候可以像书一样,放在一个书架里面。有的改变人们的消费方式,有的改变人人之间的沟通方式,比如手机上的陌陌,让人人之间有个宣泄隐私的方式。总之,改变是最符合人类社会的进化原理。没有一个人仍然保持着10年前的生活方式。那么从一个简单的创意到商业化,以便让更多的人享受我们的创意,中间需要哪些过程呢,或者我们应该用什么视角看到这个过程呢?

关键字

    创意,互联网项目,技术框架,市场调查

参考

<rework> David 37signals.com

<失控> 凯文 凯利

1.      准备阶段

1.1.  寻找切入点,确定灵魂

1.1.1.    如何确定创意

先总结一下之前我体会深刻的2个项目。这两个项目的共同点就是直接继承别人的创意,快速开发,然后直接运营。运营半年后发现用户都不买帐。这几位老板都想象这样的场景:开发出产品后,轻松的搭上销售的列车,用户不需要请就会上门,市场不需要运作就自动开启了。但产品原型出来后发现都不是这样。他们太轻视创新了 ,没有破旧的过程,甚至没有调查,就规划如何开发了。

美工和程序员自然不会参与到这个过程来。市场部门对软件的认识有限。对开发部门的认识更有限,他们期待开发部门开发出一款利器,直接斩敌人于马下,市场部就可以坐享其成了。 这一切都弄反了 。

回到如何确定创意上来。 现在我觉得最好的答案就是有目的和有计划的现场观察。调查问券也赶不上现场观察。

米课网是我参与的时间最长的一个项目。这个项目的立意是帮助学习外语的人记单词。选择我们的平台原因使用我们的工具是更加有效率,因为我们实现一个【艾宾浩斯记忆法】。产品的研发和内容制作耗了6个人一年的时间。产品发布以后并没有像想象中受欢迎。追溯到根本原因就是我们太相信技术本身了。忽略了之前创新的过程。我们是怎么创新的呢? 中国式复制。国外靠这个工具实现了上市【iknow.jp】。

所以我们少了对学习外语的现场观察,没有观察,就不会有合理的改进,没有目标的改进,谈何破旧立新呢?所以,所谓的创新不能是团队内部的创新。 记得有次有个同事带了一个公司外的朋友进入我们办公室,被老板发现后,重重的训斥了我的同事。理由是他的朋友可能盗走我们的创意。这给我们团队带来很长时间的阴影。

如果第二次运作这个工具,我会这么做: 首先确定目标人群。外语学习最大的群体是在校的学生。但是他们的时间都被安排的很紧,他们在什么时候可以时候利用网络设备来记单词呢?这需要现场调查。

在有多种选择的时候,例如 是记单词还是玩游戏? 是使用我们的工具还是选择别人的?我们需要提供一种除了 职责内的学习有效率之外的 其他的激励方式。 这种激励方式具体是什么? 这需要调查。

记单词是个需要时间的,是否手机上的碎片时间更加有效?真的有效吗?这需要调查。..

等等的这些调查我们都没有做的充分。甚至基本上都没有做。

现场调查是个观察的过程。 机会一定藏在这个过程里。而不是藏在竞争对手做的事情里面或者其他的二手信息里面。

1.1.2.   健康的创新环境

一个四肢不全的人很难做到像正常人的心境。更不用谈其他的了。如果把新意比作灵魂,创作团队就像是肉体。 市场调研,美术/艺术加工,文案,实现架构就像生物组织的五官一样。过去碰到的最多的情况就是在实现架构上花大量的时间,甚至有些负责人迷恋上画框架以彰显自己的能力。仿佛只要骨架出来灵魂就能存在了一样。

群体智慧这个词我觉得是实现创新最有力的工具。 有个生物学家观察过蚂蚁的群居生活。每当气候变化,或者别的原因要搬家的时候,会看到不计其数的蚂蚁忙个不停,有的还叼着食物。问题的奇怪之处在于蚂蚁的行为是蚂蚁的大王一个一个的通知的吗? 或者是通过管理实现的这个类似自发式的行为吗?

团队的创新意识从量变到质变不能用常规的线性思维来管理和考量。事实上,项目在进展过程中涉及到的几个部分,市场,美术设计,架构设计演进都不是线性发展的。

1.2.  团队,灵魂所依托的肉体

1.2.1.   团队的组建

有一点问题我感到很奇怪,负责人在挑选团队成员的时候越愿意从性价比的角度做最终决定。性价比最终应该是一种线性的考量,线性的考量的含义就是干的越多,经验越多,产出越多。 这种做法对吗?一个新成员的加入像是在非线性信号处理系统里面的输入,输入是正反馈还是负反馈取决于系统构成,负责人了解这种系统构成。

1.2.2.   有能力的员工

前几年在有拍网团队做电子商务时,老板就喜欢带有英雄主义色彩的员工,有3个程序员,2个市场工作人员,不解决问题或者不达到指标会整日的加班。后来进来一个美工,因为无法适应团队离职,项目演进被一拖再拖。这种团队的集群智慧不具有容错性和适应性。

个人能力本质还是一种线性信号的输入,很强的信号进入非线性系统(团队),输出是个未知数。

1.2.3.   团队的智慧类似集群处理能力

有几个问题,美术人员的灵感可以被负责人管理吗?市场人员的业绩能用订单来说明吗?一个阶段的投入能用金钱衡量吗?

指标式的管理让团队的智慧变得像个白痴。指标式的管理导致的结果往往是一个人蹩脚的智慧的无穷复制。这种管理适合一些项目,但是绝对不适合互联网初创项目。 我经历过的几个团队还没有一个真正的令人满意。哪怕是2个人团队,默契的合作产生的结果也是一个人难以想象的,因为这不是一个系统层面。所以初创项目前期最大的投入是在组建这种团队上,这种团队的集群智慧经过市场系统可以产生正反馈。

1.2.4.   主动让团队的灵魂进化

很难说清团队的灵魂到底是什么样的,但确实是存在。为了让大家都意识到这种灵魂的存在,很多团队都有一个大的白板和意见墙。意见墙上贴满了各种不成性的想法。每个想法都不成形,所有的不成形组合起来就是一种形状。当然开会也是一种。

新建的团队不主动加强这种集群意识,它永远也不会自动形成。

基于经济的压力,成员都有自己的抱怨。但这跟团队的集群意识不冲突。至少暂时不冲突。

1.2.5.   创新意识是保持团队长生不老的秘籍

当所有的成员都喜欢讨论事物之间不同的时候,我们的投入就应该开始见效了。一个人的创新或者说老板自己的创新永远只是一种线性信号。输入必定不会被放大。

2.      实现阶段

所有的理论知识都已经有了,剩下的就是破釜沉舟了。

2.1.  永远关注需求

2.1.1.   市场调查

它就像生物体的眼睛。

这里的需求驱动并非哪有需求,哪里热门就会投入到哪里。我们的用户永远都在追求新奇的东西,我们做不到所有,但是能做一到一个小点。哪怕是一根针的设计,比如针孔如何让老年人更容易识别? 我们做到这一点传到的信号并非一个更好用的针孔,而是一种服务方式和服务态度。这种体验来自现场的观察或间接的调查。

在做米课网的时候,观察iknow.jp 这家日本英语学习企业。 99年成立,一直做外语学习。目标是做更高效的学习工具。08年的时候,团队成员研发部门4个人,技术是当下流行的ruby on rails,市场部 6 个人,网站上都有照片。老板是美国人。美术是外包的,包给制作twitter.com的欧洲团队。

他们团队最令人惊讶的地方就在于团队对企业文化的信仰。他们网站的标志是一个猫头鹰,他们成员家的枕头上,墙上,办公室的白板上,员工的T恤上,甚至铅笔上都是这个。他们是怎么做到这一点的呢?

回到正题上,他们是怎么做市场调查的呢? 他们投入大量的金钱在uservoice.com这个在线工具上,收集到一手的用户反馈信息。也在教室内了解学生的学习习惯。学生对这个网站的依赖就像在家里我们无聊时依赖电视一样。

Iknow.jp3年的时间里,平均每个月都有大的改版,一周一次小的改版。 每次经过调查后的改版,他的程序员会在twitter上公布改版后的新技术,同时也看到了他们对需求的关注。

这让我想起最近一句话,小步快跑。 这句话应该基于调研和需求上。调研的不断深化来推动团队的不断活动。初建的互联网项目团队一般都在46个人左右 。如果美术只关心美术,编程人员只关注逻辑实现,实际上就脱离了集群智慧这跟主线。美术应该关注体验 ,全部人员都应该关注体验并试图改进。

2.2.  技术团队

2.2.1.   美术人员

互联网项目的美术人员承担相对于外包项目特别是日本的外包项目,承担更大的责任。我深入接触的美术人员有5个了。大部分是处于‘悲催的’技术层面。 复用各种界面组件,而不懂为什么 。复用各种版式而不知道为什么。滥用色彩...。同时,一面和自以为是的程序员打交道,一面和更自以为是的老板打交道。每天的情绪处于负面和悲观之中。这种悲观的情绪一方面来自不确定的需求。一方面来自面对不确定需求时,不确定自己的能力。在他们的概念里,版面仿佛永远在改。

更加悲催的是我现在的情况:需求变化和调整对他们来说是大事。因为他们一般对‘需求不变’抱有很大的希望。需求变化对发包方来说,是很大一笔费用。大部分情况是一锤子买卖。然而互联网项目却远远超出这种预期。需求变化是常态。

如何消除这种负面情绪呢? 调整心态,适应这种变化。这需要团队成员的帮助和鼓励。主动发起一些室外的活动很有效果。

      

2.2.2.   程序员

什么样的程序员适合互联网项目呢?

46个人的团队每个人扮演着多重角色。

新建的创业项目前期的编码工作都是些线性的工作,输入输出非常明确,而且是在框架内编码。所以编码会很容易的完成,这点的风险不大。但是作为46个人的集群智慧里面的一员,他的性格占了最小1/6的比例。所以他的性格直接影响了产品质量和服务态度。这种结果在一年后很会清晰。

之前曾经遇到一个同事,在下班闲聊时,总是习惯性的嘲笑老板。 这种信号对整个团队来说不是负面影响的问题,是灾难。我个人更偏喜欢会捣鼓小工具的同事。这类同事在团队遇到困难时,积极响应。项目闲置时,又能保持思路活跃。为团队提供正能量。

2.2.3.   选择灵活的技术实现架构

现在市面上全栈加载式的应用程序框架很多了,php里面zend框架可以实现,web2.0php框架yii,symfony2 封装了http的常用组件,不论是做webservice还是表达界面都非常容易实现。Java里面也有很多类似的框架。利用这些框架至少省去了自己封装请求/响应的代码。解决方案里面还有很神奇的ruby on rails

比较一下我使用这几类web框架的使用情况:

Ruby on rails  使用了4年 ,php使用了4年,java使用了2年。

生产环境中,Ruby on rails 使用fastcgi的方式运行,把全站代码以fullstack方式全部载入内存。优点是基本上是线性工作任务。从数据库的构建,迁移,到业务逻辑封装,到组件化(bundle),到静态资源(jscss)的服务器端编译。全部自动化完成。 这个框架到目前为止代表最先进的web构建思想。很多人都在为这个开源框架改进。这个框架的创始人dhhdavid)目前在自己的创业互联网公司37signals.com上班。他们团队每周休息3天,上4天班,同时可以申请在家工作。37signals出了一本非常适合小团队阅读的书,书名是<rework>,翻译成中文就是 <重来>,极力推荐阅读这本书。他们公司除了改进ruby on rails之外,还有很多在线的产品,具体可以去网站看看。思路相当开阔。

Ruby on rails这框架的有点也是他的缺点。因为受到全球关注,每天在安全升级,所以版本更新很快。

Ruby on rails基于ruby这个来自日本的动态语言。Ruby号称世界上最面向对象的语言,即使是数字1,也被解析成一个通用对象,你可以调用1.to_s 或者手动扩展1这个对象添加一个1.next 这个方法,返回2。这些操作都可以现场操作。 Ruby的极限动态性非常不适合刚入门的程序员。因为在他们的脑袋里面,对一个对象添加方法必须在类里面添加实例方式,怎么可能生成了对象后还可以继续添加实例方法呢?一般的新手消除这种奇怪的排斥心理至少要3个月。即使ruby 入门了 ,ruby on rails 几十万行用ruby封装的框架也很难读懂它是怎么实现的。 Rails on rails对外辩解说,只管吃鸡蛋就好了,管他怎么下的,干什么呢?

ruby 这门语言最大的问题就在于版本之间的兼容性。 版本跳跃很大 。 在使用这个框架过程中,最大的教训就是每当ruby升级 或者 rails有新版本的时候,要不要升级? 答案是不要。 在最开始用的2年了,花了很多时间在版本升级上。特别是当项目上线后,在生产环境里升级rails是个挑战,只要有一个来自第三方的plugin出了问题,因为fullstack的原因,全站就会垮掉。这对用户体验是个影响。Iknow.jp也经常升级ruby版本,刚开始很纳闷他们是怎么做到平滑升级的呢?答案是他们夜间进行,升级前他们会发公告。这表现出了php的优点,除了修复php的安全bug之外,1年都不去管php的版本是什么。

Php也是最好的选择。选择php的理由很简单。快速。但是我更喜欢php版本的稳定性。每年发布几个安全bug 。除此之外不会有语法上的大变动。这可以让团队安心的写业务逻辑。Php介于最新的完全面向对象的脚本语言rubypython ,与java这类的编译语言之间。替换或者增加一个业务逻辑的成本就是找到相应的文件修改就是了。不用重新发布或者编译。有个朋友在选择java还是php时,因为安全不选择php,其实在项目初期,仅仅是表示一些信息的时候,php要方便很多。举个例子,同样实现一个webservicephp新加一个文件,几行代码就搞定了,java那边要命名空间,要类定义,要重新编译。

Php的缺点在于至今没有一个一统江湖的稳定框架,虽然zend一直在引导开发者构建统一的web框架,但是还是很多有重复功能的框架。

Thinkphp ,  ruby on rails的直接php版本,号称最像railsphp框架 。使用起来也很方便。但是封装了很多不常用的东西,一般的使用者对这些冗余的封装会不会影响效率持怀疑态度。

Zend ,来自zend公司框架, 是个大而全 。在跑起来一个简单页面之前也要配置大量的代码。访问控制做的很奇怪。

Symfony2yii都是web2.0兴起的框架,没有太大的区别。框架实现依赖注入式的对象管理模式。部署很方便。因为开源的原因,出了问题容易查找。

这些框架统一的问题就是他们对对象的封装不具备通用性,特别是对中文的处理。Symonfy/yii在处理中文文件名的时候,就不识别,而且是写死的代码。这也受php对亚洲文字解析缺陷的影响。

选择java的理由最明显了,社区成熟,代码更成熟。工程相对严禁。可能是因为个人喜好的原因,我更倾向于用java做数据分析,在服务器上执行任务。而页面结果的表示推给php之类的来做。

选择哪个框架更好些呢?这取决于团队性质和项目阶段。 前期数据模型简单,选择动态语言,后期数据模型复杂,统计分析接口使用java

2.2.4.   工作方式

孤军作战作为线性工作方式是被证明的低效方法,除非有特殊的原因。结对或者分小组工作的好处在于你身边有一个参考点,如果他们不累的时候,你应该也不累。就像骆驼一样,你在满负载的时候,自己起不来,有人给他方式一个席子,再拿下来,他就站起来了,团队的合作分工真是很神秘的事情。

3.      运营,做有灵魂的产品

要经的起失败和反复。

4.      结束语

团队的形态是永远也解释不清的。但是的确是它成就了无数的传奇。根据一滴水的形态,永远也推断不出水流的方向和趋势。

相信明天,一起改变世界。

本问仅代表个人观点,仅具备参考价值,有疏忽和遗漏的地方,请多多指正。

谢谢。

展开阅读全文
打赏
0
1 收藏
分享

作者的其它热门文章

加载中

引用来自“areq22”的评论

写的很好。但现在的社会环境很少有人去考虑创新了。
你好, 我也是大连的ruby开发者, 希望有机会搞个聚会交流, 有没有兴趣,怎么联系你?

qq联系我
2013/10/11 17:33
回复
举报
qq: 154245916 mail: huangtuya@gmail.com
2013/10/11 17:31
回复
举报
写的很好。但现在的社会环境很少有人去考虑创新了。
你好, 我也是大连的ruby开发者, 希望有机会搞个聚会交流, 有没有兴趣,怎么联系你?
2013/10/11 17:11
回复
举报
更多评论
打赏
3 评论
1 收藏
0
分享
返回顶部
顶部