如何构建公司需要的软件
导言
在当今的商业世界中,软件是必须拥有的,它不再被认为是一种装饰。消费者正如此迅速地走向对技术的最大或完全依赖。因此,每个企业都在开发或考虑开发自己的软件。
在今天的数字世界里,听说软件项目被平均执行,或者更糟糕的是,失败了,这并不罕见。造成这种情况的原因是多方面的。过多的预算、延迟的时间表、缺失的功能和糟糕的执行质量只是几个例子。另一个灾难性的事件可能是,一个项目在开发阶段失败了,永远看不到光明。即使使用的是最前卫的技术,如人工智能、机器学习、预测分析和商业智能,一个糟糕的开发策略几乎可以完全破坏软件开发项目。
为了防范与软件项目开发相关的许多风险,我们制定了一系列策略和最佳实践,这些策略和最佳实践将大大有助于确保高质量和极具功能的软件的建立。
你应该使用的策略
1.学学
首要任务是创造一个愿景。分析您当前的业务,其目标和需求,以实现该目标。进行一项分析,为您提供构建软件所需完成的内容的知识。然后,这种学习需要转移到开发人员,以创建一个整体的团队,正在努力实现相同的最终结果。开发人员需要具备所需的技能和相关经验,才能以最熟练的能力执行项目。资源分配是决定项目成功的关键因素和先决条件。学习您的业务模型,验证需求,深入研究主题专业知识,并创造性地思考,以便将详细的思想记录下来。
2.设计
总体设计应该是每个开发人员都能清楚、连贯地看到的愿景。软件设计是项目的命脉。它应该是视觉吸引力和嵌入功能,使其以用户为中心,并相当容易使用。批准的设计应该为一个健壮的产品的输出进行高度的优化。这个功能级别是决定项目命运的决定性因素。创建一种侧重于最终输出的方法是大多数开发人员使用的一个技巧,用于在开发人员团队之间创建一个统一而清晰的愿景,增强凝聚力,同时避免耦合。重用代码是另一种经常被忽视的策略,但它带来了成功的希望和降低的成本。系统架构师应该最终确保软件架构的创建考虑到每个需求和限制。在早期阶段查明威胁是必须采取的一种很好的办法。
3.发展
一旦开发人员团队根据他们的天赋和经验被精心挑选,并且设计已经准备好执行,开发阶段就可以开始了。开发的生命周期依赖于所选择的过程。依从驱动的开发模型遵循顺应的过程,是一种经过验证的方法,可以保证成功。另一个流行的策略是小模块的测试驱动开发和持续集成,这是必须采用的关键策略。
采用三维方法
1.快进市场
有许多策略可以有效地提高软件开发的成功完成,而不影响质量。这样的方法之一是对开发人员团队的规模进行战略评估,并在需求和成本之间进行仔细的平衡。技能水平的提高和复杂性的降低是一个进一步的提高。定期测试和一致集成将大大有助于防止延迟。通过合理的估计,并遵循上述学习、设计和开发的策略,市场进入市场的速度有了显著的提高。
2.以客户为中心:
软件的功能应该以客户为中心。软件的每个特性都应该考虑到客户的知识、关系、需求和反馈。还需要评估顾客的人口结构和文化潮流。这包括客户身份、他们的特征、位置和经验以及这些因素将影响正在开发的软件的成功的方式。这一行业的重要诀窍是:关注市场,不断寻求以客户为中心的投入,并以客户为重点进行创新。
3.受聘劳动力
劳动力参与是贯穿规划和发展阶段的一个重要工具。缺乏参与导致工作满意度下降,直接影响生产力和最终产出。短时间的迭代、更少的会议、一对编程、鼓励独立、优先处理、测试驱动的开发、设定时间表和建设性的反馈都是保持员工参与的有效方法。
探索创作艺术
1.创建团队:
您的项目所需的适当人才和技能是具体的,在招聘时应考虑到这一点。这是成功构建软件的一个重要因素。另一个重要的方面是正确分配给正确的开发人员。确定团队成员的个人优势并进行相应的分配。此外,投资于正确的工具来提高团队的生产力是至关重要的。
2.创建过程
所采用的过程将通过模型、方法等的集成直接影响开发生命周期。保持所有这些因素,具体项目和评估的可行性,提前.在开始设定时间表时,应谨慎地估计预算、资源和努力。需求、时间表、里程碑和目标应该在整个团队中得到明确的传达。
3.创建产品
一旦设计获得批准,创建软件的实际过程就开始了。这就是实施和执行战略的地方,也是展示人才的地方。一旦产品被开发出来,就到了在现实世界中实现它的时候了。例行和严格的测试是一个必要的先决条件,以防止任何后遗症。
问自己这些重要的问题
1.这个产品合适吗?
分析客户和用户的需求和兴趣对于回答这个问题有很大的帮助。一旦软件设计完成,就必须设想成品并从可用性的角度对其进行批判性分析,并确保它具有独特的优势。
2.这是一个可行的计划吗?
回答这个问题的最好方法是建立一个小型的成品原型来评估项目的可行性。所有费用都必须仔细考虑,并与软件带来的好处进行权衡。公司列表中的每一项技术都应从严格的需求角度进行审查。
3.开发过程是敏捷的吗?
在实际执行开始之前,为建立流程分配足够的时间。这一进程将大大有助于确定时限、期望、模型、技术采用和资源分配。程序设计的细节也是在开发过程中设置的。
4.这个软件对我的业务可行吗?
在规划阶段完成到开始执行之前,必须根据软件给业务带来的好处对软件进行查看和分析。利益必须证明构建软件的成本和精力是合理的。相当数量的研究和开发是执行阶段的一个强制性先例。最后,应当进行调查和实验,以支持对发展的分析和理由。
坚持以合规为导向的环境
当涉及到软件的开发时,做你的研究并确保你不会在任何基本的遵从性上妥协。以下是供你阅读的清单:
-
PCI-“支付卡行业数据安全标准”(PCI DSS)适用于接受信用卡支付的任何规模的公司或企业。如果您的软件设计用于接受信用卡支付和执行信用卡交易,以及存储、处理和传输持卡人数据,则必须向符合PCI标准的托管提供商安全地承载您的数据。
-
HIPAA-“健康保险运输和问责法”(HIPAA)适用于处理病人数据的公司或企业。它设定了保护敏感信息的标准。如果该软件旨在处理、合并或记录受保护的健康信息(PHI),则应确保所有所需的物理、网络和进程安全措施到位并遵循。
-
FISMA-“联邦信息安全管理法”(FISMA)是2002年通过的美国联邦法律,要求联邦机构制定、记录和实施信息安全和保护方案。
-
NIST特别出版物800-53-NIST 800-53 IS建议对联邦信息系统和组织进行安全控制,并为所有联邦信息系统提供文件安全控制。
-
ICS 500-27-收集和分享IC信息资源审计数据的情报共同体标准,按IC元素编号500-27(英文)
专注于成功的六步战略
随着对技术的日益依赖,企业越来越多地考虑构建敏捷软件,以在技术竞争激烈的市场中茁壮成长。智能策略、智能软件和精确的流程被认为是企业成功的充分工具。对于那些正在考虑软件开发并通过软件开发生命周期寻找一个确定的成就模型的人来说,有一个六步的成功策略:
1.计划:
从一开始就有一个计划。这个计划可以在这个过程中演变和改变,但是它必须站在评估项目的优点和弱点的最前沿。这是第一步,也是最重要的一步。
2.检查:
对项目的进展、利弊和执行情况进行初步和不断的审查,将确保时间表、预算和费用保持最初计划的水平。
3.设计:
这就是这个项目得以实现的地方。开发了该项目的基本结构,实现了该项目的体系结构。该项目的设计将为开发阶段的其余部分设定标准。它还将有助于通过采用某些先决条件来查明和纠正任何缺陷。
4.执行:
在这一阶段,软件正在实际开发,流程正在遵循,并正在进行集成,同时启动了一个试点项目,对工作进行分析,并确保它们反映指定的标准。
5.测试:
测试是反复进行的,以识别缺陷、修复系统中的任何潜在缺陷、度量质量和识别软件功能的平滑性。
6.维持:
这最后阶段往往被忽视,但它是非常重要的。维护和升级过程将定义软件的生命周期及其适应用户不断变化的需求的能力。