在《浅谈面向产品的需求开发》一文中,作者提到:“面向产品与面向项目的需求开发既有差别,又有联系,产品的核心在开箱即用,项目产品的核心在'DIY'。”
本文继续讨论项目产品的'DIY'与项目产品的软件需求开发过程。
项目产品的'DIY',是指软件产品要成为用户自己的软件产品,虽然很可能还是由专业的软件公司来开发,但项目软件的生产在本质上是“用户自己做”的一个过程。
客户化程度较高是项目产品的一个重要特点,为什么要客户化呢?
主要是为了适应具体的业务场景,并使系统在真实的运行环境中达到最合理的状态。
同时,项目产品的时间性要求更强一些,如果哪个项目软件需要做上三年两年的,那估计要被客户给PASS了,项目需要在最短时间内展现达到关键目标。
因此,面向项目的软件需求开发在很大程度上是定位、分析客户系统的关键需求上。
需要认真思考以下三个问题:
(1)哪些需求是客户最关注的?
(2)哪些需求对系统的功能实现和系统的稳定性是最关键的?
(3)哪些需求是最初没有考虑到或者客户没有明确提出,却是将来在实际使用系统时实实在在需要的?
能否抓住特定应用场景中客户系统的关键需求,将直接影响整个项目软件开发的成败。
那么,下一个问题是怎样才能抓住客户系统的关键需求呢?
最重要的还是客户的积极参与,要和项目开发单位的技术人员一道,以主人翁的精神积极分析思考、深入调研实际业务流程和需求点。
在实际项目中,往往有两种极端情况,却经常出现:
一是客户很“甲方”,习惯性的做甩手掌柜,认为系统的分析、设计、开发都是乙方该做的事情,我们已经花钱了,就应该提要求就可以了;
二是客户很有“高度”,高姿态的认为需求是客户自己的事情,做什么做成什么样我们说了算,乙方去想怎样做就可以了。
这两种情况对项目软件质量的提高都危害很大。
首先,作为专业的软件开放商,应该深入的熟悉并掌握业务、把工作流程、工作场景分析清楚、透彻,并适当引进专业的业务人员参与系统分析工作,以确保在需求开发过程中对系统分析的精准性,努力做到引导性、启发式、专家型的需求捕获与需求开发;
另外,作为代表着最终用户的客户,需要真正加入到项目组当中,发挥自己对自己单位人和事都比较熟悉的业务优势,并以主人翁的精神把项目软件开发真正看成是和开发商共同组建的项目组的共同任务,积极参与、认真分析、加强沟通与交流,切实梳理出自己单位的关键业务要素来,并作为系统分析与设计的重点。
随着行业的成熟和甲方的不断专业化,客观的讲,“项目软件开发是甲乙双方在项目中共同的工作任务,系统开发成功是双方在项目中的共同工作目标。”这一共识并不难达成。
但问题在于能否真正做实、做到位,仅仅口头上、态度上达成共识不够,这种共识必须转化成有保障的全身心的投入。
可以说一个项目软件产品的成功往往是项目组共同的心血结晶,这里的“项目组”包含了甲、乙双方。
而需求开发则是项目伊始就要考虑好、做好的工作,也将最终影响系统的实际功能与运行效果。
因此,在很大程度上,项目产品是用户“DIY”的过程,面向项目的软件需求开发也是用户“DIY”的过程,这里“DIY”主要是指融入到项目组中,成为其中的一员,发挥出团队的整体优势;根据自身的业务特色,量身定制,将软件产品客户化,形成自己的软件。