标签归档:产品

持之以恒,方得始终

最近生活工作中几个场景中的小事,让我思考做产品过程中坚持的重要性。在日常生活中,会碰到很多新上市后反响不错的产品,但由于各种原因,往往不能持之以恒,产品逐渐变味,最终逐渐失去市场。我想「坚持始终如一」「坚持持续运营」「坚持勿忘初心」可能是需要我们做产品中时刻思考与警惕的。

一个烧饼小摊

去年的时候小区西门口开了个烧饼小摊,刚开始的一阵子天天都排着一队人在等着买烧饼,凑趣排队买了一回,烧饼确实不错,份量充足,外焦里嫩,外加厚厚一层的芝麻,对烧饼这个品类来说是一款好产品。

那段时间每每有时间都会去买上几个,并推荐给周边邻里,排队的人越发的多了,有时候还不一定能买到。一阵时间过去后,份量开始少了,随之芝麻也开始少了,品相也不如以往,也就不再有排队的情况了,当然小摊还在。

另一个烧饼小摊

前段时间又有朋友推荐了一家打烧饼不错的小摊,第一次去排队从最后一炉中匀了两个,吃后确实不错,便宜好吃,同样也是一个好产品,第二天特意去早一点排队多买了几个,隔了几天当第三次去买的时候发现没有了,心中还想着怎么没了?这几天经过发现又在卖,排队的队伍不见了,上前买了几个,随口一问原来是这段时间不想干想休息休息,好在烧饼还是如以前一样,花一定的时间后可能还会恢复如初。

不为发烧而生的小米

烧饼小摊的事就说到这里,转回互联网,这几年互联网中的明星企业「小米」最近被众多大V唱衰,已然成为最近的话题之一。我对手机这个行业的了解仅限于周边亲朋好友的使用情况,印象比较深的是在 2014 年中国互联网大会上北大的刘德寰教授对手机行业以「春秋五霸」做了主题报告,当时刘教授在报告中有提到小米是四面出击、细分待定。一边听一边跟一起参会的同事闲聊了几句,站在外行的角度比较看好华为,基于两点,其一是核心部件华为自己就有研发且有专利,其二是跟运营商关系不错,现在看来还得加上华为不是以风投驱动的。

「为发烧而生」品牌定位下的小米火箭式的成长,买小米手机也是一件不容易的事,要排队抢,经常会在线上线下听到「抢到了没,又没抢到……」,日常中见到的小米手机也确实越来越多多,聊起来反馈也挺好。但从去年年底今年年初,周边用小米手机的逐渐减少,后续的产品好像也不「为发烧而生」了,在偶尔听到类似「系统怎么推广越来越多,广告是越来越多了」的抱怨声中,手机也逐渐换成了其它的品牌。

产品推出市场后,能够解决冷启动获得初始用户已实属不易,我们团队从开始组建到产品开发到尝试让用户使用已经过去两年了,还没能很好的解决冷启动的问题,当然也不存在排队等用的初始用户。一方面我们在坚持,另一方面我们也在根据为数不多的用户的反馈持续对产品进行改进。

无论这两个卖烧饼的小摊,还是小米,一方面是极其让人羡慕的,另一方面是值得思考与学习的。如果他们一直坚持提供始终如一的服务,一直坚持持续的运营,一直坚持勿忘初心,可能会是另一种景象,可是现实是没有如果的。

本文首发于我的微信公众账号「时间易逝」,用微信扫描下方二维码可订阅我的微信公众账号。

微信搜索「doevents」

查看订单跟踪时,我想看哪些信息?

如今电商已经相当普及了,大部分人都会从网上购买东西,网购已经成为生活的一部分,我也会经常在网上购买一些东西,一次好的网购过程对于我来说是能够以最快的速度拿到购买的东西。

相比传统的实体店购买过程体验,从购买开始的挑选,到最后支付完拿到东西,网购会多一个物流配送的过程「其实传统购买也有配送,只是多数由自己完成这个过程」,这个过程在网购中也会反应用户能够多快速拿到东西,高效率的配送会随着物流体系的建设与完善大大缩短送达时间,在很多时候做电商的如京东、amazon、当当、还有当下的做O2O的,很大程度上其构建的壁垒来自仓储与物流体系。

这里面没有说淘宝及天猫,因为很少在这上面购买东西,挑选东西的成本太高,倒是老婆会经常在上面买些东西。

在这整个过程中商家会提供对购买东西的跟踪,以便让用户清楚知道什么时候能够得到东西。凑着这两天买东西对经常使用的电商平台的购买跟踪进行了比较,在这里说说自己对于购买跟踪的体验。

当产生订单以后我最关注的就是什么时候能够送达,进行分解后应该涵盖下面几点:

我买的东西现在发出去了没?
如果发出去了目前在路途中还是已经送达我所在的城市?
开始往我这里派送了没?
我能联系到派送人吗?

对于我这样一个普通用户来说,我不太关注什么分拣点啊,已经完成分拣什么之类的,同样我也不关注什么扫描入库或者什么扫描出库这类的,这跟我没太大的关系,也不是我想了解的。

先看看亚马逊的「包裹跟踪」,如下图:

amazon_trace

这个是几个对比电商企业中体验最好的一个,涵盖了我最关注的,跟踪详情还能减少一条,对我来说「正在运输途中、已经到郑州、配送员xxx在给你送达的途中」,这样三条信息足以。

再来看看京东的,京东提供给用户的是对整个订单的跟踪,如下图:

jingdong_trace

可以看到巨多的信息扑面而来,会告诉我提交订单、出库、打印、拣货、扫描、打包……等诸多的信息,看到这些信息我就醉了,这些信息跟我有几毛钱的关系呀,我还得对信息进行筛选再加工,体验对我来说及其不好。

最后看看当当的,当当也是提供基于订单来跟踪,如下图:

dangdang_trace

当当的文字与京东相比少一些,但同样包含入库、出库、扫描、打包、拣货等这些需要我进行二次加工的信息,体验也是很糟糕的。

以上这些仅代表自己的看法,是自己使用中最直观的感受,大部分时间其实我们是不太关注这些的,以前我也不关注这些,只是目前在从事产品相关的工作,在看很多东西的时候都会从自己使用的角度来分析一下产品,产品是可以持续改善的。

对订单跟踪这个需求面向两个类型用户,分别是企业自身与用户,关注点是不同的,对于信息所需也是不同的。

对于企业来说,对订单的跟踪越详细越好,通过详细的跟踪数据可以最大程度上对整个流程进行压榨,从而不断平衡效率与成本,在竞争的市场中获得竞争优势,建立竞争壁垒。

对于用户来说,不需要很详细大追踪信息,而且也不需要那么多的专业术语,只要能够尽快让用户收到东西就是最佳的体验,用户查看跟踪信息也是了解什么时候能收到东西,在出现特殊情况的时候能够了解并能够联系,这就足够了,对于我的最佳体验是「我今天下单,第二天就送到了,甚至当天就到了,而且东西完好」。

2015年-让咱们带着梦想一起奔跑

奔跑吧2015
景安网络[1]经过10年发展,随着在数据中心的建设与运维以及云计算领域的持续投入,形成了景安网络云计算基础服务体系。在现有业务的稳定且长期在中原地区保持领先的情况下,我们一直在想着是否能够更进一步,能够再为企业用户做点什么?经过反复的讨论,我们选择在企业管理信息化上做一些挑战,以 SaaS (软件即服务)的方式为企业用户提供「简单、高效、好用的企业管理工具套件」,以全新的理念重新定义企业服务软件,为用户提供合适的产品。

「智管 360」由此诞生,我们再次开始新的征程,产品属于内部孵化的创业项目,使用独立的公司与独立的品牌进行运作,从团队创建伊始很快半年过去了,经过了半年的试错与探索,从最初对市场的懵懂逐渐找到了一些用户的需求,也有了一些产出与思索,如今新的一年开始了,一年之计在于春,总结过往后,2015年我们带着梦想一起继续向前奔跑。

1. 求贤

人乃任何时候都是重中之重,经过已发布工程维修追溯应用和审批应用的内测,我们收获无数的友谊,同时也伴随着海量的 BUG 和改进建议,在这些鼓励面前,「智管360」团队越来越觉得在做的事情很有意思也面临很大的挑战,从开始的不靠谱逐渐能看到一点曙光,为了加快曙光的来临,我们需要大量的四有青年跟我们一起奔跑。

你要有一个善良的内心

善良是人之根本,如果没有一颗善良的内心,我们所做的一切都毫无意义,我们的创业团队希望在善良的内心之上,建立相互信任、彼此尊重的价值观,一起冒险。

你要有成功的心态

整个创业的历程是希望获得一个又一个的成功,在激烈的竞争中「赢」,如果没有成功的心态,很难想象能够享受创业的刺激与快感。我们的创业团队需要丰富多彩的工作和生活,没有成功心态的同学是不热爱生活的同学,我们认为他无法做出打动人心的产品。

你要有一定的水准

不管愿望多么美好,现实往往残酷,没有一定的水准,在创业途中就无法填哪些一个个大大小小的坑,我们需要在滚滚的同业创业大潮中拼出自己的一席之地,我们认为有一定的水准是恰到好处满足当前的工作,并能够通过持续的学习做各自专业领域的破坏者,有说干就干的工程实践能力,能够将一件事做到极致,否则无法生存。

你要有梦想

梦想每个人都有,区别在于有些人保持持续的激情并长期坚持去实现梦想,而很多人停留在想一下的状态,创业是一件苦力活,会有很多无法想象的困难,也会碰到无数的挫折,我们需要能保持持续的激情坚持向梦想迈进的伙伴。

说了这么多,我们能够提供什么?

共同实现触手可及的精彩未来
共同经历紧张快乐无序的野蛮创造过程,会面对各种苦逼
足够的生活保障,创业也会保证足够的生活品质,我们拒绝只干活不挣钱

目前开放的职位

1) 看到代码双眼冒光的优质攻城狮(Java、python、iOS、Android)
2) 立志于在产品领域奋斗终生的产品人(产品助理)

如果你不是为了创业而创业,如果在你的心中还有小小的梦想,如果你愿意心无旁骛的做一件极致的事情,如果你有安定的大后方,我们期待你的加入。请给 liutao@zzidc.com 发一份你自认为最成功的案例,我们会认真回复。当然您也可以分析一下我们目前所作的工作, 点击随后的链接直接进入目前我们的产出 「http://zhiguan360.cn 」。

2. 咱们准备做些什么

咱们在2015年准备做些什么呢?咱们会在企业信息化管理方面继续进行尝试,以用户需求驱动产品的持续快速迭代,咱们会一起继续围绕企业人员、工程维修追溯与结合地图定位的轻协作这三部分做好做优。

另外咱们会一起逐步在产品中建立与用户的最直接的交流通道,接受用户最直接的反馈并让用户参与进来与咱们一起创建产品。当然咱们也会逐步借助新媒体工具,尝试将咱们的产品推向市场,给用户解决问题的同时体现产品的价值,体现自身的价值。

我们期待你带着梦想加入我们,共同成长,一起做一些有意思的事情,在人人都在思考互联网思维的当下,我们认为针对企业的 SaaS 市场存在很多的需求与亟待解决的问题,这是我们的机会也是我们前进的方向,2015年让咱们一起朝这个方向奔跑。

产品设计与软件服务杂记

最近闲赋在家,在清明小长假开车长途跋涉3000多公里办完了家里的一件事情,这本身是一种锻炼,同时也让自己放松了一下。闲赋期间也与众多朋友进行沟通交流,同时也收到了一些电子产品的礼物,就对这些谈谈自己的看法。

沟通交流多涉及传统行业或正常业务想利用软件来拓展自己业务,跟随现在的热潮,这些沟通交流也多集中在电商方面,我对于电商是不懂的,没有这方面的从业经验。在沟通交流的过程中多数扮演倾听者的角色,倾听现有的业务如何开展电子商务的美好前景,如何大展宏图,趁着这波电商及移动电商热潮让公司的量级在提升一个台阶。另一种沟通交流涉及的是现有的业务希望能够使用一定的软件来辅助业务本身,期望用软件来提升服务质量,形成自己的独有竞争力。

沟通交流的后半阶段总会涉及到多少人多长时间能够完成这些想法,然后就有外包给团队完成这些的打算,给我的最直观的能够形容的就是这些想做的事情是一锤子的买卖,这也是我近两年碰到比较多的传统行业经营者比较普遍的想法。我对于此的一般建议是让其慎重考虑,主要集中在几点:

(1)这些预计投入建设的都是其核心业务,不在于做出来,而在于做出来后通过不断的运维,经历由营销指导系统建设到系统驱动营销;
(2)核心要做的事情和要形成独有竞争力的事情不宜外包,否则在很大程度上会陷于外包这个泥潭而很不好脱身;
(3)从长期来讲做这类的事情需要有自己的团队,而不是一锤子买卖,我要做这些,你做了这些就行了,这样做多半会夹生,最后不了了之,浪费资源不说,同时也不会有好的结果;
(4)应该有足够的耐心,当真的确定开始之后,这玩意在很长一段时间就是无底洞,看不到底,没有足够的耐心会让团队很茫然,在过程中就会分崩离析。

这些是跟我老本行相关的我的一些看法,我不懂电商,就是从系统建设方面的一些建议,更多的是给他们泼冷水,不是简单的找台服务器、架设电子商城系统或开发一个简单的软件从辅助业务开始形成独有竞争力,其实有时候看上去简单却不简单。

下面再说说朋友给的电子产品「收音机」,这东西是我有段时间问朋友索求的,最近一下子拿到了好几台,主要给母亲使用,这玩意在我的记忆中从来都没有非常火热过,从使用人群出发,记忆中最早家中会有大块头的收音机,仅仅留存在记忆中的这段时间会有「小喇叭什么什么的」,再往后就是在老人跟学生这个群体中使用,现在人们生活变好了,私家车多起来后,在开车中常会听听车载收音机,目前应该在老人跟司机群体中使用较多,至于年轻人可能就通过手机偶尔来听一听了。刨除车载收音机使用人群以外,可能老年人是一直在使用的一个群体而且是目前使用居多的人群。

最近拿到的几台收音机越发的精致跟小巧了,从使用者的特点来看,精致跟小巧是必要的,但是小巧的基础上应注使用人群的特点,比如现在的小按键、数字屏上小字体、小图标对于老年人来讲操作起来就有些不便了。功能操作的数字化这方面也需要一段时间来学习,当然这点我认为是值得的,都要与时俱进嘛,母亲最钟爱的还是「德生」老式收音机,是需要花一段时间来熟悉数字化带来的好处。

不管硬件产品的设计还是软件产品的设计,其受众特点都是需要在设计中考虑的重点之一,只有充分考虑了这些,最终的接口才会有良好的人际体验,就收音机这个电子产品,可能在不久的将来就会彻底消失,但电台会以另外一种方式传播。

「收音机的使用人群是不是我写的这样,下一回跟从事广播的朋友有待沟通确认!」

php学习练习(2)-微信版宝宝睡前故事

小的功能需求在生活的周围存在很多,这些功能需求的编程实现是学习的一种良好方式。对于给孩子读睡前故事是现阶段我这个家庭的需求,买了不少故事书,也有读,就想着将这些故事放到手机上也是一个不错的选择。

时下比较火热的「微信」是手机上呈现的一个不错的方式,于是着手规划这个小的功能需求,这个小的需求分为两部分,第一部分是服务器端对于故事的组织与管理;第二部分是服务器端与微信公众号之间的接口实现。

服务器端需要一个存储故事的数据库,用于存储故事数据,一组页面及其脚本来完成故事的管理,完成对应于数据库的ADU相关操作。剩下的就是与微信的接口部分,通过微信公众号的自定义菜单获取每日睡前故事,通过脚本依据当日信息组成微信公众号的图文信息,点击后展现故事。

最终的阅读操作如图所示「如果你也有这样的需求,可通过微信搜索smallsoftware关注即可使用,也可在微信中扫描本Blog右侧二维码直接关注」:

babystorys

微信接口这部分主要是从数据库中获得数据,然后组织成图文信息即可,根据微信自定义菜单的KEY完成组装即可。

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if(!empty($postStr)) {
  $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
  $fromUser = $postObj->FromUserName;
  //详细请参看微信公众帐号开发接口文档
  //...
  $fromMsgType = $postObj->MsgType;
  //...
  if($fromMsgType == "event") {
    $formEvent = $postObj->Event;
    if($formEvent == "CLICK") {
      $eventKey = $postObj->EventKey;
      if($eventKey == 'YOUR_KEY') {
        //取数据
        //组织图文信息数据
        //输出
      } else { //... }
    }
  }
//......

服务器端包含故事的添加、修改、删除、查看,用于后台对于故事的管理。使用了Bootstrap前端框架的部分内容,具体的结构如下。

babystory archite

数据库类基于PDO,故事类继承数据库类,完成故事的数据相关操作封装及故事的展现,admin类完成权限和管理的封装,前端页面通过init入口完成对于数据的管理工作,init入口部分完成数据的初始化工作与上下交互操作。

没有其他可供的选择,每天一篇睡前故事,对于选择性故事的定制阅读及过往的查询不支持,对于用户阅读这部分的统计也没有完成,可以说留下了不少的坑等着填。

至于微信自定义菜单,根据其接口文档中的说明,先要由appid和secret通过一个URL用Get方式获得AccessToken,然后将准备好的菜单和获得的AccessToken通过一个URL用POST的方式提交数据,从而创建自定义菜单。

<!--?php
  class WechatMenu {
    private $_appid = "";  //你的appid
    private $_secret = ""; //你的secret
    function __construct($menu) {
      //先获得AccessToken
      $result = $this--->getAccessToken();
      if(array_key_exists('errcode', $result)) {
       throw new Exception($result['errmsg'], 1);
      } else {
         $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $result['access_token'];
         $result = $this-&gt;Post($url, $menu);
         if($result['errcode'] == 0) {
           //ok
         } else {
           throw new Exception($result['errcode'], 1);
         }
      }
    }
    
    private function Post($url, $data) {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
      $data = curl_exec($ch);
      curl_close($ch);
      return json_decode($data,true);
    }

    private function Get($url) {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
      $data = curl_exec($ch);
      curl_close($ch);
      return json_decode($data,true);
    }

    private function getAccessToken() {
      $grant_type = "client_credential";
      $appid = $this-&gt;appid;
      $secret = $this-&gt;secret;
      $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type={$grant_type}&amp;appid={$appid}&amp;secret={$secret}";
      $result = $this-&gt;Get($url);
      return $result;
    }
  }
?&gt;

调用 (1) 生成json格式的菜单数据 (2)new WechatMenu($menu);

wechatmenu

-EOF-