从大学(软件工程)毕业后直接来到日本做了三年的项目管理,记录下自己的一些对项目管理的感想和对在大公司工作的方式的反思。
  项目管理,技术重不重要:
  在日本,特别是在我这样的大公司,你可以不必精通某项技术,但是你必须知道这门技术,以及这门技术相关的其他技术。
  比如你是一个iOS应用开发项目的管理,那么必须知道iOS开发中常用的storyboard怎么用,MVC模式是什么意思和这个模式落实到代码后整体的构成会是什么样子。这些能让你知道那些写代码的人到底有没有按照你的想法在推进项目以及如何正常的交流。在日本做项目管理比较舒服的一点是不会发生工程师和项目管理的冲突,或者说是明显的冲突。因为大家的业务范围都很明确。
  再比如,如果你的项目会和服务器通信,那么你必须知道SSL三次握手发生在什么时候,中间人攻击的原理,服务器除了数据储存和发送还能做什么。在有了以上的基础技术背景下,你要开始研究你的功能需要Apple官方的什么API支持,在这里你不需要这些代码具体到项目中是如何写,参数如何传递。
  对于项目管理,还有一个很重要的能力是快速学习和理解能力。因为你这个月做了iOS开发下个月可能是服务器开发了。
  那么做项目管理到底有没有必要精通技术,我认为是有必要的。因为代码的世界,出现问题是很常见的。而你对于这些问题完全没有解决能力,知其然而不知其所以然是很危险的,这个不仅会影响项目进度,还有花很多精力去处理。
  一个简单例子,我同事的一个iOS应用项目,整体开发快结束的时候出现了和服务器通信时掉包的问题。开发人员一脸懵逼的表情告诉他不知道怎么办。这个时候有两个解决办法,第一花钱再请一个更的团队来帮你,第二自己解决。很明显第二个更加节约时间成本和花费。但是你没有相关知识一切都是幻想。
  所以作为一个应用开发项目管理,如果能够全面的掌握自己项目所需要的技术而不是精通也可以顺利的推进项目,甚至不用自己亲自去写代码和检查代码,但是我认为拥有良好的代码基础会让你在团队中游刃有余。
  刚来日本时一边学习日语一边适应他们的工作方式,虽然是刚毕业但是仍然要作为项目领导一样全方位看待项目(可以不管代码)。但是随着工作的逐渐熟练,当我开始将具体代码细节也放到工作中内容中发现和编码团队的交流更加的顺畅了,风险控制也明显的提高了。基于文字的交流直接换成代码,对问题的掌握和解决方法的及时提出也都更加简单。
  所以我认为,作为一个项目管理,你的代码功底不能差。你可以不必知道落实到具体代码的业务,但是如果有问题你必须知道如何才能解决问题。还有问题可能出现的时机,也是常说的风险控制。