第二章 程序员与程序经理工作在第一线的软件开发人员是程序员和程序经理,他们决定着软件的命运。良好的程序员队伍和杰出的管理是软件项目成功的必要条件。管理不是管制,不是去卡住人家的脖子,由于程序员不是一群野鸭子。管理的目的是让大家一起把工作做好,并且让各人获得各自的快乐和满足。当一种组织被杰出地领导时,雇员甚至不懂得他们已被领导。在项目完毕时,他们会自豪地说:“看看我们通过努力获得的成绩吧”。因此管理者不能老惦记着自己是一种官,而应时刻意识到自己是责任的重要承担者。我们常常会听到有经理头衔的人在高谈阔论:“编程我不会,做个项目还不 easy?派个人去搞系统分析,回头再叫几种程序员把需求译成程序,不就 OK 了吗?”不懂英语的人准以为 easy 和 OK 是贬义词。要让软件项目失败很容易,只要符合下列条件之一即可:(1)项目经理对软件一无所知;(2)技术负责人对编程不感爱好;(3)真真编写代码的程序员是临时雇用的。假如上述三个条件同步具有,就请放心失败好了。让我们少幻想自己是比尔·盖茨,先当好程序员和程序经理再说。2.1 了 解 程 序 员初期的程序员干活能从软件直通硬件,个个生猛无比。又因他们的作息时间、言行举止与常人不太同样,久而久之就给人们留下了“神秘”、“孤僻”的印象。如今软件行业被炒得热火朝天,有能耐的程序员即便躲在大山岙的军工厂里也能被挖出来。而更多原本不是程序员的人操起几本“速成”、“二十一天通”等书籍也加入了这个行业。目前国内号称有上百万程序员,这支大军鱼龙混杂,已搞不清那些是正规军,那些是民兵游击队了。真正的程序员均有如下秉性: 一、诚实程序员在学习与工作期间几乎每天与机器打交道,压根就没有受欺骗或欺骗人的机会。勤奋的程序员在调试无穷多的程序 Bug 时,已经深深地接受了“诚实”的教育。不诚实的人,他肯定不想做、也做不好程序员。有一名市场营销员和一名程序员都在新闻公布会上发言,将一项新技术的消息公布于众。市场营销员说:“这项技术比电话、晶体管和原子弹三项发明加起来对世界文明的影响都要大。”程序员说:“这项技术在有限的领域内,在有限的程度上,处理了某些技术性的问题。”看来为了让我们的民族愈加诚实,学电脑真的要从娃娃抓起。二、简单——实用主义有人问一种数学家,一种物理学家和一名程序员:“一种盒子有几种面?”数学家回答说:“有六个面,由于盒子是长方体。”物理学家回答说:“有 12...