软件开发人员如何摆正同软件公司的相关利益
目前很多软件公司在实际软件开发过程中,软件开发项目管理人员第一头痛的事就是,软件开发人员作热情不高,投入程度不够。
假设每个软件开发人员都自觉遵守职场里的规则,那管理难度要相对较低。但很多时候软件开发人员有可能缺乏一些基本的共识。对于很多人来讲,可能基本思路是:打工不过是谋生的一种手段,明天我还不知道在那里?这也就导致了,软件开发人员对软件公司没有归属感,进而责任感及主动性这类东西相对欠缺。
中国软件产业处于整个产业链的下游。软件外包和系统集成是软件产业的主题。这个大背景就决定了很多工作确实无聊。就好比微软不可能把内核软件外包出来一样,很多时候软件外包出来的东西,往往重复性较强,趣味性较差。有的软件公司把软件开发人员等同与工具,本就没什么长远规划。对于原因一,二事情尚有可为之处,如果真实原因是原因三,那就非项目级别可以解决的事情了,也许更好的办法是换个公司。
在特定的时间点,特定社会环境下,有些现实只能接受,而很难以软件开发人员的力量使之改变,比如产业环境。这个时候,对于软件开发人员,最为关键的是自身的选择。任何软件开发人员,都有选择一个公司,选择自己工作的权利,发现自己的选择不当也可以放弃,这都无可厚非。
但选择之后,却只是浑浑噩噩或者怨天尤人,那就一定是错的,其结果只能是白白的浪费青春。所以如果问题的原因是一或者二,那么管理者的第一个责任是让大家认清自己的选择。接下来则可以参照韩非子讲的法术势来开展自己的工作。
法即大家约定遵守的规则。这里的关键点是一定要大家都确实同意。确实同意后,这份规则事实上相当于软件开发人员间的一份承诺。术即临时的应对措施。比如批评,惩罚或鼓励。批评,惩罚这类事情要以法为根本,无疑地违反自己承诺的人是应该受到批评的。势么比较微妙,这里就不说了。在做上面这些事情的同时,不要忘记了管理的基本原则:真诚的坚守双赢哲学。
要努力规划软件开发人员发展远景,帮助软件开发人员切实成长。与此同时有两件事情一定不能做:第一是单纯的使用大棒政策或放任自流。大棒政策的简单描述是,我让你干什么你就干什么,不干的话或干不好的话,立刻就罚。罚的方式自然可能有很多,降低评价等级,批评等等。
从短期来看,这几乎是唯一能迅速见效的方式,但实际上这是在牺牲长期的利益。这种方法下效率降低,优汰劣胜(与优胜劣汰相反)几乎是一种必然结果。与此相反,另一种极端是放任自流,试图维持一团和气。这样一来,团队的氛围尚可,但却没有战斗力,平时的时候趋于散漫,不从细处着手,日积月累,最终就会成为大问题。与此同时人员没有成长。长线来看,最终同时损害软件开发人员和公司的双重利益。
在传统行业中似乎有计件工资这样的说法,而十分偏爱量化管理的人往往试图用某些数字直接对软件开发人员进行度量。这么做并非完全不可行,但对于软件开发而言,这么做是危险的。在前文曾经提到过,作为概念和逻辑集合的软件,其度量本身存在着非常大的模糊性。
比如说,如果以生产率 = 规模/工作时间来度量软件开发人员,并且使用代码行作为度量单位的话,有可能会出现反常的情形。比如完成同样的功能,优秀代码的行数可能比质量稍差的代码的行数要少,这个时候如果耗费时间相同,那么表面上看来,反倒是优秀代码这一方的生产率较低。
但以生产率,Bug率这样的指标对人进行度量,其危险性还不止在于数字自身的不精确。而在于一旦把这些数字通考评等牵涉软件开发人员切身利害的东西关联在一起,那么这些数字自身的不精确性很可能会被放大,进而导致更大的不公平性。代码行,工作时间,甚至Bug数这些关键性的度量指标,软件开发人员其实可以对其实施非常大的影响,而这种影响通常很难作为一种干扰数据的因素被排除出去。