2018.10.5 自己的产品思路说话要占先机

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/huangyanlong/article/details/84502776

在对产品功能原型介绍的时候,被业务经验丰富的产品经理打断,由其展开对其它同事的疑问进行了阐述。

产生这一幕的原因,首先前提时这位业务经验丰富的同事看明白了我先前的表达和流程思路。其次,我没能及时的介入对话,而是让这位“大拿”取而代之,是一种悲哀同时也是一种惊醒。之所以产生这个原因,除了这两点外,我觉得还存在一个现象,那就是我所设计的产品中,有部分细节的错误,而设计的主流程是对的,造成自己没反应过来,可以理解成脑袋运转慢了半拍,综合这些,提前自己滤清完整的流程脉络有多重要。

展开阅读全文

产品研发思路

07-19

现在我们公司有两种研发思路:rn 一、以需求为导向。整理真实客户的需求,产品的目标是解决这些真实的需求,但并不会完全按照客户的表面需求去做,而是产品有自己的管理思想,会要求客户遵循产品的管理思想,在细节方面可以进行客户化配置。rn 二、进行抽象,分析业务的本质,建立核心概念模型。在设计时强调要能够适应不同客户的不同需求。强调可配置性,通过配置实现客户个性化。rnrn 我倾向于第一种。这认为这种思路目标清晰(来自真实客户的真实需求),风险是产品的管理思想来自于已经接触的客户,不一定符合未接触的客户。rn 我同事倾向于第二种。他认为这样能够把握本质,能够适应所有的客户。rnrn 我反对第二种,主要原因是这样做难度太大。他实际接触的客户也不是很多,很多想法来自于他自己的想像。我不否认他的一些想像或许有一定的道理,但我认为他是在闭门造车。而且他的这种想适应所有客户的思路我觉得很恐怖。我相信,按他思路做出来的东西有很多是根本用不上的。rn 他特别强调可配置性,希望产品通过配置就能满足不同客户的不同需求。我严重怀疑这一点。在我的印象中,成功的产品都是对客户有约束的,要求客户进行改造以适应此产品。例如SAP,局部当然可以调整,但管理思路必须按它去做。再如IPhone,硬件上可以说毫无可配置性。rnrn 我举一个实际例子吧。我们在做一个仓库管理系统,原先货物品种是产品的一个核心概念。他提出这不合适,他举一例子,同样的93号汽油,有5升桶装的、3升桶装的、散装的,在产品中会维护成三个货物品种。但出库时客户有时只要求93号汽油就行,有时会限制规格。而使用我们原先的产品,在不需要限制规格时,我们系统也必须指定货物品种,这是不合理的。他提出要支持对分类进行出库。在这个例子中,93号汽油是一个分类,其下三个规格维护成三个品种。rn 指定分类出库当然也不是什么大问题,但我们的产品中有前端采集,并且采集是脱机进行的。当指定分类出库时,如何保证前端采集正确呢?rn 我认为,以品种作为业务基础是可以的。对于上面的例子,当客户只要求93号汽油时,应该由仓库相关人员根据库存情况等因素决定出哪个品种。也就是,这时应该由人去将对分类的要求转换成对品种的要求。rn 而且,支持对分类进行出库也会导致更多问题,原料、成品也是分类,难道允许一个单据只指定到原料这个级别?rnrn 他说现在的产品不能适应不按品种管理的客户,哪些客户会不按品种管理,至少我还没有遇到。我相信就算有,也是极少的,放弃这些客户也没什么大不了。rnrn 请教各位大能怎么看? 论坛

我无聊的时候写了一个自己跟自己说话的程序

12-03

我原本的想法是同时打开两个终端,运行同一个程序,然后互相说话rn用IPC实现的,编译也通过了rn可是P操作总是返回0,不返回-1rn代码:rn#include rn#include rn#include rn#include rn#include rn#include rnrnrnunion semun rn int val;rn struct semid_ds *buf;rn unsigned short *array;rn struct seminfo *__buf;rn;rnrnint P(int semid)rnrn struct sembuf sops = 0,-1,IPC_NOWAIT;rn int t = semop(semid,&sops,1);rn return t;rnrnrnint V(int semid)rnrn struct sembuf sops = 0,1,SEM_UNDO;rn return (semop(semid,&sops,1));rnrnrn#define length 1024rnint main()rnrn int shmkey= ftok("./share",1);rn int semkey= ftok("./shmem",1);rn int shmid,semid;rn int wait = 0;rn char *shmptr;rn //生成共享内存和信号量 rn if((shmid = shmget(shmkey,length,IPC_CREAT))==-1)rn rn perror("shmget error \n");rn exit(1);rn rn semid = semget(semkey,1,IPC_CREAT);rn if(semid==-1)rn rn semid = semget(semkey,1,IPC_EXCL);rn if(semid ==-1)rn rn perror("semget error \n");rn exit(1);rn rn rn //信号量置1 rn union semun arg;rn arg.val = 1;rn if((int)(shmptr=(char*)(shmat(shmid,NULL,0)))==-1)rn rn perror("shmat error \n");rn exit(1);rn rnrn if(semctl(semid,0,SETVAL,arg)==-1)rn rn perror("semctl error \n");rn semctl(semid,0,IPC_RMID,arg);rn exit(1);rn rn //开始聊天 rn while(1)rn rn while( (P(semid) == -1)||(semctl(semid,0,GETZCNT,arg)>0))//gdb检查是出问题的地方,每次都不会进入这个循环rn rn printf("waiting for enter...");rn wait = 1;rn sleep(1);rn rn if( wait==1 )rn rn printf(":%s\n",shmptr);rn rn printf("say something:");rn scanf("%s",shmptr);rn while( V(semid) == -1)rn rn printf("wait transferring \n");rn sleep(3);rn rn rn return 0;rn 论坛

没有更多推荐了,返回首页