这是我最近在软件开发中,不断思考的问题,在此分享给大家。
不同团队的协作、同事间的互相配合,往往存在不默契,导致工作产出结果低效。甚至有的项目组,大家工作的内容都是冲突的,A同事希望做市场推广,B同事建议大家应该把重心放在产品体验优化上。
很明显,这些工作现象都是不好的,是需要公司去改变的。对于这类问题,有一个简单的核心解决办法,就是大家经常所说的————目标一致。
日本学者中松义郎定义了目标一致理论。
处于群体中的个人,只有在个体方向与群体方向一致的时候,个体的能力才会得到充分发挥,群体的整体功能水平也才会最大化。如果个体在缺乏外界条件或者心情抑郁的压制状态下,就很难在工作中充分展现才华,发挥潜能。个体的发展途径也不会得到群体的认可和激励,特别是在个人方向与群体方向不一致的时候,整体工作效率必然要蒙受损失,群体功能水平势必下降。个人潜能的发挥与个人和群体方向是否一致之间,存在着一种可以量化的函数关系。
所有人目标一致,为了同一个目标而努力工作,可以极大地降低工作中的矛盾点。
那么目标一致就没问题了么,或者换句话说,一旦工作出了问题时经常会听到别人说,大家目标不一致。我极不赞成这种不负责任的说法,打个比方,一家饭店两个厨师他们的目标都是希望给顾客做最好的食物,但是在食材采购方面看法不一致,一个想做炸酱面有家的温暖回忆的味道,一个想做高汤海鲜面健康的选择鲜美的口感,难道他们的目标不一致么。其实,不论饭店推出哪种面,最终可能都会让顾客满意,很明显他们的目标是一致的。
目标一致,为何冲突?
我觉得这要从人说起,每个人都是有差异的鲜明个体,大家一起构建了丰富多彩的文化。不同的人有不同的人生色彩和内心想法,有的人感性有的人理性,有的人对质量敏感而有的人却对细节敏感。公司正因为有这些鲜明而又优秀的人才,才如此强大、特色、突出。
所以,作为领导,要容忍这种冲突现象,在不影响产出的情况下,尽量尊重每一个人的特点。再深入一些,工作分配上对不同人可以有不同的侧重,发挥其特长。切不可以,一概而论地认为大家目标不一致,甚至认为员工脱离了公司的宗旨,工作上的冲突总比工作上的逃避好,一个有冲突的人,至少内心是有想法的人,只要加以重视、充分沟通,提升大家的心理素质和对待人事的态度,自然就顺了。
在大学,有很多介绍代码结构、项目架构的课程,比如设计模式。在写代码的时候,大家往往注重框架、模块、结构化、耦合性等问题,这都是优秀程序员需要具备的品质。
但是,我们写的代码都是对的么?
这是一个很重要的问题!!!这个问题将会引导我阐述一个奇葩的结论!!!
答案是,我们写的代码往往是错误的。先不要急着反驳我,静下心来回忆下,有没有哪次项目开发你所写的代码,一次提交就成功了,然后不需要修改便上线了。很明显,我们在项目开发中,从来没这么顺畅过,代码被不停地修改甚至重写。有时因为需求变化,有时因为系统升级,有时为了修复一个bug而进行大改动,我们很多时候都在不停地改代码。
代码本身有几个特点:
1. 每当我们创造了一行代码,便多了一行维护,直到这行代码被删除。
2. 被调用的越多的代码,越容易频繁改动,却越难改动。
3. 调用了大量第三方API的代码,依赖关系复杂,越不稳定。
4. 项目越大,代码越分散,代码拷贝现象越高。
很多人对代码维护都很头痛,每当有新的产品需求,需要对现有代码做改进,经常会听到这样的声音“这块代码我们需要重写”。
很多代码吐槽,其实都是我们一手造成的:
1. 功能需求删减,遗留大量垃圾代码。
2. 对一个模块不停地修改,产生复杂、臃肿的逻辑分支。
3. 最初实现了一套复杂的功能,但是随着功能的简化,代码却没有变,依旧复杂。
4. 代码处处扩展,牵一发而动全身。
我的建议是,我们对代码需要不停地拆分,拆成很小的块、独立的块,写容易删除,而不容易扩展的代码。
现在,我每天的的工作主要是删代码。
Leave a Reply