iOS 团队管理

259 阅读8分钟

iOS 团队管理

团结第一,软件尤其明显, 软件团队不需要个人英雄主义 需要的是团队英雄主义

管理团队

管理团队主要是做什么事情呢?我认为主要是两件事情:招人和带人,所谓的搭班子和带队伍。

招人

招聘这事情必须要团队负责人参与。人才的招聘除了从公开的渠道收取简历、从猎头或同事那里得到推荐以外,还包括定向的找一些自己熟悉的前同事。内推总体来说比较靠谱

带人

人才招进来了,能否顺利融入团队,团队负责人以及这个人的导师非常重要。需要做的事情包括:

  • 平时多交流沟通。
  • 在新人遇到问题时,热心地解答。
  • 引导新人熟悉公司的工作方式

一对一沟通最主要的意义是:可以使得信息从下而上地传递。从而获得在其它渠道不易获得的信息,保证透明。

适合一对一沟通的内容有很多,包括:

  • 不成熟的看法
  • 迫在眉睫的问题
  • 精彩的想法
  • 倾诉焦虑
  • 抱怨

培养有潜力的人

认清团队成员情况

  • 独当一面(应急)
  • 打下手辅助(工作量太大)
  • 新技术和难点技术研究(学习能力强)
  • 效率高(开发速度快)

要确保团队中有这样几种人:

  • 有担当的人
  • 踏实肯干的人
  • 有冲劲儿的人
  • 有坚决执行力的人
  • 开心果儿

要学会妥协,用最小的代价换更大的收获
要让每个人每天都有事情做
出办公室不谈工作,不分大小

沟通

在项目实施中,需要结合产品沟通,下发到小组内部开发解决需求。可以每周开周会的形式,或者文档方式都可以保持需求消息同步。实时通知到每个人。

  • 周会:任务分配、当前进度控制、任务的问题所在、本周计划。
  • 邮件:消息同步(上到高管、老板,下到开发、测试)、备份记录。

一些适合用来引导的问题:

  • 当前产品还有哪些可以提高的地方?
  • 我们部门的最大问题是什么,为什么?
  • 如果有,你觉得工作中有哪一点令你感觉不舒服?
  • 你觉得谁的工作最优秀,为什么?
  • 我们的产品哪方面不尽如人意?
  • 我们错失的最大机遇是什么?
  • 哪些是我们应该做而没有做的?
  • 你自己希望未来在哪些方面能有提高?
  • 有什么我能为你做的事情?

一对一沟通的另一个核心要素是要坦诚. 坦诚的沟通方式是:所有问题都真诚的回答,不掩饰问题,也不回避问题。如果沟通双方能够做到坦诚,即使是一个棘手的问题,那么双方也会从「解决问题」的角度,尽量寻找可能的办法。

定期组织一些团队活动,让团队每个人之间建立友谊

什么是领导力

所谓领导力,就是创造这样一个环境,每个人都能在其中发挥出更多的能力。

管理技术

每个平台的技术管理可能都需要更多的「授权」,因为具体做事情的人,会比技术管理者更清楚地了解细节。而对细节的深入了解,才是改进技术架构的方案来源。所以,尽量招靠谱的人,那么在管理技术上的工作就只需要遵守「尽量授权」的原则来就可以了。

框架搭建和技术支持,难点问题解决

在框架搭建中,要将需求文档吃透,最好整理出来一个功能文档,之后可以得到,技术难点和工作量,从而方便人员工作分配。

  • 基础框架的搭建
  • 公用的代码库封装, 由专门的人负责
  • 帮助同事解决充电难点问题突破
  • 预研在项目中用到的新技术
  • 知识点的储备

Code Review 以及代码质量

  • 能让别人看懂的就是好代码
  • 代码规范:命名驼峰规则。类名TB前缀
  • 使用Code Review保证代码质量规范
  • 遵循框架的开发方式,不要打破框架规则。

Code Review 也是一个需要推动的事情,我们使用 Git 和 Gerrit,做到了所有的提交必须 review 通过之后,才能 merge 进代码仓库。另外我们也在 wiki 上规定了详细的代码风格要求。Code Review 如果做得好,不但可以在代码风格上达成一致,还能让新同事从中学习到一些良好的编程习惯,一些潜在的 Bug 也可能在 Code Review 中被发现,实在是值得坚持的事情。

学习新技术

推进 iOS 端的技术分享

学习新技术,是对我们的程序员,一个提升的方向,时刻关注着技术行业的新技术,在我们团队中,可以尝试使用新技术,但是有风险,为了安全起见,建议在初步使用时,不做为正式项目中,而是将已有的项目用新的技术去尝试。等熟练了,可以在新项目中或者后期更新中加上。学习新技术,不能让我们这个团队废弃掉。对吧,我们作为TeamLeader不能让队友停滞不前吧。

自我营销

  • 写技术博客
  • 发技术微博

相关文档规范的输出

在开发中,会使用一个写账号、地址、记录、版本等等情况,我们需要将其记录下来,整理成一个文档,并保存到公司服务器上。很多公司不注重这个,导致开发人员痛苦。工作起来不知所措。如果日后有人离职,接手的人也会很容易上手,大大提高了效率。时间过久,也会忘记,也会带来不必要的麻烦,如果公司需要申请资质问题,也有更好的交代。

管理业务

业务的管理工作主要是围绕着一个具体要做的技术开发功能点展开。具体包括:

  • 任务分解和分配
  • 制定大概的开发排期
  • 每天了解开发进度
  • 讨论和跟进各种具体的技术问题
  • 协调一些产品需求变更
  • 响应一些市场同事的需求
  • 跟进相关功能上线

开会

  • 计划会议: 比较合理的安排开发排期、分配任务。
  • 每日站会: 每天了解开发进度,会后讨论和跟进各种具体的技术问题
  • 评审会议
  • 回顾会议

在每周的工作中,管理业务的工作大概花费是 2 天左右。

工作分配

在团队中,每个人的能力不同,侧重点不同,可以根据每个人的特长进行工作划分。当然对应的任务也是不同。

认清团队成员情况

  • 独当一面(应急)
  • 打下手辅助(工作量太大)
  • 新技术和难点技术研究(学习能力强)
  • 效率高(开发速度快)

评估项目重要性

  • 重要着急
  • 重要不着急
  • 着急不重要
  • 不着急不重要

时间进度评估

时间进度评估,我们将项目划分成一个个的活动,每个活动有先后顺序或者同步进行,可以用图表的形式进行划分。还有资源估算,在资源齐全的情况下,根据图表的进度排期可以得出一个最长时间和最短时间。一般我们回报就回报最长时间。给我们一个容错处理的时间。

需要掌握的能力

  • 专业技术能力:这是技术管理者的立身之本,肯定需要不断精进,如果技不如人,是无法服众的。
  • 业务理解能力:对业务有正确的理解,甚至能理解到业务的本质需求,才能让技术实现价值。
  • 任务分解能力:技术主管承担着开发任务分解分配的职责,如果分解不当,漏掉了一些环节,就会导致任务的延迟、质量的不可控,为项目带来了风险。
  • 时间管理能力:管理者需要在有限的时间里高效地管理多种事情,自然就需要提高时间管理能力。
  • 团队建设能力:管理者的核心价值就是打造出一支优秀的团队。
  • 向上管理能力:向上管理没做好,会影响职业的发展,但切记,向上管理并不是拍上级的马屁。
  • 领导力:领导力不同于管理力,不能靠职权,而是靠个人魅力,建议尽早培养。需要明白一点,大部分技术人员更喜欢被“领导”,而不是被“管理”。

参考资料

《管理的实践》

番茄工作法