确保构建和购买有效的定制软件开发项目的第一个关键是确保真正需要的是定制软件,而不是打包的解决方案,而且有充分的理由可以确定。调查显示,75%的企业和it高管预计他们的软件项目会失败,根据一年多的预算,只有不到三分之一的项目能够按时完成。构建和购买比较分析的一种方法是询问是否有一个打包的软件解决方案可以提供80%以上的以下功能:
支持或自动化独特的业务流程和事务
流程行业或业务线特定的信息和数据
满足独特的隐私或安全要求
促进和共享遗留应用程序和数据的信息集成
以较低的成本替换或帮助集成现有解决方案
替换或帮助合并现有解决方案以提高生产效率
创造新的机会或提高竞争力优势
成长并适应不断变化的需求。如果你想做一个决定,那么一个重要的初始考虑是从主要参与者那里购买,并确保他们在项目上进行沟通和协作。合作者包括赞助者、用户、开发人员,甚至组织外的客户和业务伙伴。
协作意味着“与业务用户就需求进行协作,在全球开发团队之间共享知识,并在开发和运营团队中共同提高质量和响应能力。”
需求是必要的
协作的关键成果之一是明确,软件需要做什么(而不是不做什么)的共同愿景。已经确定,“组织需要有效地定义和管理需求,以帮助确保它们满足客户需求,同时解决法规遵从性问题,并在预算内按计划进行”,“需求定义和管理是一项有可能实现以下目标的活动:高,投资回报快。
根据我们的“良好”要求是正确的(技术上和法律上可行的)
完整的(表达完整的想法或陈述)
清晰的(明确的)
一致的(与其他要求不冲突)
可验证的(可以确定的是应用程序符合要求)
可追溯(仅识别和跟踪)
可行(可在成本和进度范围内完成)
模块标准化(可更改而不受太大影响)
独立于设计(设计无特定解决方案)。
方法、技术和实践
在定义需求(它们可能会多次更改)之后,应用成熟的现代开发方法和实践可以帮助快速有效地交付有效甚至创新的软件。要考虑的开发方法:
敏捷开发将需求分解为易于使用的功能,并通过增量开发快速实现这些功能。随着功能的部署,反馈循环有助于发现和修复缺陷。
Devops是开发和运营的结合体。它是一种基于敏捷的方法,将软件开发和It操作集成到软件设计、开发、部署和支持中。
快速应用程序开发是一种非线性方法,它将设计和代码构建浓缩为一个相互关联的步骤。
扩展敏捷框架提供了一种将敏捷方法扩展到大型组织(如全球开发团队)的方法。要考虑的技术和实践:
开源是对公众和开发社区开放的软件源代码。例如,Linux是一个开源操作系统。它可以通过重用软件组件来提高开发效率,通过避免专有体系结构来提高互操作性。
通过在云中托管开发环境,基于云的开发为软件开发带来了云计算的优势。这些环境支持编码、设计、集成、测试和其他开发功能,以构建本地和云本地应用程序,并以云技术承诺的成本控制、速度和按需便利性来实现。人工智能(AI)使软件能够模仿人类的决策和学习。它可以用来改进开发过程。例如,自然语言处理(计算机和软件理解人类语言的能力)