在软件开发者灵魂深处的三种角色
我意识到深藏在软件开发者灵魂深处的3种角色-伟大 的艺术家,可以依赖的工作者,还有自私的实用主义者。 伟大 的艺术家 如果有一个声音对你说,“你不能画画。”那么你应当竭尽所能地去画,让那个声音消失。---梵高 第一种角色是伟大的艺术家,他让程序员勇于面对有挑战的工作,尝试新的方法和寻求自我实现。这种角色给予我们力量和欲望去创造艺术性的结果,并通过学习和实践不断进步。伟大的艺术就在最好的软件之中,它让开发者跳出思维局限,最求简洁的代码,忽略与问题不相关的事物。这是一个充满力量的角色,但在平日的事物中同样充满着危险--并不存在任何可预测性的东西或是保证,程序员会记得客户所真正需要的。被这种角色所驱使的的开发者将会拒绝平凡的,但看上去不错的解决方案,他们会按照自己的方式去做,并且远超过工作所需。开发者对丑陋的代码没有任何忍耐性,在发布demo之前,他们会花上整晚在代码重构上。。。。在测试员回家睡觉之后。
可以依赖的工作者 没有任何一个人是完全独立的,每一个人都是整体的一个组成部分。-约翰邓恩 第二种角色是可以依赖的工作者。他把团队,公司,客户的利益放在首位。开发者因为被这样的精神所驱使,他们将致力于完成成功的项目和伟大的产品。 压抑创造力和自由地编码在管理上是不被推崇的,并且可能会失败。开发者会到很晚才完成开发。并修复那些莫名其妙的软件错误,他会在测试者确认管理员安装好软件后再去测试。这样无私的精神使得开发者被关注,能够肩负责任,并能遵守公司的纪律,但有时候也会产生压力,不安更重要的是浪费了开发者的天分。
危险之处是如果公司没有关心开发者的努力工作和他们的牺牲,他们的激情将会迅速消失。
自私的实用主义者 生活就是当你在计划别的事的时候,现在的事发生了, --约翰.列侬 自私的实用主义者更注重个人的兴趣,薪资福利,工作的安全,还有职业的成长。这种角色会驱使开发者接受胡说八道(注:原文为accept shit),并且非常关注自己的薪资,和管理者的认可,这样的人会随着成家立业和个人问题取代了开发伟大的软件和每天从自身剔除对工作的奉献和忠诚。 被这样的精神影响的开发者时常会对自身的成长更有利的素质,也会编写一些混乱的代码以获得更好的工作保密性,为了更长的合约增加事情的难度,或是工作于自己的项目和事业,或是毫无目的地在网上浪费时间。 这样的精神被一种自然的欲望所充满,这使他更想要去实现个人的目标,,使自己的未来更加保密和安全,并且拥有工作之外的生活。这种精神的危险之处在于他会使开发者把事情变得事倍功半,并且不去关心项目质量和公司长远的成功。
每一种角色都会有积极的影响:伟大的艺术家给人以激情和力量,可靠地工作者鼓励人们遵守纪律并注重结果,自私的实用主义者则更让人接触懂啊自己的兴趣。但是他们也各有不好的影响:伟大的艺术家总是是做得比较过分,并且会忽视真正的需求,可以依赖的工作者会引起灾难,并且会害怕改变,自私的实用主义者会淡化公司的概念而只注重最有趣的事。 三种角色撕毁了很多可怜的开发者的灵魂,并且打破了他们心中的宁静,这些角色互相斗争的最终结果通常是什么呢?我所见到的开发者通常到最后只剩下了一种角色(不幸的是这个角色通常是自私的实用主义者),之后也不会有什么挣扎和改变。其他的开发者可能会根据环境徘徊在几种角色之中:一些公司会激发开发者的伟大的艺术家角色,一些公司则会抵制自私的实用主义者。 以上的这些都是通过我主观地观察和理论所得到的,但是它可以用来解释很多软件开发团队在开发过程中所产生的一些现象。亲爱的读者,我有一些问题留给你。 你同意三种角色共存的说法么?你能很好的平衡他们么?我是否忽视了在软件开发者灵魂中的其他角色或是力量呢?