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