比尔·盖茨认为,许多公司常会雇用一些在工作中不愿受纪律约束的员工,它带来的后果便是这些人不得不经常经历痛苦的试用过程。微软的开发员和测试员由于自身优秀,常不喜欢翻阅软件工程方面的科学文献,这样,一些其他公司在好几年以前就觉得很重要的软件开发方面的做法,由于信息闭塞,微软却很迟才发现,以至于痛失许多良机。
针对这一情况,比尔·盖茨在这方面做了很多工作并有了较大的进步。比尔·盖茨明白,员工都很优秀,但他们不愿受人支使,不过他们很乐意被引导着去发现该如何去做。于是,公司可以想出一些主意让员工自己寻找更好的办事方法,而绝不应该命令说“你必须选择这样的过程,你必须这么做”,这肯定行不通。只有推进员工坐下来进行探讨并找出解决问题的方法才是合理的现代化管理模式,在微软公司内,你绝对不应该采取独裁式管理。
随着微软公司的发展壮大,领导们引进了许多政策来避免各小组的重复作业。“回顾创业之初,许多员工确实不需要规章制度的约束。现在情形改变了,有必要引进一些新做法来适应新的变化。微软公司不会给下属下达命令说:‘你必须这样去管理你的开发组。’他们会发挥一流职员的主观能动性,使他们尽展创造力。”
比尔·盖茨一直支持规范程序管理的决策,尽管这是对他所喜好的工作方式的一次大变动。在公司早期,他经常几乎重写微软所推出产品的每行代码,同时还管理产品的市场营销。但到20世纪80年代中后期,盖茨管理所有事务已经不可能了。他同意建立正规的工作种类,比如产品经理处理市场营销事务,而程序经理的工作介于市场营销和产品开发二者之间。但盖茨并不想让程序经理与开发或营销工作截然分开,他想让程序经理如同吉布·布鲁门萨那样与开发员在小组里并肩工作,使二者相得益彰。盖茨深信,如果没有这种职责交叉与密切合作,各部门职能截然分开会导致失败。
比尔·盖茨指出,我们过去没有程序管理一职,而开发员不喜欢做繁杂的文字工作,并且不愿意参加讨论市场营销的冗长会议。于是最终出现了一种新的技术组合,一种非常有影响力的技术组合,它能处理所有繁杂事物。公司现在也有了程序管理一职,虽与我们策略不同,但我认为全行业都已认识到这是一个重要的办法。程序经理与开发员每天一起工作,这是所有事务中最密切的关系——比开发与测试之间的关系、市场营销与销售对象之间的关系更为密切。你可以将程序管理与开发置于同一经理的管理之下。
事实上,只要找对了人选,就能配成小组。微软就是这么做的。现在,在新项目初期,程序经理与产品策划者密切合作以确保每个新产品都有与众不同的“特色”。他们一起撰写产品规划书,这份规划书集中了从开发员、客户支持人员直到包括盖茨等高级经理在内的所有人的智慧。接着,程序经理开始撰写产品规格说明书,它以提纲形式描述产品的不同特性。这份说明书随着程序经理与开发员讨论产品特性的细节和建立产品原型的过程而不断扩展充实。每位程序经理通常管理几个特性的开发,因此,常在几个特性小组里工作。
在许多公司,通常有软件设计员(有时称为系统分析员或需求工程师)组成的独立部门,他们负责为其他从事产品制作的人员(像程序员、执行员和代码员)做好产品功能设计。
通常设计员负责设计一项新产品并且他们的工作局限在项目的这一初始阶段。而微软人则多次声明,在微软,程序经理并不是这种意义上的设计者,相反,微软程序经理的工作从始至终贯穿一个项目的全过程。因为他们设计的规格随着产品制作的过程在扩展、在变化。这样,一流的人才得到了充分的发挥,而他们的成果同样也在程序经理的指导下得以不断总结和变化,微软终于建立了最适应人才特点的程序管理制度。