前言
?????? 该组织结构的设计目的为了解决以下问题:
1.???????? 解决经验丰富的管理设计人员缺乏的问题;
2.???????? 使公司能够尽快建立系统有效可持续发展的项目管理体系、开发规范、质量保证体系;
3.???????? 解决职员的职业规划问题;
4.???????? 解决项目计划薄弱的问题;
该组织结构的设计是为人员在50人以下的处于发展阶段的小型软件企业而设计。
组织结构
各个组的职能划分
?????? 为了解决经验丰富的管理和设计人员缺乏的问题,将公司的人员以共享的形式划分,从图中可以看出,大项目组、质量过程保证组、业务分析需求分析概要设计组、小项目组之间都有交叉的部分。
大项目组
大项目组由大项目经理、高级业务分析师、构架设计师、市场部经理组成。高级业务分析师的设置主要是考虑很多小型软件企业都在做行业软件,需要业务方面的专家,对于非行业软件企业,可以不需要这个职位。软件企业本身是一个技术含量较高的企业,设立构架设计师能够在很大程度上帮助公司分析项目的可行性。市场部经理设立在大项目组中,能够有效防止市场部单纯的为了接单而忽略了与其他组之间的协调性。
大项目组负责公司所有项目的计划控制。市场部是否能够接新项目、什么时候需要接项目、能够接多少项目都需要在大项目组综合分析公司的资源配置、目前项目情况等风险之后才能决定,也就是说需要严格的计划做指导,即使是变化也要有计划的变化。大项目组在大项目经理的领导下首先对新接的项目进行统一规划后,再分解成小项目交由小项目组进行控制。在这个从大项目到小项目分解的过程中除了计划控制之外,重要的一点就是对资源进行统一规划,这里所说的资源除了人力资源、设备资源、资金之外还包括对已经完成的项目进行分析,挖掘其中可以再次利用的地方。这种方法能够提高设计高度可重用类或组件的水平。为了避免权力过于集中,由高级项目经理、高级业务分析师、构架设计师、市场部经理组成的大项目组共同向总经理汇报项目工作情况。
让大项目组承担所有项目的高层控制,主要是考虑到很多小型软件企业拥有较少能够指导项目组制定合理的可执行性较高的计划。这样可以将计划能力较强的人员抽调到大项目组。
质量过程保证组
质量过程保证组负责审核、开发规范形成、开发过程制定。在任何一个小项目组的里程碑处,都需要通过质量过程保证组的审核之后才能进入下一个阶段,其他一些小项目组的内部审核工作需要在质量保证组给出的规范之下进行。对于开发过程和开发规范,这是实践性非常强的问题,所以质量过程保证组与业务分析、需求分析、概要设计组之间有重叠的部分。开发规范和过程的形成需要参与小项目的高级成员的协助完成。
质量保证组应当在不同的开发阶段有不同的组长,在业务分析和需求分析阶段由高级业务分析师担任组长;在概要设计和以后的阶段由构架设计师担任组长。组长的主要职责就是在审核的时候做具有权威性的决定。
小项目组
?????? 小项目组由业务分析师、实施人员、系统分析员、高级程序员、程序员、业务员组成。实施人员和业务员是与客户交往比较密切且频繁的人员,让它们成为项目小组的成员,将非常有利于客户需求的捕获,而且增加业务员、实施人员与开发人员之间的了解程度,将大大避免很多沟通上的困难。程序员应当是小项目组中甚至是整个公司数量最多的人员,因为对于小型软件公司,这个层次的人员最容易招聘。
大项目组负责所有项目高层计划的控制执行,小项目组负责底层计划的控制执行。大项目组只有一个,而小项目组可以有多个。某一个小项目组可以负责对于某一个客户的项目,也可以负责某一类型的项目,或者负责多个小项目的公共部分。
?????? 小项目组又由业务分析、需求分析、概要设计组和详细设计、编码、测试、实施组组成,这样的划分可以使得为数不多的有较好的业务经验和设计经验的人员得以充分的共享。也就是说负责小项目组的业务分析、需求分析和概要设计工作的成员在进行完小项目组A的工作后立刻可以转到小项目组B中工作。
?????? 在作需求分析时设计到功能设计(界面原型),可以让程序员参与界面的制作。
职业规划
?????? 一个好的组织结构的设计应当充分考虑到人员职业规划问题。对于行业软件企业多数需要管理、技术、市场、业务四大要素,这四个要素相辅相成。在总经理之下的大项目经理、高级业务分析师、构架设计师、市场部经理就是这四个要素的直接体现。
?????? 项目经理在积累了较多的管理知识与经验后可升为大项目经理。
?????? 业务分析师可以升迁为高级业务分析师。
?????? 实施人员、程序员可以升迁到业务分析师。程序员转变到业务分析师主要是考虑到新加入的毕业生程序员还没有给自己做正确的定位时有可以选择职业的自由,在这个角色转变过程中,程序员可以先担任实施人员的一些工作后再转到业务分析师的职位。实施人员升迁到业务分析师是因为他们与客户的交往比较频繁,能够积累大量的业务经验,为其从实施人员到业务分析师的角色转变打下良好的基础。而且现在的实施人员很多都有或多或少的编程经历。在一个软件企业,业务分析师最好有程序设计的经历,因为现在的业务优化离不开信息系统,对计算机有良好理解无疑是业务分析师必须具备的条件之一。另外,实施人员也可以向业务员转变。
?????? 系统分析员可以升迁到构架设计师,但系统分析员也可以向项目经理过渡(这是国内目前的普遍现象)。构架设计师对于高速成长的行业软件企业来说非常必要,因为随着公司产品的运用面扩大,客户数量的增多,其他一些企业的系统也需要与公司的系统结合(比如很多企业的系统需要和SAP结合),这个时候一个良好的系统构架非常重要,而只有随着公司一起成长起来有着多年技术积累,且对公司的系统非常熟悉的技术人员才能够担此构架设计的重任。另外,构架设计师也可以转变成大项目经理(需要经过一定培训)。
?????? 高级程序员升迁到系统分析员。
?????? 程序员可以升迁到高级程序员,职业的选择对于程序员来说应该是比较灵活的,除了升迁到高级程序员,还可以向实施人员或业务员转化。
?????? 业务员可以升迁到市场经理。
?????? 在本文的职业规划中没有考虑到大项目经理、高级业务分析员、构架设计师、市场经理的再次升迁问题(这实在超出了小型企业的能力了)。
职位资格
?????? 程序员可以聘用刚毕业的学生。
?????? 高级程序员必须具有至少一年的编程经历,且需要得到公司的技术评定才能从程序员升迁到高级程序员。
?????? 系统分析员至少需要具备三年的开发经验,且需要得到公司的技术评定才能从高级程序员升迁到系统分析员。
?????? 构架设计师至少需要具备五年的开发经验,且需要得到公司的技术评定才能从系统分析员升迁到构架设计师。
?????? 实施人员需要有至少半年的编程经历。之所以有这样的要求,是因为现在的小型行业软件企业所开发的系统(或者说行业软件系统)的实施难度较大,对实施人员的要求较高,需要他们理解程序的基本原理、数据库知识、硬件知识。正是这个原因,允许公司内的程序员向实施人员转变。
?????? 业务分析师至少具有半年的编程经历和一年的实施经历,且需要得到公司的技术评定才能从实施人员升迁到业务分析师。
?????? 高级业务分析师至少具有3年的业务分析经历,且需要通过公司的评定。
?????? 其他职位不再说明。