本文简述了软件开发面对项目型软件开发过程中可能面临的质量问题,同时强调了软件产品质量的重要性。作者总结了自身所遇到的问题,按不同阶段和类型进行分类和整理,希望能为读者提供帮助。
在软件开发公司,项目型软件开发过程中,有诸多因素影响软件产品的质量。
由于产品质量的问题往往需要软件公司、客户投入额外的时间和成本进行产品质量的修复,如果产品质量问题严重有可能需要推翻重新设计开发。
所以,软件产品质量的重要性对于软件开发公司不言而喻。
笔者身处一家软件开发公司,面对开发资源有限、项目工期紧张的情况,也遇到产品质量的问题。在此,将项目过程中遇到的问题进行总结分析,希望对即将或正在面对此类问题的读者能够有所帮助。
根据遇到的问题,按各个阶段和问题分类,归纳如下:
一、需求调研分析
1. 调研前期
需求调研前,产品人员会向客户收集基础资料,并对资料阅读分析,以便后续用户调研工作的顺利高效的开展。
在实际过程中,我们遇到了以下三个主要问题:
1)客户资料收集不全
问题描述:调研人员向客户收集资料时,没有明确客户所要提供资料的类型和范围,导致调研前期资料分析不足,影响后续用户访谈的调研效率。
产生原因:主要原因是部门没有标准、规范的客户资料清单,对新入行的调研人员提供指导和参考。
解决办法:根据以往项目,总结客户资料清单,帮助产品调研员明确前期所要收集的客户资料。
2)客户资料收集和存档不规范
问题描述:没有明确项目双方的资料收集对接人员,导致客户不同部门人员资料提供给项目不同角色的人员。同时,项目没有明确客户资料的统一存档位置,导致收集的客户资料散落在不同角色人员手上。影响产品人员第一时间分析资料。
产生原因:立项时,双方没有明确项目对接人。资料存档时,没有指定项目文件的统一存档位置。
解决办法:项目启动会时,双方明确甲乙双方项目负责人。同时由项目负责人指定客户资料统一存放位置。
3)客户资料理解偏差
问题描述:调研人员分析客户资料时,存在理解时间长、分析不够透彻、分析范围遗漏的情况,影响后续用户访谈的工作开展。
产生原因:调研人员对行业相关知识了解不够。
解决办法:日常工作中通过读书分享、项目总结分享和邀请业内专家讲座、培训的方式加强调研人员对行业知识了解。提供行业常用相关的网站、微信公众号,在有行业术语、公式等无法理解情况时,提供相关的帮助和参考。同时,提供公司内部资深调研人员信息,让新手可以的一时间找到解决问题的公司内部专家。
2. 调研过程
需求调研时,产品人员到客户现场进行用户访谈调研,通过用户调研收集和记录客户的需求。同时,通过需求调研分析逐步收集和完善客户资料。
实际过程中,我们遇到了以下两个主要问题:
1)需求收集不够全面
问题描述:需求调研中某个业务活动的具体场景仅描述其中一种常见情况,对于其他特殊情况没有收集、记录和分析。影响后续产品的规划设计。
产生原因:需求调研时,仅收集某个业务人员的描述的需求,没有充分收集整个部门和其他上下游部门的需求。
解决办法:部门提供需求调研的检查清单,帮助和提醒调研人员调研时注意事项。此外,需求调研的成果要汇总和客户相关人员进行再次确认。
2)需求细节不够详细
问题描述:客户需求描述的内容不够具体、清晰,导致产品设计阶段需要反复与客户进行沟通和确认。
产生原因:一个是调研人员行业经验少,无法对客户的需求进行深入的追问。另一个是客户也不明确需求要描述到什么程度合适。这就形成你不问我不说的情况。
解决办法:除了加强调研人员日常业务知识学习外,还要培养调研人员遇到客户简单回答时多追问的习惯。
3. 其他
客户时间安排冲突
问题描述:与客户安排的调研时间会被推迟和需要反复的确认。
产生原因:客户没有足够的重视项目或有紧急重要的会议没有时间安排,导致调研的日期一再被推迟。
解决方法:确定项目完成时间,与客户共同明确项目计划。项目启动会时,邀请双方领导参与,共同重视项目计划的执行。
二、产品设计
1. 功能设计
在完成需求分析后,会根据需求分析的结果规划产品的功能架构,并根据功能架构列出产品功能清单。
实际过程中,功能设计时会存在以下两个问题:
1)细节功能设计不到位
问题描述:功能设计时,仅考虑正向流程,逆向或其他特殊流程没有考虑。导致后期用户测试期间又要重新调整功能设计。
产生原因:需求调研分析期间遗漏,功能设计期间没有仔细思考模拟各种场景。
解决方法:设计人员要沉下心,认真根据已分析资料模拟用户真实场景,若有发现不明确或有遗漏的功能需第一时间与用户进行再次沟通确认。
2)通用功能没有抽象
问题描述:对于系统中的通用模块没有抽象,导致相同功能重复描述,同时也给后续的功能变更埋下了隐患。
产生原因:设计人员没有从全局的解度审视产品功能,往往看一块做一块,没有做好统一的产品规划功能。
解决方法:在提高产品设计人员设计能力的同时,加强对产品功能设计的审核。
2. 原型设计
功能设计后,会根据功能清单使用原型工具Axure RP进行原型设计。
原型设计时,我们同样面临着以下三点的问题:
1)组件设计不统一
问题描述:原型设计过程中组件没有统一,比如同一内容的文字说明在不同模块文字没有统一;列表的排序没有统一;使用日期或时间的组件没有统一。
产生原因:部门没有统一的规范说明;同时,设计人员项目经验不足。
解决方法:建立标准组件库(有分移动版和Web版),所有项目设计的组件原型统一从库中调用。建立部门的原型设计自检清单,将常用的自检清单做为设计人员设计完成后的必检内容。加强设计人员对标准组件的学习和了解。
2)标注说明不清晰
问题描述:对原型标注说明时,没有标注或对标注不清晰、不完整。对于特殊或重点的逻辑说明没有特别重点标识。比如:原型字段的长度、按扭功能的校验规则等标注说明没有等。这些问题对于有经验和责任心的开发人员,会跟设计人员进一步确认和完善,而对于新手往往会忽略。这些问题在测试或用户使用阶段 暴露,影响产品质量和客户体验。
产生原因:部门没有制定统一的标注说明模板和要求。导致根据各自偏好进行标注。
解决办法:制定需求详细设计模板,部门成员统一以需求详细设计模板做为最终的交付产物。
3)原型设计速度慢
问题描述:采用带交互的原型设计方式,但交互对设计人员的原型技能撑握能力要求高。同时,在原型设计确认完后,需要对原型进行修改和优化时,调整原型的时间也变长。
产生原因:部门人员大部分新人,原型的技巧没有那么熟练,交互原型设计加重了他们的工作量。
解决办法:使用标准组件库中的原型组件并使用线框图方式,组件间的交互统一并采用文字描述,减少交互效果设计带来的工作时间。
3. 需求评审
需求评审效果不佳
问题描述:需求评审前没有将评审资料发放给相关人员,需求评审时没有需求和设计专家参与,需求评审并没有得到建设性的建议。
产生原因:公司及产品人员对需求评审的重视度不够,内部没有储备行业的专业性人才。
解决办法:提高大家对需求评审的重视度,提前做好需求评审准备。培训和储备专业性人才,邀请客户的专家共同参与需求评审。
三、产品开发
1. 需求详讲
问题描述:需求详讲阶段,未做到项目所有相关开发人员参与,而且参与人员的听讲效果不佳,导致产品人员在开发过程中要再次进行解释,影响产品开发进度和质量。
产生原因:产品事前没有将相关材料交付开发人员,开发人员没有事先了解资料,导致详讲效果差。
解决办法:事前产品人员将资料分发到项目开发人员手中,事前由开发人员准备问题,详讲会上由产品人员根据问题清单重点澄清开发人员疑惑问题。
2. 需求变更
问题描述:产品人员进行需求变更时,没有详细考虑导致一个需求需要反复,而且有时客户提的需求设计完成后,又不再需要。同时,需求变更没有同步同知相关开发和测试人员,导致相关人员开发完成后才接收到变更的内容。
产生原因:产品人员对需求变更的随意性,导致需求变更和管理混乱。
解决办法:增加需求的评审制度,外部需求变更需要由客户提交需求变更单,避免客户的一句话需求,实验性需求或个人喜好的需求导致公司投入成员。内部需求变更需要由负责人进行审核,需求变更通过同步相关开发和测试人员。
3. 版本提测
问题描述:提交测试的系统,测试过程中发现流程不通,开发的bug数量多,出来的系统与设计的原型存在不符的情况。
产生原因:开发时,各个模块由不同开发人员开发,提交测试时,没有进行系统的集成测试。开发人员在系统开发过程中发现问题,没有及时与产品人员沟通,并按自己理解的思路进行开发。
解决办法:产品人员从开发起及时关注系统的开发进度,每日与开发人员进行站会了解开发的情况及沟通开发过程中的问题。开发完成后,第一时间进行系统验证,保证系统流程的畅通。
四、总结
其实想打造好一款好的产品是不容易的。
产品需求调研到最终产品上线运行是经过多个阶段的,每个阶段都可能由不同的人员参与,信息的传递也有可能层层丢失。
所以软件开发是一项工程,需要通过管理保证软件的进度和质量。
以上内容希望对于读者有所帮助和参考。