软件开发技术咨询与顾问服务项目
本项目利用计算机软件、互联网领域中高端开发技术与多年软件开发经验的技术开发型企业和专业技术人员的优势,所提供的软件开发技术咨询与技术指导服务可以协助初创型IT企业、传统IT企业与前沿软件开发技术快速接轨,高效高质量地满足软件开发业务需求,为企业创造更好的经济效益。
随着IT行业的高速发展,软件及互联网已经影响到了国民经济中的方方面面。然而软件开发是一种专业性很强、技术更新换代极快的行业,许多企业和创业者试图进入这一行业时发现自己现有的知识体系难以涵盖工作所需、难以寻找合适的人才、与专业人士沟通发生困难、不清楚工作要点等。导致实际工作中遇到各种困难,甚至使得原本很有希望成功的项目由于技术问题而延期或搁浅,给企业和创业者造成经济损失。
按照软件行业标准化的要求和产业发展趋势,解决上述问题的有效方法是企业负责人、决策者充分了解自己的需求,向专业人士进行较完整的咨询,并在专家指导下进行软件项目的市场需求调研、开发流程设计、开发团队和开发环境的搭建、项目的标准化管理、甚至参与项目设计及开发等服务工作,解决软件开发过程中遇到的各种疑问及困难,为企业的成功奠定一个良好的基础。从而避免出现外行指导内行导致项目失败、技术人员滥竽充数、管理不严造成数据损失等严重情况。
本部分属于针对企业负责人及软件部门负责人提供的咨询服务。具体服务项目如下:
对企业计划开发的软件项目或软件产品中所涉及的行业、领域现状进行分析,帮助企业了解行业全貌与近期发展情况,以助于企业进行决策。避免出现不了解行业情况进行盲目投资、产品定位与实际情况不符等影响企业利益的情况。
非IT企业的负责人一般很少了解这个新兴行业所需的工作岗位、工作流程及工作特点。本项服务会对软件开发工作进行较全面的介绍,包括所需的人才类型,工作配合方式、流程周期等,也包括了软件开发工作相关的产品设计、测试、运维等工作过程中所注意的要点,以及传统软件及互联网开发工作的差异。为企业负责人组建团队、启动项目、主持并随时了解软件开发工作进度提供良好的帮助。
软件开发属于智力密集型产业,从业者一般薪资较高,而不同类型的软件所需要的人才类型也各有不同。如果对这一点了解不清,有可能会造成开发盲目上马、到中途才发现人员能力不足,导致项目因技术问题而搁浅的情况。本项服务会针对项目规模、周期与运营形式,将组建软件开发团队中的全职、兼职员工及所需技术能力进行分析整理,并根据企业成本判断是否允许部分外包工作等。
本部分属于企业进入开发团队组建与项目前期阶段时指导并参与的工作。
企业发展靠人才,软件行业尤其如此。本项服务主要包括为企业整理当前及下一阶段工作过程中所需的开发人员组成、制定岗位需求、薪资水平预期等。必要时可以为企业筛选、面试主要开发人员是否符合需求。如果软件部门负责人缺乏管理或技术经验,也将针对具体问题进行分析并协助解决,保障开发团队的工作效率与质量。
工欲善其事,必先利其器。软件开发工作的顺利进行需要正确运用很多工具软件。根据项目和团队人员组成情况,会为团队提供相应的开发工具,协助搭建代码管理平台(Git、SVN等)、工作进度管理平台(Phabricator、Redmine等),所需的开发服务器、测试服务器、正式服务器等。
对企业自建机房、私有云、使用本地IDC托管或云中心、使用大型公有云服务等部署形式均有对应的环境搭建方案,并进行成本分析,让企业效益最大化。
仅仅有完善的工具是不够的,每项具体工作都需要遵守良好的规范才能发挥它的价值。本项服务就是制订具体工作流程,如开发中的版本迭代周期、使用代码管理平台时分支与合并权限的归属、产品细节变更时如何在管理平台中记录及体现等。最大限度地降低软件开发中由于责任不清、需求变更过于频繁、流程执行不力等问题造成的进度拖延、质量下降。
另外,信息安全工作对软件企业也十分重要,包括代码管理、数据管理及备份、密码密钥的管理、各大公共平台的账号信息等,均要进行权限分配,不可随意处理。避免有意或无意的疏失为企业带来重大损失。
如果企业在准备开发软件项目时经过评估,认为自身团队能力有所不足,需要专业级的顾问服务进行协助,即可提供针对具体项目或产品的软件需求分析、设计、开发、运维等服务。
在软件项目早期阶段或互联网产品的各版本周期,对需求方或产品设计部门提出的需求进行分析梳理,从实际业务角度出发,整理出软件所需实现的具体功能列表,包括重要的细节设计等。能够最大限度地实现需求方的合理要求,同时对原先没有定义清楚的功能实现方式进行细化,以满足客户的真实需求。
根据前期设计的需求以及运营模式,设计软件架构,包括服务端类型及开发语言、数据库、各种中间件服务、接口格式、前端实现方式与框架等。实现高性能、高安全性、可扩展、易维护的软件项目架构。并提出项目中所涉及的技术要点及难点,针对具体问题提出解决方案,包括并不限于技术攻关、外包开发、购买第三方服务或替代方案等。
在需求和架构确定之后,需要对软件具体功能进行设计,包括接口数据结构、数据库结构、UI形式、各功能模块的设计等。根据开发人员的实际能力情况进行概要或详细设计,开发工作根据设计文档直接进行或进一步细化后进行。
如果企业有自己的开发团队,顾问服务一般情况下并不会参与具体的开发编码工作。但如果企业有此类需求,顾问方也有能力进行开发。详见后文第五章:软件开发外包业务。
项目或产品版本开发完成后需要部署到测试环境或正式环境,包括服务器系统安装、环境库安装、服务部署、证书、域名、CDN部署等等。顾问服务会指导企业的运维人员如何进行上线后的数据监控、日常维护、备份、紧急响应等工作,保障开发完成的系统稳定可用。
如果企业将一部分开发设计工作外包给其他公司,但自己的工作人员技术能力或需求分析能力较为薄弱,顾问服务可以在充分了解业务需求的基础上与第三方外包公司对接洽谈,并监督其工作进度与质量,防止出现技术纰漏。
如果企业确认自身团队的开发能力不足以完成软件项目的开发,可以将软件项目的整体开发工作外包,或只将部分技术攻关、核心代码编写等重要工作外包。
被服务企业可根据自身实际情况和项目需求选择服务内容,并由双方协商确定费用与服务周期后签署服务协议。
二〇一八年二月