自己所在的公司申请CMMI3等级认证,本人又有幸成为了被访谈中的一员,我由于本人从属于公司的研发部的一名研发人员,所以我的身份顺理成章的也是开发人员。主评官是一名德国老外。
当时我们公司和对方约定的访谈时间是10月18日~10月21日,第一天首先是发起人见面,然后要参加被访谈的全体人员参加启动会议,下午是分别是EPG组长、CM、OT、PPQA的访谈,开发人员是19号。
我们公司一共准备了3个项目(每个项目组配备两名开发人员,一名测试人员),我是第一个项目组的成员,早晨9点钟到达公司,大概9:15左右,会议室的人出来叫人说可以开始了,让我们进去,进入到会议室之后老外先和我们打了招呼,然后翻译在旁翻译,并且讲述访谈的原则不归咎原则,及签订保密协议。
下面是我们访谈的被问到的问题:
- 公司定义了哪些不同的需求获取的方式?
答:公司定义的需求获取的方式有:电话、邮件、调查问卷、开研讨会、静态页面效果图、原型等方式 - 你的项目中使用了哪些方式获取客户的需求的?获取了客户的哪些需求?
答:邮件、调查问卷、开研讨会、静态页面效果图;获取了客户的需求分为功能性需求和质量属性方面的需求,质量属性方面的需求可分为可维护性,安全性,易用性等等。
3,客户有没有对你们获取后的需求进行确认?如何确认的?
答:我们将用户的需求整理,制定成《用户需求说明书》并交与客户确认签字。
4,项目中的需求是如何进行管理的?
答:我们在每个阶段完成时,都填写《需求跟踪矩阵》,所以当需求变更时,我们《需求跟踪矩阵》来查看每个需求的状态,了解因变更而影响的需求范围。
5,你们是如何对客户的需求进行分析的?
答:我们采用VISO工具来分析系统,并对系统进行建模,制定出系统的业务流程图和系统架构图,当《软件需求说明书》制定完成后,由项目经理组织邀请客户,开发人员,测试人员,配置人员,质量保证人员,高层参加软件需求说明书的评审会议,在保证需求分析是满足客户需求的,并得到大家的认可。
6,需求的优先级和难易度是如何来定义的?
答:我们是根据需求的难易度来确定优先级的。
高 --- 软件必须实现的功能,用户有明确的功能定义和要求;
中 --- 软件应该实现的功能,用户的功能定义和要求可能是模糊的、不具体的、或低约束的,但是这类功能的缺少会导致用户的不满意,因此这类功能的具体需求应当由需求分析人员诱导用户产生并明确;
低 --- 软件尽量实现的功能,并可根据开发进度进行取舍,但这类功能的实现将会增加用户的满意度。
7,公司是如何跟踪项目的需求接口需求的?
答:根据《用户需求说明书》指定的《软件需求说明书》中定义了软件的接口需求。并在《需求跟踪矩阵》中进行接口需求的跟踪。
8,如何对需求进行管理来确保需求的完整性,一致性?
答:通过评审会议,维护《需求跟踪矩阵》,以及周会确保需求的完整性和一致性。
9,需求变更的时候由谁来确认?
答:当需求变更的时候,由项目经理提交需求变更申请到CCB(变更控制委员会)进行确认是否变更。
10,你们怎么确保不同工作产品的一致性和完整性?
答:通过召开评审会议确保不同工作产品的一致性和完整性。
11,对于过程改进活动,你们参与了哪些工作?
答:参与了临时过程组对OSSP体系对编写,需求开发与管理,设计过程等。
12,需求经验和优秀实践经验如何和其他项目和组织分享?
答:一般有好的经验或建议,我们会向EPG反馈,EPG组长整理采纳后会存放在公司的财富库中。
13,在过程规范中变更如何通知你们的?
答:过程规范发生变更时,过程改进会形成新的基线,配置管理工程师会发布基线报告,EPG组长会安排相应人员给我们培训。
14,如何管理产品交付后客户的需求?
答:在产品交付客户后,我们给客户有1年的免费维护期,如果是原需求的变更,我们免费维护,如果新需求的变更,则另有偿维护。
15,公司是否通过了设计方面的指南?
答:是的,EPG制定了《设计过程》《实现过程》等来指导我们工作。
16,设计过程是什么?
答:项目经理指定角色,要先做《概要设计说明书》和《编码规范》,然后召开评审会议,评审通过后,再做《详细设计说明书》及《数据库设计说明书》,同时界面设计师做静态界面设计,然后由项目经理召开评审会议,评审通过后,将相关配置项由配置管理工程师入库等。
17,设计采用了哪些技术?
答:结构化设计方法:1,自顶向下 2,逐步细化 3,模块化设计 4,结构化编码
结构化设计步骤如下:
1,审核细化数据流
2,确定数据流程图的类型
3,把数据流图映射到软件模块结构,设计出模块结构的上层
4,基于数据流图逐步分解高层模块,设计中下层模块
5,对模块结构进行优化,得到更合理的软件结构
6,描述模块接口
18,目前的决策分析方法有哪些?
答:主要采用了经验法和类比法两种。然后采用专家法打分决策
19,项目中的重用组件使用前,项目组有没有进行讨论?
答:在《项目计划》里定义并分析了项目重用组件,并在《项目计划》会议上,对项目的组件重用进行了分析讨论。
20,设计阶段你们做了哪些评审,如何做的?
答:设计阶段有《概要设计说明书》评审,《详细设计说明书》评审;《里程碑》等评审活动,在评审会议上,由主持人组织会议持续,作者讲解评审工作的内容,回答评审人员提出的问题,会议记录人员将会议上的内容及问题进行记录,并整理到《评审记录》中,由项目经理指定并监控负责人解决评审中发现的问题。
21,关于这些评审,计划多少的工作量?评审的主要反馈是什么?
答:评审会议一般持续4个小时左右,评审主要反馈评审工件中的一些问题的个数、严重等级、分析和解决措施等。
22,哪些工作进行了同行评审?
答:《用户需求说明书》《软件需求说明书》《项目计划》《概要设计说明书》《详细设计说明书》《数据库设计说明书》《测试用例》
23,同行评审收集了哪些数据?如何分析的?
答:同行评审收集了评审工件中的问题个数、严重等级、产生的原因、解决措施,并记录在评审会议中。
24,你们是如何确保的设计符合需求?
答:我们利用《需求跟踪矩阵》来保证需求、设计、编码、测试的一致性和完整性;同时设计中的每一个阶段(概要设计阶段、详细设计阶段)都召开评审会议,确保阶段性工作产品的质量。
25,产品集成的顺序和环境在哪里有记录?
答:在《产品集成计划》中有记录
26,项目是怎么发布的?谁来建立,评审和最终发布?
答:由项目经理建立和发布项目产品,客户接收产品时,项目经理将《项目交付报告》交与客户签字。然后召开项目结项会议。
27,项目在每个阶段是否都建立了基线?你们是如何得知基线的建立的?
答:是的,当基线建立后,配置管理工程师向项目组成员发布基线报告。
28,你们是如何参与项目计划和估算的?
答:项目估算会议,根据开发经验对用户需求的功能点进行规模和工作量的估计,项目经理将每个专家的估计值进行计算,得到工作量和规模的平均值。然后参考财富库中的度量数据,进行项目的工作量估算。然后再估算出项目的成本。
29,你们向谁做工作汇报,回报哪些内容?
答:向项目经理汇报工作,汇报工作量,进度,偏差等。
30,项目中有什么技术风险和问题?
答:有人员的技术风险,也有项目管理的问题。
31,如何保证代码质量?
答:我们每天下班前,由项目经理组织开发人员进行交互代码走查,主要检查代码的编码规范和代码的逻辑性,并将发现的问题记录在《代码走查》中,同时开发人员进行单元测试,以保证代码的质量。
32,你们是如何进行单元测试的?测试的结果会有记录吗?结果报告存放在那里?
答:我们根据单元测试用例进行单元测试,采用白盒测试,测试结果记录在《测试记录跟踪表》中。
33,如何确定编码结束的?
答:1,项目经理已经确认,该软件的功能已经按照《用户需求说明书》和项目《软件需求说明书》的要求全部实现,功能和界面结合完成。
2,所有功能代码均已基线化。
3,单元测试,集成测试结束,系统预编译成功。
4,该单元的项目《用户使用手册》、项目《系统安装手册》等相关文档必需提交到系统测试。
34,项目中的源代码是如何管理的?
答:我们使用的是git。
35,你们是如何和测试人员合作的?
答:首先,测试出的bug有四种状态,打开,跟踪,重新打开,关闭。当测试人员发现bug后,将bug记录在《测试记录跟踪表》中,此时的bug状态是打开;接着由测试人员将《测试记录跟踪表》提交给项目经理,由项目经理指定bug修改负责人,当bug修改负责人解决bug后,将bug的状态改为“跟踪”,然后提交给测试人员,由测试人员进行验证测试,当测试人员验证测试成功,则bug状态改为“关闭”,当测试人员验证测试失败后,则bug的状态改为“重新打开”,最为bug重新处理。
36,编码过程中会统计哪些数据?这些数据存放在哪?
答:在编码阶段,我们收集项目规模,数据都记录在《项目总结报告》中。
37,项目经理是如何检查你们工作的?
答:主要根据周会,里程碑会议来检查工作,同时在平时我们发现问题也会EMAIL或走查的形式通知项目经理,项目经理也会根据《项目进度表》监控我们的工作进展情况。
38,你的项目是否有内部制定保证?
答:有PPQA是根据QA制定的《检查表》在每个检查时机处检查我的工作,并将发现的NC通过EMAIL的形式发给我,我在接到NC一天内给予反馈。
以上是作为开发人员问的问题,测试人员没怎么问,就问了一道题,还是和开发人员重合的为35题。下午,第2,3个项目一起进入会议室访谈。
第三天上午他们在会议室对访谈内容进行分析,下午快下班时召开初步发现会议让我们对他们给出的访谈分析结果提出异议。
第四天上午,最终发布会议,全员都要参加。