文/kimix
这些日子,接触过几次这样的案例,我们有一个计划书,我们有一个 Idea,我们把脑袋想要的一切都写在计划书了,这是一份商业计划书,下一步就是执行,我相信有过这个经验的人,到这个步骤都会遇到一个问题,就是当执行后,发现执行结构和计划中的预期,有明显的落差。
为何呢?其实这是一个误会,这不是落差,而是事实上,黑科技并不存在,即便你认为他是最简单、最基本的功能,实际上,那只是开发出来的结果操作「简单」不是制作简单。
所以即便再简单的东西,都会有最「阳春」的时候,当然这和脑袋中的阳春定义是不同,换句话说,就算表面看起来很神奇的黑科技其实也还是需要从底层建立起,科技发展会帮助加速我们建设的时间,但是很多时候我们无法避免要度过这种尴尬的阶段。
而这时候管理工程师的角色就极其重要,在现在的管理团队上,这个角色一般是 PM 或 SM,即便有很多工程师不太喜欢 PM 或 SM,但是他的存在,其实就是一个翻译包,他需要翻译把商业目标转化成可执行并提供解决方案。
这个工作首先,必须要把商业计划书的内容,翻译成程式执行的过程,分析出难易度、可能遇到的问题、所需耗费的时间,某程度,就是要 Full Stack 工程师的思维,但是也要明白用户需求和商业需求,平衡一下利弊,权衡一下重要性和时间效益等等,这个时候我们要考虑不同岗位的同事,而不是仅仅想某个细节,这部分关系到时程和工作量的分配。
可是不难发现,很多 PM 或 SM 是不懂的 Coding,当然有的话可以节省一些沟通成本,但其实只需要搭配适合的工程师,配合一下和谘询他们的意见,日子有功,基础知识就会建立起来,如果你刚好要管理一个工程师团队,而你刚好不太熟悉程式,即便日子有功还是有几点值得留意的。
1,过去的经验不等于未来都可以参考,要知道科技的变化速度比你换髮型的时间还好快。
2,可以询问,不要怀疑。可以考虑,不要顾虑。
3,多了解不同领域的发现,可以的话学一下,不需要精通。
4,相信一句话,你不知道的比你知道的多,这样你才会有足够的量度听取工程师们的意见。
管理工程师的工作就是需要懂得程式并且能合理分配任务,考虑的层面不能只有时间和结果,还要知道风险和方案的选择。
负责人,不是控制人
管理是负责,不是控制,把任务分配出去之后就让工程师们自己完成,当然前提是必须按照彼此协定好的规则,例如编写习惯、代码风格、使用工具,管理人也是要做一些工程师不愿意做的事,例如写文档,跨部门沟通协调等等。
工程师最怕微管理,这只会打破他们的工作节奏和默契,而作为管理人最重要的是协助和观察帮助每个人都能达成任务。
资讯断层
这里说的资讯断层不是说教育,而是公司结构,软体开发是一个很有趣的事情,新科技带来的便利也是破坏和重建的过程,必然会有问题,可是大老板或管理人不懂这个道理,就如《谁「杀死」了诺基亚?两年后欧洲第一商学院教授找出了真相》一文所说的,中间管理层和高层有这个问题,团队成员和管理人也会有这个问题,试想刚刚的第一点,团队成员每个人或许都有自己专攻的领域,他们必定比你更熟悉,但是为求保险,推陈出新的科技往往不会被带入团队中,而最后的结果是什么,就是永远在用最保险的方法,做出一贯的产品,而领导再上头举起大喊创新的同时,其实公司真的有创新的空间吗?创新沦为口号,只是为了变而变,变成行销口号。
资讯获得有很多管道,管理者最喜欢的管道就是参访,参考别人的做法,那只是依样画葫芦,小猫学虎走,其实仔细想,那些值得让我们参访的公司,他们是参访谁的呢?我们为何不就能自己思考一下,为何不问问自己的团队呢,或许有些人会认为,成功管理的经验和值得我们学习,当然我是非常认同的,只是现在如果你要管教你家的孩子,你去问香港首富齐家之道,不会有人说你是不对,可是问题是,你不是李嘉诚;同理,去访问 google、去访问 facebook、问题是你不是 google、更加不是 facebook,甚至你公司还禁用它呢!
避免资讯断层我觉得是科技公司很重要的一环,和你一起共事的人最能明白自己家的产品优缺点,鼓励内部创意和小团队开发,能够增加趣味又可以改善产品,岂不是很好吗。
敏捷开发,不是敏捷变动
敏捷式开发不是这文章的重点,只是想快速的釐清,敏捷式开发不是说工程师的身手很敏捷,想要你怎么改就怎么改,所以不要误会,不要随意开出下周要,明天要,下午要的需求,Item(scrum 术语)最好是功能导向,目标产出,例如「看到我就自动开门」这个只是最终结果内涵却是非常多步骤,一个 Sprint 做不完的东西就不适合放(参考第一点,合理的分配)
结论
管理人最容易掉进自己的思维窄门,例如一个从小到老都种地瓜的农夫,有一天你和他说种苹果,他会怀疑为何不是埋在地上;一个善于用毒的人,行刺首先考虑的就是毒。当管理者在思考问题是以自己的背景作为考量的时候,基本上都是很危险的。管理者不能只专精一个领域,但是必须要知道怎样才是专精,所以管理者也真的不需要和团队比较谁比较专精,如同教练和球员,乔丹再厉害,也会有教练,但是如果你说教练和乔丹比赛,你觉得谁会赢呢?所以很多时候,角逐错的方向就会导致第三点,之后团员都不会提供新的资讯,反正都是管理者说了算。
竟然有管理方法,目的就是有效率以及有一套大家都认同的步调,既然使用管理方法,就不要有第二点的行为,临时起意破坏步调的行为。
当一个工程师,和管理一群工程师的差别是什么?
当一个士兵在战斗,那只是一场殴斗,
当一群士兵在战斗,那就是一场战争,
战争没策略,多兵也没有用。
如果企业不会管理工程师,再多工程师也是没有用。