在任何人的职业生涯中,第一次接受管理职位任命都是一个重大事件,因为它标志着从“做事的人”到“使事情完成的人”的转变。
Builder AU从一个在管理开发者方面拥有丰富经验的专家小组那里 寻求建议。
Phil Blythe——Magitek公司首席技术官,该公司主要针对分布式系统、分布式安全、网格应用平台和加密市场。他具有15个的IT业从业经验,管理一个由大约30名开发者组成的使用灵活开发工具的团队。 Jamie Danckert——Quest Software公司Oracle Monitoring for Foglight开发团队主管。他在一年半前开始接受这个职位。Danckert的团队主要开发Oracle数据库的Foglight代理、Oracle电子商务套件和微软的SQL Server。Foglight是Quest公司的监控工具。 Lee Davis——AdvaTel公司软件开发团队主管。他在2000年以程序员的身份加入该公司,于2005年提升为团队主管。他参与了QMC(呼叫中心报告)和PhoneEasy(办公室电话系统PC控制)产品的开发工作。 Jim Katsos——Quest Software公司领域专家。他已在Quest Software公司工作8年,初是一名低级开发人员。他在过去四年任技术团队主管,但近成为一名Oracle和SQL Server领域专家,并曾从事过Oracle Schema Manager、Spotlight on Oracle和Spotlight on SQL Server方面的工作。 Mark Smith——MYOB公司开发者经理。他拥有15年的软件开发经验,在HP(数据库报告)、NEC(SDH监控和管理软件)和Victorian TAB(实时投注系统)工作过。他在NEC第一次担任项目领导与管理职务。
如何实现过渡?
应该严肃对待进入团队领导层这个过程。
“小心谨慎关键,”Blythe说。他指出软件开发主要与决策有关,升入管理层需要你反思其他人的决策过程。除非他们极有天赋,否则团队成员总会犯错误,所以你需要建立发现错误的生产过程。
因此,在你担任第一份管理工作之前,首先与在生产过程(包括建立和修改它)方面经验丰富的导师型人物共事会大有好处,因为这种经历可为你提供遵照的范例,Blythe指出。从领导小型项目和团队起步也会有帮助,Katsos说。一开始管理大型项目会面临更大的挑战。
Davis警告说:“的程序员并不一定会是的经理,因为他们需要考虑的问题不同。”Smith称:“这是一个以人为中心的职位,但人们往往遗漏这一点。”虽然你在技术设计方面具有一定的权威,但你的主要责任是管理人员和赶上终期限。“对人们来说,这是一个重大的转变。”Smith评说道。
在AdvaTel公司实习——例如以程序员身份参加销售和营销会议——确实让Davis受益匪浅,但Davis指出,制定一个结构化的发展计划(可能包括正式的培训过程)可能是一种优势:“那是我想要拥有的事物。”
使程序员成为经理的品质
程序员是概念性的思考者,这也是成为经理的一个必要品质,但Smith也承认,一些程序员的思考方式比其他人更为抽象。有必要关注细节(如制订标准时),但为细节而心神不宁则是一种错误。
一些新上任的团队主管非常重视技术问题,由于他可能比较专制,这样做并不理想——一般来讲,代码开发团队在更加共享性的环境中工作会有更佳表现。
Blythe建议把管理工作看作是一种新技术:你需要时间来学习。“不要希望你一开始能学会,”他补充说。
如果是一名技术专家型官员,而不是一位沟通者,那么团队和组织都得挣扎着求生存。虽然一些人发现很难学会开放和民主化,但人事管理技巧可以通过正规培训来传授(MYOB使用Software Education提供的一个课程)。要成为一名高效的团队,你需要喜欢和人打交道,并通过与他们沟通来传达自己的观点。
两种角色在意识上的差异
你不再是一名程序员,Smith指出,因此你不能把全部精力花在编程或设计上。因为你乐于编程,这可能诱使你逃避新的人员管理工作,因而造成风险。
“成功的人[团队领导]了解人们的动机,”Blythe说。但Katsos指出,保持团队的快乐情绪会大大提高他们按时交付一款优良产品的机会。
除了指导和管理你的团队,重要的是,你还需要与内部顾客(例如营销、QA或设计部门的关键人物)建立关系,帮助自己养成一种大局观。关注组织的政治策略也会提醒你公司即将发生的重大转变。
Katsos对这个观点有更深入的理解,他认为你需要了解整个项目生命周期。除了编程以外,你还要承担QA、文件资料和其它方面的一些责任,即使你的团队并不负责这些任务。