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