1.从需求到测试的核心
个人认为从需求到测试的核心就是开发申请,从需求的讨论到开发,再到最后的集成测试是一个漫长的且需要反复打磨的过程。一份优秀的开发申请不但可以省去开发人员的大量时间,同时可以保证开发的成果可以满足需求,省去大量打磨的时间。一般来说,业务顾问的经验会对开发申请的质量产生直接的正向影响,但这也并不意味着撰写开发申请是完全靠经验而没有方法论在其中的。一份高质量的开发申请不但要明确功能点和完整清晰的逻辑,同时还要考虑到不同人的使用。下面主要介绍一下使用开发申请的对象及其关注的点,开发申请的撰写流程放到下一小节中,将其包含在从需求到测试确认的大流程中进行介绍。
开发申请一般会涉及到三种对象的使用。第一种对象就是客户,在开发申请提交开发人员进行开发之前,一定要与开发的使用人员,也就是客户进行确认,对不同类型的开发确认的重点也不同。客户一般不会关注开发申请的逻辑,其更多是关注是在前台的操作和最后的结果是否符合自身的需求,因此,开发申请中必须包含清晰的前台操作方式(类似操作手册)和达到结果的保证。第二种对象就是开发顾问,开发顾问除了关注功能外,其更加关注的是功能实现的逻辑,比如表关系、BAPI的使用等。每次点击或其他操作会有什么样的效果或是对异常数据或业务的处理这本分的内容不但是开发顾问自行测试的参考也是业务顾问测试的参考,比如对异常数据或业务的处理,当出现异常的数据或业务操作时,开发的功能应该有哪些对应的措施。因此,开发申请中必须包含明确的功能实现的逻辑和各种业务场景下测试用例。最后,开发申请还会给项目经理或后期的开发顾问查看,其更加关心的是开发需求的大的业务背景是什么,为什么会产生开发需求,这种需求是否为合理的,开发难度有多大,大概能耗费多少技术顾问的人天等等。这些概括性的信息也要在开发申请中进行体现。表1为将不同对象对不同种类的开发的关注点的总结。
2.从需求到测试的基本流程
从需求到测试的基本流程是指从与客户谈需求,到写开发申请,到开发,再到单元测试和集成测试的全过程。具体的过程如图1,其中包含了整个过程中的重要事务。
从需求到测试的的基本流程中,与客户沟通需求、判断需求是否合理、与开发沟通需求的可行性、编写开发申请和与开发沟通开发申请的可行性是相对较为重要或需要注意的关键节点。
与客户沟通需求是一切事物的基础,在与客户沟通前对沟通的事物要由准备,对提出的需求要有一定的预判。在沟通的过程中,对于客户的需求要有清晰的引导,对于不合理的业务流程或操作方式要深入沟通,计量通过标准的业务流程及操作方式。对于沟通后的需求不评价不拒绝不答复,应该反馈客户研究讨论后再进行决定。判断需求是否合理是在与客户沟通结束后,对客户的需求进行系统性的考虑,提出对需求的专业认识和判断,对于不合理的需求应该再与客户进行沟通,说服客户或提供其他的解决方案。与开发沟通需求的可行性是在确认需求的合理性后,进一步判断其在开发层面的可行应,避免在开发的问题上出现巨大的开发难题和漏洞,对于面对开发解决不了的需求时,考虑是否可以通过替代方案进行解决。与开发沟通开发申请的可行性是在开发申请完成后,与开发人员沟通开发的具体细节是否可行,是否有更加简单的方式进行处理,确保交到开发人员手中的开发申请是切实可行且思路清晰的,避免在开发过程中修改大量的开发思路,耽误开发进程。对于撰写开发申请的过程将在下一章进行详细的介绍。
3.开发流程管理
对一个SAP项目而言,开发工作在整体工作量中占到了相当大的比重,一般为40%-60%,因此对开发工作的有效管理,不但会影响到开发的效率,同时也会对整个项目的进度产生巨大影响,优秀的开发管理方式会缩短整个项目的时间,提升开发的质量。对SAP项目的开发与其他大部分的开发工作相比,既有相同点也有不同点。SAP的开发是指在原有的SAP系统功能满足不了客户的特殊业务需求或需要提升操作简便程度时,才在原有的SAP框架下进行开发。因此,在开发框架设计的要求上更低,更像是在为原有的系统打补丁。
对于开发流程的管理,或是说开发项目的管理上,市面上有非常多的管理思想和管理理论,比如瀑布式的管理方法,强调准备、蓝图、开发、测试和交付五大阶段,再如敏捷开发管理方法,QUIC_HAND管理方法、CRP方式等等。每一种方式都有其有点和缺点,不同项目应采取不同的管理方式。但作者认为,无论什么样的管理方式都要重视一下几点(按照重要程度排列):
团队环境
价值导向
进度可视
流程支持
有效沟通
快速变更
自主管理
环境支持
及时总结
具体的管理手段和方式在此不进行详细说明,推Mark C. Layton的《敏捷项目管理》。