作为一个写了十几年代码的老程序员,楼主说的同事其实就是产品经理或者项目经理,提出需求是老板赋予他们的职责,作为一个程序员首先要懂得如何拿到需求然后进行任务拆分形成代码段,然后实现完成了之后就开始测试,通过之后提交代码,形成版本发布给客户。
至于说不写代码却在挑别人的代码错误,这种事情正向看可能是有多管闲事的嫌疑但本质上看有人对你的代码提出质疑证明代码可以修复的空间还是有的,游戏的程序员都会持续不断的优化代码,越是水平高的代码越是不断的折腾自己写过的代码,直到自己满意为主,曾经为了技术情怀辞掉了一个公司部门经理职位加入了一个顶级的软件团队,人员不多不到十个人但每个人都有很强的技术烙印,经常性的给开源社区的软件贡献代码,都有一个共同的特性,写过的代码不满意直接就推倒重写,带着这种态度,对待这件事,反而是一种好事情,优秀程序员巴不得别人给提意见,何乐而不为的事情。
写的代码就是给人看的,就是让别人挑毛病的,优质的代码让别人看了无可挑剔。现实中项目经理或者产品经理的职责是对产品负责,正常来讲不会关心技术实现细节,只关心功能,对于整个产品特性是有好处的,如果只是从程序员角度出发去做产品,在功能上可能非常稳定,但产品特性肯定会大打折扣。程序员要做的事情就是功能完整实现,达到稳定的效果,当然产品经理如果对技术一窍不通,就会闹出极大的笑话,甚至会惹怒程序员,这种事情已经不止发生过一次,前些日子发生的让app根据手机壳的颜色变化做出相应的动作,这种恶作剧似的需求,会加剧矛盾的爆发,合格的产品起码要懂点技术常识,一意孤行注定会发生恶果。
目前国内的软件产品最初的需求和最后交付的产品差别相当巨大,倒是真正发挥了顾客至上的特性,根本没有什么设计,客户说什么就是什么的设计理念。这种做法倒是哭了一大片的程序员兄弟,因为这种残酷的需求变化导致程序员离职的概率非常高。
程序员对待需求变化在合理状态下需要平常心对待,抗压能力也是优秀程序员的一个品质,只有经受住大的项目考验的程序员才是合格的程序员。