软件开发很少是个人的行为,所以一个团结的小组是任何重大项目取得成功的至关重要的因素。
说得客气一点,软件开发人员在按时交付工作上的名声不太好。造成这一状况的一个重要原因除了各个开发人员的“贡献”之外,还有小组管理过程的懈怠。在合同制开发员工增加和更多地利用海外开发公司的情况下,小组的团结变得更具挑战性。
因而要在预算范围内按期交付符合规范的软件,小组的有效管理成为了重要的因素。
专家同意说建立小组重要的一个元素是沟通。“沟通对于满足业务目标是重要的,”IBM ANZ的Rational技术主管Richard Dowling说。除了每天的信息,开发人员必须清楚地了解整体的目标。
“一个高效的开发小组朝着一个共同的目标携手努力,为了让员工理解和共同分担业务目标,主管们需要业务的方向进行沟通,并解释每个个人如何为(公司)更大的前景贡献力量,”冠群(Computer Associates)澳大利亚分公司负责研究和开发的副总裁Eugene Dozortsev博士说。
这并不总是一项轻松的任务。“在软件生产商的商业要求和开发人员的创造力和质量之间取得平衡是一件相当棘手的事情,”Altiris公司亚太区副总裁Geoff Masters说。这家公司还在美国和澳大利亚开发系统管理软件。“开发小组很容易偏离目标,并且很轻易陷到技术里而不是终目标上。
在这一方面打破平衡也很重要。“过多的小组参与反而降低生产效率,并导致多数人都同意一个没有明确目标的设计,”Masters警告说。“这增加了无法交付所需产品或者交付延期的风险。两者对于业务和员工士气都是有害无益的。”
一旦具体的技术开发规划开始之后,沟通变得更为重要。“开发小组内部共同达成一致的过程对小组的动态和表现的影响与该一致本身同样重要,”Internet发展代理公司Red Square的高级分析师Steve Baty说。“让项目小组成员参与到开发项目的策划和规范制定阶段里来是激发其动力实现项目成功的好方法,这将促使生产效率和成员责任感的增加。”
一旦工作分派下去,你要如何确保员工取得好的结果呢?一种可能性是任务的高度具体分化。“我们的软件是模块化的,这意味着我们具有给具体模块分配单独的程序员的优势,”Debra Asciak说,他是消息发送解决方案开发商System Solutions澳大利亚分公司负责技术服务的主管。“这些程序员在为我们工作期间专门为这一模块服务,因此他们对其操作和错误的清除负有完全的责任。通过把任务变成个人的任务,我们发现编写的、可靠的代码成为了他们自己的利益所在。”
在这样一个分割化了的环境里,建立一个高效的小组需要技巧和关心。一个很重要的考虑因素是创造一个轻松和灵活的工作环境。
“对内对外沟通良好、交往融洽的开发小组往往在工作上很容易实现轻松和高效,”Masters说。“像小组所处的位置这样的小事情也会带来巨大的差异。如果你有两队密切合作的小组,比如开发小组和组件测试小组,那么安置他们的佳位置是大楼里相邻的两间办公室里。有些人可能会觉得这样会分散人的注意力,但是如果你有好的员工,信息交流的增加和通过相互渗透的学习所带来的好处会超过其负面影响。”
评估小组成员的个性和发现可能存在的问题来源也十分重要。“让小组里充满不同的个性也很重要——你需要至少一个‘角色’来给小组带来士气,但是这个人仍然是小组的一分子和动力十足的工作者,这一点很重要,”系统集成商Attain IT的技术主管Robert Silver如是说。
“小组不团结的一个大原因是某个个人没有贡献自己的力量或者没有按规则办事,”Silver说。“尽管无伤大雅的玩笑和争论以及偶尔出现的不一致对于小组来说是很好的,但是当小组里的某个个人失去了对小组其他成员应有的尊重时,将它从小组里清除出去是很重要的。”
合同制的挑战
开发项目里合同制员工的增加为管理增加了另外一种挑战。“对于固定的员工,你正在花时间致力于建立一种文化、培养这些员工、发展开发人员之间的关系,以帮助推动协作和小组工作,”Avaya澳大利亚实验室的主任Quentin Goldfinch说。“而对于合同制员工,这种关系的构建在优先列表上的位置没有原来高了,因为它们更换的速度相当快。”
这并不是一种感性的方法。“那些雇用合同制员工的公司也可以从他们身上学到很多东西,”Goldfinch补充说。“合同制员工常常会因为其工作的性质而在工作的过程中学习到宝贵的经验,并能接触到更大的工作环境、流程和技术。”