基于客户业务能力的软件项目开发的四种模式
很多业务系统只能定制,定制软件一直有个“金科玉律”:根据客户的业务模式来实现。日产的过程首先强调的是业务改善先行,只有业务功能定义清楚才能进行IT实现。
定制开发也罢,产品实施也罢,很重要的一点就是对客户所要开发的业务的理解和掌控,简而言之就是业务能力。
我将客户自身的业务能力和开发方的业务能力(不是技术开发能力)按能力强弱进行了组合,实际上也是业务的沟通能力,整理了四种模式:
1、 客户业务能力强,开发方业务能力弱
2、 客户业务能力弱,开发方业务能力弱
3、 客户业务能力强,开发方业务能力强
4、 客户业务能力弱,开发方业务能力强
第一种模式:客户业务能力强,开发方业务能力弱
这种模式下,开发方基本上只能按照客户的业务要求来做,一般发包的项目都是这种情况,开发方通过努力学习客户的业务逐步来细化,表面上看这种模式的开发还是比较轻松的,风险也不小,客户对软件开发如果不清楚,盲目扩大项目边界,或提出无法实现的功能,特别是客户对业务很清楚的时候,往往会忽略掉一些他们认为很常见的地方或者一些异常情况,最后项目往往会反复修改,客户总觉得有些地方实现的功能和预想有差距。
控制这种风险的策略是引入业务专家或者顾问,对项目进行评估,并在项目的设计阶段与项目组和客户充分沟通。
第二种模式:客户业务能力弱,开发方业务能力弱
这种模式是非常让人恐怖的,严格的讲,这样的项目根本就不应该上,开发方也尽量不用碰,除非是样子工程,摆摆架子而已,如果对进度和项目结果有一个很好的期望值,不管是客户方定功能供开发方开发,还是开发方提功能供客户评判,这种模式下的项目基本上可以断定会失败,
我见到很多的项目都是这种情况,有的是老总头脑一热,听到某种理念;有的是咨询顾问把客户说动;有的是上级命令,这些情况下,客户所面对的是个陌生的业务,具体的办事人员就更糊涂了。
碰到这种模式,如果想把项目做好,双方都需要提升业务能力,根据提升能力的差异,会转换到另外三种模式。
第三种模式:客户业务能力强,开发方业务能力强
这种模式下,如果双方沟通的好,是比较理想的一种模式。
客户和开发方都清楚业务的范围和边界,也清楚业务的细节,对于业务分支、异常情况都明白,特殊的业务只要简单的解释就可以理解,双方使用的是同一种语言,项目成功的可能性较大。
这也是行业应用门槛高的原因,对行业业务职能比较清楚,和客户的沟通就非常顺畅。
对软件公司而言,认准一个行业,对业务深入理解,做得专业,有很强的业务能力就总会有自己的市场。
第四种模式:客户业务能力弱,开发方业务能力强
这种模式对于开发方的商务人员而言是最好的,有时碰到一个非洲商务人员,可以报个天价。
很多业务咨询和产品实施都走的是这个套路,给客户一个美好的前景,有一套完美的理念,以及一个很花哨的产品,拿着PPT把客户搞定,剩下的就是实施拿钱,客户用不好则是能力问题,呵呵。
坏话说了一堆,是对看到很多咨询公司和软件公司的做法非常不满,不过这种模式下的定制软件开发,对开发方而言也是很有利的,因为你能告诉客户需要改进的地方,如果你很实际,真心帮助客户解决问题,客户是非常喜欢和这样的开发方打交道的。
根据项目所处的模式类型,我们决定我们的开发方式,根据项目类型,进行必要的模式转变。
分享到:
相关推荐
RUP(Rational Unified Process,统一软件开发过程)是一种迭代和增量的软件开发过程框架,它强调在软件生命周期内各个阶段中的业务和系统需求,并在这些需求指导下进行软件设计、构建和测试。RUP与广义框架相结合,...
软件开发模式,也称为设计模式,是软件设计中的一种通用解决方案,针对特定问题或场景,经过时间验证并被广泛接受。它们不是代码片段,而是描述在特定上下文中如何设计和实现组件之间关系的方法。模式的存在帮助...
**基于BS架构的软件项目实训-JSP-丁旭-ppt** 在信息技术领域,BS(Browser/Server,浏览器/服务器)架构是一种广泛应用于Web应用程序的设计模式。这种架构将应用的业务逻辑、数据处理和用户界面分离开来,使得系统...
《Visual FoxPro软件开发模式与应用案例》是张洪举编著的一本指导软件工程师们使用Visual FoxPro软件进行开发的专业参考书籍。该书涵盖了多种使用Visual FoxPro开发应用程序的方法,包括单用户应用程序模式、多用户...
《基于.Net Core的通用模板项目开发...通过深入研究源码,开发者不仅可以掌握.Net Core的基本用法,还能了解最佳实践和设计模式,提升自己的软件开发能力。在实践中不断探索,将使你更加熟练地驾驭这一强大的开发框架。
《基于体系结构的软件开发》第七章主要探讨了设计模式的概念和实际应用,特别是Model-View-Controller(MVC)模式。设计模式是面向对象设计中的一个重要概念,它代表了在特定情境下反复出现的问题解决方案的标准化...
在本实训项目中,我们将深入探讨“基于B/S(Browser/...总的来说,这个实训项目提供了一个全面了解和实践B/S架构下Java Web开发的平台,通过实际操作,学习者可以提升自己的编程技能,理解和掌握软件项目开发的全过程。
SOA作为一种现代化的软件开发方法论,通过引入服务层解决了传统开发模式中存在的问题,为大型软件项目的开发带来了灵活性、可扩展性和更好的维护性。通过合理的规划和实施过程,SOA能够帮助企业有效地整合现有的信息...
通过采用用例驱动的方法,结合架构中心的设计思想以及迭代增量的开发模式,RUP不仅能够有效应对软件开发中的挑战,还能促进团队之间的沟通和协作,最终帮助组织实现软件产品的成功交付。在未来的发展中,RUP将继续...
1.2 软件项目的收费需基于项目复杂度、业务模型成熟度、工作量和实施条件等因素综合评估。 1.3 服务费用计算包含从项目启动到维护期结束的全部投入,若使用了开发方提供的成熟产品,应另外计算并加入总造价。 1.4 ...
本项目——“基于MVC设计模式和三层架构的设备维护配送实时监控系统研究与实现代码”,旨在展示如何利用这两种主流的设计模式来构建一个功能完善的实时监控系统。下面将详细阐述这两个设计模式以及相关技术在系统中...
总结来说,基于构件复用的软件项目实施过程能够解决传统方法的诸多问题,通过优化组织结构和资源分配,提高软件开发的效率和质量。对于希望拓展业务范围的企业来说,构件复用技术是值得考虑的重要策略。同时,教育和...
软件项目开发招标书模板基于当前Web应用程序开发面临的问题,工程结合目前流行的开源框架 SSH(Spring、Struts、Hibernate),讨论其基本相似性及有关基本概念,提出了一种开发JavaEE Web应用的轻量级解决方案。...
开发模式采用MVC,结合SOA(面向服务架构),确保快速扩展业务功能而不影响现有系统。分布式部署确保系统功能独立运行,提高整体稳定性。前端技术栈包括ElementUI、jQuery、Bootstrap和Vue,后端使用SpringBoot、...
MVC(Model-View-Controller)模式是一种常见的软件架构模式,尤其适用于Web应用程序的开发。它通过将应用程序分为三个核心组成部分来提高代码的可维护性和可扩展性:模型(Model)、视图(View)和控制器(Controller)。...
总结来说,基于CSS模式的软件设计方案是一种创新的思维方式,它将Web前端的组织原则引入到软件设计中,使得软件开发更加高效、灵活且易于维护。通过深入理解和运用CSS模式,开发者可以构建出更加优雅、可扩展的系统...
2. **设计规则模型**:基于业务需求,设计一套适用于规则引擎的模型。这包括定义规则格式、数据结构等。 3. **选择合适的规则引擎**:根据项目需求选择合适的规则引擎,比如Drools等。 4. **编写规则**:利用所选...