当然,除此之外还有很多很多软件,是无法随便归类的,比如说一个游戏外挂,再比如一个政府单位需要对某些数据做一些筛选处理,不过总体来说,这些软件也可以称为应用软件,简单地说,能够想像到的各种服务于我们日常生活的产品,都属于软件。
  那么软件是怎么来的呢?是那些长得像大猩猩的程序员们用一般人不认识的程序代码一行一行写出来的。可是,具体的流程是什么样的?
  首先,需要有一个产品经理站出来,寻找需求并设计产品。先不用管什么是产品经理,反正知道是一个经理,行了。在做一个产品之前,有两个人是少不了的,第一个是客户,一个是产品经理。无论是客户出钱做软件,还是自己想做一个服务于别人的软件(比如做一个聊天软件给别人用),那你都需要寻找到客户,也是说客户是使用软件的人,如果一个软件没有人用,或者初不知道这个软件要给谁用,那没啥意义了。
  OK,现在我们知道产品经理要和客户打交道,从客户那里了解需求,也是知道客户想要一个什么样的软件。不过大的问题来了:客户以为自己知道什么是需求,但其实客户只能提出当前的问题,并不能够了解当前的需求,他们误以为自己面临的问题是需求,可是真正的需求是解决方案,也是说产品经理需要引导客户说出自己面临的问题是什么,并且帮助客户寻找解决方案,然后把这一套的东西转答给程序员。
  也是说,产品经理至少要做到:
  客户啊,你的问题是啥,我来给你记下
  客户啊,你的问题如何解决,咱们一起来商议
  客户啊,看,这是文档,这里面写了我们怎么解决你面临的问题,还有,还有,这东西要花不少钱啊,还有,你看这软件是不是这些人来用?这软件是不是分这么几个模块?
  客户啊,你的问题和解决方案全部已经交给程序员了,那帮长得像NBA里面的詹姆斯的背着双肩包的人会帮你把软件做好的
  你们这帮大猩猩,做的软件有bug,来来来,让我告诉你,你的Bug在哪
  客户啊,你看,我天天在你身边,帮你解决问题,现在,你爽了吧?你还要什么软件,你说啊,你说啊。
  当然啦,要服务于一个行业,首先需要的是了解这个行业的基础知识。比如要帮淘宝卖家做软件,那至少需要了解淘宝体系内的各种知识;再比如要为一个矿场开发软件,那当然需要了解矿场是如何运作的,这是做一行,爱一行,干一行,通两行。
  那这样软件做出来了?没有,当然没有,因为程序员拿到这些调研的需求,做出一个简单的开发计划以后,还有很重要的活需要做:精细定义产品。
  程序员里面总会出来一个老大,长相大多比较像23岁的詹姆斯,基本会长成这样:
  Img273396544
  他会做出一付冷酷无情的态度说:你描述的需求不完整啊,你看,我们现在把开发分成了这么几个阶段,第一步,我们要做一个用户体系;第二步,我们要作一个消息系统,当然这个家伙还有可能会说:我们根本不打算做软件,我们喜欢看着编译的过程,是一片黑色的屏蔽上有绿色的字不断滚动,像这样:
  55337871201010282212442755685340620_000
  这时候,产品经理只需要知道,程序员已经进入了某种入定的状态,他们需要的是:你告诉他们,客户想要的一切细节,即使你不知道,你也要告诉程序员:乖,别担心,我去帮你问那伙长得不酷的家伙们。
  这时候,产品经理需要去编写一些用户的用例说明,比如像这样:
  用例开始
  用户点击登录链接,打开登录界面
  用户输入自己的用户名和密码,同时输入正确的验证码
  如果输入正确,则让用户进入自己的个人控制中心,否则跳转回登录页面
  如果用户连续三次输入了错误的密码,请给出提示“对不起,您的人品已用光”
  当用户成功登录个人中心后,记录下用户的登录时间和登录IP地址
  用例结束
  这些东西,是程序员的精神鸦片,不用管为什么,只要知道程序员看到这些,会很激动地主动去写代码了,其他的事,无论是什么,他们都不需要,可能看到的是他们在这个用例下面加上评论:什么玩意,客户根本不需要这样的东西,他们不懂。
  当然,对于产品经理,看到这样的评论,你只要回一句:”乖,别怕,我去和他们说“。
  只要通过这样的一个简单的流程,大多数软件是可以做出来的,能否做得好还不好说,可是起码能出来一个可以点来点去的东西,也是可以用眼睛看到的东西。这是软件开发的一个缩影,虽然软件开发比你想像得要复杂得多,可是产品经理总需要在这里做很多很多工作,这是我们要干的活,也是我们的目标:做世界上会做软件的团队。