大部分从事软件开发的年轻人都秉承“不想当将军的士兵不是好士兵”,认为coding是青春饭,leader、manager才是出路。但他们不知道编码、设计、分析、管理之间是金字塔关系,管理属于塔尖,就象工人、车间主任、厂长和老板之间的金字塔关系一样,老板毕竟是少数,工人才是绝大多数,而且拥有技能的顶级技工,其社会地位和经济收益并不比一些老板差。所以塔尖、塔底并没有绝对的优劣之分,塔尖也不一定就是塔底的出路。
当然从基本素质能力来看,具备编码、设计、分析能力的leader、manager,其职业的选择空间、发展空间显然会更大,正如本科水平的工人和初中水平的工人之间关系一样。
什么是(项目)管理?
一般一个项目小组最小建制是5个人:2个开发人员(方便代码走读,同时也是互备)、1个测试人员(兼需求分析角色)、1个设计人员、1个项目经理(兼分析师角色)。这里的项目经理就是所谓的leader、manager,其不仅需要协调项目组内、外的关系,还要控制项目进度、组织各类评审;随着项目组规模的扩大,项目经理的组织协调工作量会更大,这个时候可以增加一个助理,将一些日常的事务性工作分担过去。
在以上的项目小组内,设计方案的合理性评价由谁来做,即是不是还有更优的设计思路?如果设计人员和开发人员产生争议,如某项设计是否可以通过编码实现?开发人员的技术实现是否还可以优化?诸如之类,这就要求项目经理能够高效、及时的解决这些问题,显然,只要项目经理在需求、开发、设计、分析等领域中缺少任何一个环节,都会影响到这个环节相关的问题解决。
上面提到的只是一个项目组的管理,实际上一个软件企业内部有很多项目组,还有很多支撑部门(如行政、财务、市场、销售等),因此除项目经理外,还有很多不同层级的管理人员。从软件开发角度看,还有两个比较重要的管理岗位,一个是技术总监、一个是研发部经理,其中技术总监主要负责全公司的产品分析、技术策划,研发部经理主要职责是支撑部门内部各个项目经理,是项目经理的经理。
综合以上,开发人员、设计人员、分析人员、项目经理、研发部经理、技术总监共同构成了软件企业的研发体系,不同岗位的职责互不相同,但能力向下兼容,如技术总监可以承担研发部经理的角色,但研发部经理并不一定具备技术总监的能力。
网友评论