产品经理与程序员的矛盾从何而来?(给产品经理们的建议,给程序员的建议。程序员处在信息传导到最末端,因此比较弱势、信息不准确)

今天我们来讨论一下在软件开发过程中的一个很常见,也是令很多程序员头疼的问题,那就是与产品经理直接的矛盾到底是怎么形成的。

先看下面的一张图片,我想大家都明白其中的意思。

一、产品需求经常变动

由于产品经理经常改动需求,导致程序员不得不把做好的东西重新再做,结果可想而知。有的时候程序员加班加点刚做完的东西,被产品经理一句话给推翻了,说需求变动了,不能这么做。严重的时候连核心模块都完全大变样。就一直这样改完做,做完改,无限循环下去。这个小编我可是深有体会。

二、产品经理对程序员的不理解

遇到一个懂技术的产品经理不容易。程序员经常听到的一句话就是,这么简单的功能为什么要这么长时间?这样的话令很多程序员恼火,是最能激发与产品经理矛盾的导火索。

三、程序员处在软件开发流程的最底层

看一下下面的图片,是大多数公司标准的软件开发流程。

从图中我们可以看出,产品经理可以直接跟客户讨论需要,而程序员处于流程的最底端。我们都知道,如果流程越复杂越不容易传达,对于需求的理解,最后传递到程序员这里,有可能就变了味道。如果产品经理把握不好,可能最终结果跟客户想要的完全不一样。

有的产品经理技术上和项目管理上的不专业,对产品需求的理解不深刻,随意改动需求,导致程序员的怨念值再一次上升。

换一句话说,程序员处于流程的底层,只是执行者,产品经理怎么传达就怎么执行,完全没有主动权,这也是导致需求改动的一个原因。比较聪明的公司的做法是,在产品需求会议上,允许程序员参加并发表意见,这样可以从技术的角度及早发现产品功能中存在的问题,从而避免后期需求的频繁改动。

在此也给产品经理们提点建议:

对需求要详细理解,不能一知半解就把需求交给开发;

懂点技术,懂得怎样与程序员沟通;

学会体谅程序员,尊重程序员的工作成果;

给程序员的建议:

做好需求更改的准备,提高代码的扩展性和可维护性;

预留出修改bug和需求的时间;

对需求理解透彻再开始写代码;

代码不要写死,防止需求变动;

大家互相理解。这样才能相处融洽,为同一个目标共同奋斗。

https://www.techug.com/post/collision-between-programmer-and-product-manage.html

原文地址:https://www.cnblogs.com/findumars/p/11067685.html

时间: 2024-08-03 03:11:03

产品经理与程序员的矛盾从何而来?(给产品经理们的建议,给程序员的建议。程序员处在信息传导到最末端,因此比较弱势、信息不准确)的相关文章

产品经理如何与强势的技术沟通? 技术比较有资历,会以技术无法实现等方面的原因拒绝处理产品提出的需求。 你们是否遇到这样的技术? 产品懂技术的话,是不是会好一些,因为可以和技术说“行话”了,并且产品懂技术就不会被忽悠了。

PM在YY...作为强势的技术来回答一下吧.说明白WHY,HOW,WHAT就好了. 我想点两个赞,u can u up,no can no bb 什么的. 微软的win8之父年轻时候也是一个PM应该是微软最伟大的pm之一了吧.他有一天和程序员起了冲突,程序员说必须有两周才能干完,他说项目等不及了.就这样冲突一直没有一方让步,直至一周后,这个PM带着自己写的code给程序员看,他只用一周就可以这些功能.所以产品经理还是要懂一些技术才能和程序员更好交流 我觉得碰到强势的工程师是一件好事.同时,别人拒

7点温暖的建议给到成长中的程序员(转)

1. 解决你自己的问题 从外面获取答案和自己解决问题.找到答案,这两种方式是有区别的.当你自己解决一个问题时,你不仅解决了这一个问题,也意味着解决了跟它类似的数百万问题.这是一个先投资后收获的过程.有时,你可能需要花2到3天的时间解决一个问题,这没什么:这是你的前期投资. 2. 从做小程序开始 小程序,是指100行左右的.目前为止,<Java程序设计教程实验手册(Deitel and Deitel)>这本书是最好的编程书之一.从第一章到第十章,里面的所有习题都做一遍.当你做完了这些,你就对编程

使用mybatis开发Dao的原始方法,实现根据用户id查询一个用户信息 、根据用户名称模糊查询用户信息列表 、添加用户信息等功能

1.需求 将下边的功能实现Dao: 根据用户id查询一个用户信息 根据用户名称模糊查询用户信息列表 添加用户信息 2. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类 3.User.xml映射文件的内容为: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "h

浅谈产品拆解的五宗罪:你可能拆的是假的产品(转)

很多产品经理都有过拆解产品的经历,通常按照一套既定的分析框架和思路来分析一款产品,并期望能借此建立完整的产品认知.当然你也可以通过学习产品拆解报告,来快速地了解一款产品,学习其在产品.设计.运营等方面的可取之处. 不幸的是,我发现绝大部分的产品拆解可能都掉坑里了,我戏称之为,“拆的是假产品”. 不信?那就让我们以“喜马拉雅FM”为例来仔细看一看. 现在,你可以在度娘上搜索“喜马拉雅FM产品分析”或“喜马拉雅FM体验报告”等(需要说明的是,本文并不针对任何内容平台或作者). 也许你也懒得看上面这些

SQLServer中使用扩展事件获取Session级别的等待信息以及SQLServer 2016中Session级别等待信息的增强

本文出处:http://www.cnblogs.com/wy123/p/6835939.html 什么是等待 简单说明一下什么是等待:当应用程序对SQL Server发起一个Session请求的时候,这个Session请求在数据库中执行的过程中会申请其所需要的资源,比如可能会申请内存资源,表上的锁资源,物理IO资源,网络资源等等,如果当前Session运行过程中需要申请的某些资源无法立即得到满足,就会产生等待.SQL Server会以不用的方式来展现这个等待信息,比活动Session的等待信息,

学习笔记_Java get和post区别(转载_GET一般用于获取/查询资源信息,而POST一般用于更新资源信息)

转载自:[hyddd(http://www.cnblogs.com/hyddd/)] 总结一下,      Get是向服务器发索取数据的一种请求      而Post是向服务器提交数据的一种请求,在FORM(表单)中,       Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!       浅谈HTTP中Get与Post的区别 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称

C# AD(Active Directory)域信息同步,组织单位、用户等信息查询

Windows Server 2008 R2 配置AD(Active Directory)域控制器 目录 配置环境 配置DNS服务器 配置Active Directory 域服务 C# AD(Active Directory)域同步 组织单位.用户等信息查询 PDF下载 配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型:       64 位操作系统 配置DNS服务器 这一步不是必须的,在安装Active D

性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项 (转载)

原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-auto-update-and-auto-create-statistics-options/?utm_source=dailynewsletter&utm_medium=email&utm_content=headline&utm_campaign=2012913 统计信息是如何提高SQLServer查询性能的?统计直方图用作在查询执行计划中查询优化器的选择依据.

Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php

Atitit.dwr3 不能显示错误详细信息的解决方案,控件显示错误详细信息的解决方案 java .net php 1. Keyword/subtitle 1 2. 使用dwr3的异常convert处理不能解除,,,按照盗垒能解除了.... 1 3. 使用js 回回调功能处理...还是不能,子能显示个..javaClassName:"java.lang.Throwable",message:"Error"} 2 4. 异常转换器 2 5. 当然如果想要只针对某一个f