1.团队如何做决定
软件开发和软件团队的生存都面临许多问题,需要许多睿智而果断的决定,一个团队如何做决定呢?有下面几种方式,请评说各自的优缺点:
a)独裁:领导说了算
b)独裁+顾问:领导和一些外部的顾问商量之后做决定
c)民主投票:这样就产生了赢家和输家
d)全体一致同意后再决定:皆大欢喜?
答:
a)优点:有一个指挥领导人,方便管理和分工。
缺点:一旦领导人决定错误,就会导致整个项目团队跟着错误,也不利于项目的完善,缺乏沟通。
b)优点:有一定的领导性,结合顾问的想法可以更好的做出抉择,也避免了领导者个人的想法局限。
缺点:顾问毕竟是外部的,毕竟没有参与项目的开发,不知道项目的实际情况,难以让项目按着理想的方向开发。
c)优点:团队成员都可以发表自己的意见,也可以根据项目的实际开发情况来做决定。
缺点:一个团队必然有意见不合的时候,但是这种决定团队命运的事情,如果进行民主投票会引起团队成员之间的不和谐,发生冲突,不利于项目后期的开发。
d)优点:可以按着每个人的想法来进行沟通,这样既可以根据实际情况来决定,也有利于团队成员之间的和谐。
缺点:仅限于团队成员的沟通,会有点思维局限,缺乏一些专业的咨询,而且如果一直迟迟不能统一意见,那便会导致难以进行抉择,错失良机。
2.成长,责任,和公司的关系
绝大部分的工程师都在某一个企业工作,工程师的成长也和企业的兴衰有很大关系。企业兴旺,工程师也是与有荣焉,很多人觉得是自己的功劳,理所应当提薪升职;企业衰落,很多工程师未必觉得是自己的问题(我的代码很好的,都是经理、市场、老大的问题),很多人为了一些补偿和企业产生纠纷。
那么,软件工程师在企业中是劳动密集型的工人吗,还是有独创性的专业人士?他们对软件企业的成败负多大的责任?
答:
我认为软件工程师在企业中不能仅仅劳动密集型的工人,写的代码越多并不代表做出的贡献越大,所产出的代码需要一定的质量;也不能仅仅是有独创性的专业人士,因为如果你光想着创新,而不产出一定质量的代码,如何为企业做贡献,所有我觉得软件工程师应该既要产出一定量的代码,也要有独创性,两者兼得。我觉得对企业的成败要付70%的责任,虽然领导者的领导方向很重要,但是工程师的责任更重大。