软件开发公司管理混乱往往是对软件开发人员职责和角色划分不清
职责和角色不清楚往往是造成软件开发公司管理混乱的一个重要原因,一个软件公司必须根据公司规模的不同和软件开发软件开发项目本身特点对软件开发人员的角色和岗位进行明确的划分,这样软件公司中的每个软件开发成员才可能有清晰的责任和目标。
软件开发不管采用哪种生命周期模型和开发方法论,整个过程都会包含需求,设计,开发,测试,等各项活动。而这些活动会对应到软件开发项目中的不同角色,软件开发项目中进行岗位划分后每个岗位成员可以兼职多个角色。形成相关的角色岗位矩阵。
对于小作坊的软件开发公司,可以由一个软件开发项目负责人总览全局。软件开发负责人承担从用户需求->软件需求->总体设计的所有工作。同时还需要做到整个公司进度规划,质量保证,配置管理和沟通协调等相关工作。所以小型软件开发公司对软件开发项目负责人的业务,技术和沟通管理等技能都要求较高,软件开发项目负责人是软件开发项目中的总体方案确认者和架构师。软件开发项目负责人能力和技能往往决定了整个软件开发的成败。
我们这里指的小型软件公司并不是只一个人单打独斗的软件开发项目,所以软件开发项目负责人最好不要介入到模块设计和编码活动中,而是应该把重点放在进度的控制和质量的保证上面。由于软件开发项目负责人一般有较强的技术能力,所以软件开发项目负责人可以承担软件开发项目中要使用的一些新技术的研究,软件开发项目中一些疑难问题的解决等相关工作。软件开发项目负责人还应该有计划的设计开发人员的代码进行检查,对发现的规范性,性能,复用差等问题跟软件开发人员确认,并写入到软件开发项目开发规范中。
对于软件开发公司发展到5-10的时候,软件开发项目中的测试工作必须专职化的由测试人员来完成。一般测试人员的配置比例为4-6个开发人员需要配置一名专职化的测试人员。测试人员站在第三方和模拟使用者角度来进行系统的测试,可以更好的发现系统的BUG和相关问题,有效的保证系统的质量。
软件开发项目经理不在承担软件需求和架构的相关工作。而重点放在软件开发项目内外的沟通协调和整个软件开发项目进度计划的安排上。这个时候软件开发项目中的设计负责人对整个系统的总体设计方案和架构负责,而且设计负责人也将不在参与具体的功能模块的设计和开发工作。设计负责人的重点转化到的软件需求的开发和总体设计上面(如涉及到RUP中的用例建模,用例分析,架构设计,组件接口复用)。
当软件开发公司的规模发展到12-20人的时候,软件开发公司基本上可以算做中小型的软件开发公司。这个时候软件开发项目经理完全专职化做软件开发项目管理的工作。包括软件开发项目进度计划制定,软件开发项目跟踪监控,风险分析和控制,软件开发项目度量分析和决策等相关内容。对于需求活动设置专门的需求工程师岗位来完成需求的开发。同时软件开发项目中设置专门的架构设计人员,架构设计人员不再负责需求的开发工作,而重点在于系统总体设计方案的确定,系统的4+1视图的分析,同时架构人员要考虑整个系统的集成方案的确定和具体功能单元和模块的集成。
由于软件开发项目规模的扩大,软件开发项目的配置项更加复杂,软件开发项目也需要同时起开发,测试,集成和BugFix等多个分支。因此需要设置专门的配置管理员来进行软件开发项目的配置管理。
对于软件开发项目同时需要开发新版本,又需要对已经发布的维护版本进行功能改进的时候,软件开发项目中要考虑设置专门的维护人员。由维护人员来完成软件开发项目小功能的改进和BUG的修复。这样新版本设计开发人员可以更专注的进行新功能的开发。