有关软件Software生产模式的研究

  在我们公司软件Software研发体系中存在着 3种截然区别软件Software开发方式而我作为公司最老同事的也是这 3种开发模式亲历者曾不只被公司同事问过我有关这 3类方式的间异同点于是利用空闲时间对其进行番整理、分析和对比

  1、全能型

  部门经理在接到项目的后将此项目交给部门内熟练员后员就自动被委任其为项目经理(project manager)从此开始员将根据项目售前方案和销售合同内容在项目进行过程中分别担当起项目经理(project manager)、功能设计师、数据存贮设计师、员、测试员和项目实施人员等诸多角色并在项目进行过程中带领少量其它员和辅助资源来完成此项目所有工作

  此类项目其功能单且不复杂只是为了帮助用户提升某项工作工作效率或解决客户在其工作中些问题如工作日志信息采集和分析业务项目、办公用品申请和领用等它们其涉及范围小使用人员不多从而具有项目总费用少、开发和实施周期短、对性能要求不高特点

  在此类开发模式中员由于其工作全面性使他们在进入项目组后能够得到很快且全面提升并会在和客户交往过程中建立起良好客户关系处理经验为其今后成长和发展打开良好基础

  由于项目需要员需要掌握全面技能容易造成其在项目开发过程中需要全面接触项目管理(project management)及人际关系、需求分析、数据库及对象设计、人机交互和用户体验设计、系统设计和开发、测试和系统提升、应用实施和售后维护等诸多截然区别领域范围;所以作为此类其工作压力的大事务的复杂、综合素质要求的高是其它模式员所无法对比这也是造成此类项目按时完成率极低、尾款回收困难、项目售后工作难做、用户满意度差、 2次项目获取困难根本原因

  同时由于员被大量非开发性事务所干扰造成他们无法专心致力于专业技能学习和提升也就无法造就支高效率、高稳定性、配合默契开发队伍这也是造成公司内此类人才大量流失重要原因

  2、英雄型

  部门经理在接到此类项目后按项目所涉及领域范畴将其按领域进行分工以企业信息协同系统为例我们将进行如下分工:门户信息获取、聚合、交互和展现工作交给专职于门户开发员;内部邮件系统分析、设计、和实现将给邮件开发员;日程和事务设计交给日程开发员;工作流应用工作交由工作流客户化开发员等等

  在此类型开发模式中员将会是某领域内英雄式人物!由于他长期且相对稳定负责着这个有限领域范围内切事务可以帮助他在定时期内进行系统而稳定业务研究和分析工作进而成长为此领域内业务专家而且通过持续对其工作进行迭代式开发、升级和完善可使此产品在产品品质、适用性和用户体验等方面得到稳定提升进而提升了整个产品品质

  如果此领域内工作产品能够得到合理规划和实现进而将其进行单独封装、应用集成和推广就有可能形成个具有相当竞争力产品从而为公司获取新销售机会和利润点

  但是此类开发模式中分工也容易造成员涉及业务领域单和适应性窄缺陷:由于其长期面对和研究着单业务领域内业务活动而无法更多接收和参考来自于用户、企业和其它行业内非它业务发展需要和趋势从而对其在产品领域内发展产生限制并造成其产品方向上不准确或定位;由于其长期在单领域内工作并在此领域内获得了公司内认可这也将限制他在领域间流动性当公司或部门产品方向和需要调整和改变时此类员就需要被迫改变甚至放弃其在原领域内所有积累而重新开始从而造成巨大浪费

  3、专业型

  项目经理(project manager)在接到项目的后根据项目组成员能力、特长职业规划对他们进行适当且专业化分工:由业务规划人员负责项目需求收集、业务规划和需求分析;由系统架构师对系统进行技术构架和支撑性技术规划和引进;由数据库专员负责数据库对象设计和性能调优;由功能分析员在人机交互人员辅助下负责功能设计和人机交互模式;由业务逻辑实现专员根据功能设计进行高性能业务逻辑处理实现和外部接口设计和实现;由页面开发人员负责实现人机交互;测试人员负责对系统进行全过程测试和质量监督;专业化实施人员可快速高效进行系统实施和在线维护售后服务工作也将由专人负责;

  通过恰当和合理分工将软件Software研发过程中各个环节进行拆分从而将复杂软件Software工程分解成个个相对独立且又紧密关联工作项从而有效降低了软件Software开发过程中困难度和风险性;项目经理(project manager)把分解后工作项交给项目组中合适项目成员并根据项目组成员能力、工作难度和工作量制定出科学项目计划;同时项目组成员在项目经理(project manager)协调和管理下进行密切分工合作此举即能调动项目组成员其工作积极性又能使他们将工作、兴趣和个人职业成长规划进行有效结合从而使其在技能、收入和社会认可度等诸多方面得到快速成长达到人尽其材材尽其用通过使用专业人做专业公司将在人员分工、资源使用和业务拓展等领域走向专业化、规模化最终成为专业且强大产业实体

  但此开发模式也具有相当局限性!其如何合理利用项目组资源?项目组成员因其性格、能力和兴趣各有区别如何能将他们按项目分工和角色组成需要进行专业化训练和培养;其 2因项目组成员长期单职能工作和其它环节交叉和交流都受到限制对其未来全面发展和综合成长都很不利;其 3、各角色的间分工、合作和工业化生产中生产线相似那么建立和的相适应质量保证体系保证各工序的间生产产品质量从而从事实上提升软件Software产品整体质量?



  通过对这 3类开发模式分析我们可以看出它们各有合理性也又具有相当局限性

  全能型开发模式是早期CS类项目开发主要模式其适用于哪些规模小员少小规模IT开发企业进行小型项目开发中但对于那些工期较长、业务范畴广、复杂度较大项目此种开发模板将采用将导致风险最大化失败几乎是其唯结局

  英雄型开发模式因项目组成员领域化分工和合作使它在通用型复合类产品开发中具有优势通过对产品各组成部份进行持续改进和迭代性开发使产品在功能、性能、用户体验等方面得到持续改善和提升从而有利于产品拓展并在此过程中做大做强最终取得竞争优势但此开发模式也将导致项目组成员的间工作协调、技术互用等方面存在诸多不便;另外因领域专业性和不可替换性也就限制了公司在处理关健人员流动性方面存在诸多困难并在核心竞争力保证方面存在着很大风险

  专业型开发模式通过对人员进行专业化分工从而在软件Software开发过程中最大利用了人力资源提升软件Software生产效率并降低了软件Software从业门槛此方式在新形式下项目开发和产品研发中都具有相当竞争力也易有利于保证公司核心竞争力但采用此种开发模式时需要完善内部人员激励机制保证各角色从业人员都有和的适应职位规划和发展模式并能根据项目组成员所处阶段需要提供相应技能培训和交流机会从而促进其成长激励其上进

  总的采取何种开发模式要根据公司实际业务情况发展规划和人员构成进行科学分析的后再采取行动、从而得到具有延续性和竞争性并和自身相匹配软件Software开发模式



Tags:  软件设计模式 软件开发模式

延伸阅读

最新评论

发表评论