分析设计01 软件工程化——好软件是设计出来的,不是编出来的

1、为什么要工程化:降低项目失败的风险

1.1 导致项目失败的两大主因:

  • 软件设计水平低
  • 严重依赖开发人员的编程技术能力

1.2 解决方法:

1)、设计水平低:在软件工程中加入业务设计与应用设计,并将分析与设计进行标准化,结构化,流程化以降低分析与设计的难度。

  • 通过工程化的管理以提升软件分析和设计的质量、减少不必要的失误
  • 以工程化的方法快速培养、提升需求分析与设计人员的能力
  • 通过工程化方法,将业务应用架构与技术架构进行解耦
  • 模块化开发、为后续开发维护提供模块化组件提供很好的输入源

通过以上方法来弥补软件设计方面的短板。

2)、编程技术方面

  • 紧跟软件前沿技术与方法
  • 研究突破性关键技术
  • 快速搭建起自己的开发平台与快速开发中台

 

2、软件企业现实遇到的3低问题——软件工程的难点

2.1 用户视角看问题:应用价值不高、无法响应需求变化、无法很好对数据进行挖掘

应用价值 软件仅解决了基本的执行层面的‘手工替代’,台账桌面化,操作电脑化,虽然使用了多年,经营管理层无法将数据和信息完全的用来支持企业的计划、组织、管理、监控与分析中,无法提供实时、准确、完整的数据,为企业的经营管理者提供决策管理依据。
软件应变能力 系统一上线之后,随着使用的频率越来越高,产生的需求的变化也越来越频繁,但软件却很难快速的响应业务的变化
数据挖掘 企业不同时期的数据不连续或不能共享,或企业存在多种不同的系统 ,虽然守着大量的数据,却难以进行二次、三次的挖掘与应用,以提供良好的决策分析

2.2 开发商视角看问题:产品价值低易被同质低价竞争、产品质量不高、产品复用率低下

产品价值 由于软件给客户带来的价值不高,导致软件的收益减少,收益少又影响了对新产品研发的投入,从而形成了业内同质竞争、低价竞争等问题
产品质量 开发质量低,从需求调研到上线,缺少一套全过程的设计方法的体系,特别是前期花费大量的人力和时间获得的分析设计成果,多以文字说明为主,或附一些简单的图形,这样与客户沟通交流难度大且效果不明显,同时与企业内部的开发人员沟通表达意图的效率也低下,从而出现了需求不够明确或伪需求,从而出现需求失真、遗漏、设计上的编差等问题,从而导致了低质量的软件被开发出来
产品复用

每开发一个产品都做着初级的劳动,造成了高成本、低效率,从而对客户的需求变化响应速度慢等问题

若利用问题不解决,则直接影响到客户的满意度,也增大了企业开发的成本

 

3、如何解决软件企业的3低问题

存在以上问题需从软件工程的构成上来进行分析,现在有的软件工程:有需求与设计,但设计更多的是架构技术上的设计,直接就匆匆进入了开发过程

分析设计01 软件工程化——好软件是设计出来的,不是编出来的

从上图可以看出,上面所有的过程都是围绕着功能实现而进行的:

需求工程:重点是获取功能需求、以收集、分析及确定客户对系统的功能需求为主

设计工程:基本都是软件架构、技术设计部分,重点全是围绕如何实现功能,以系统结构,数据接口,数据库,界面等内容的设计为主

也就是我们的重点是如何把软件开发出来,如何交付,如何快速上线上,却不是怎么把产品做好,质量做好,实现客户价值上。这里面少了一步如何设计业务上,如下图:

分析设计01 软件工程化——好软件是设计出来的,不是编出来的

传统的软件工程,从第1步直接就跳到了第3步上,而第2步的设计是以需求实现后要为客户带来最大价值(效率、效益)为目标而进行的设计。

业务设计与应用设计:先设计出理想的客户业务形态,再以实现这个理想的业务形态为目标去判断 和设计需要用到的功能,再将这些功能作为“为支持实现理想的业务状态而存在”,以此来优化业务,提升客户价值与产品质量为主。

因此:

1、作为软件工程:解决缺少从”业务视角“分析和设计的方法

传统的设计 更好的设计
针对“功能需求”的获取和设计 先建立优化的业务体系,再将功能作为优化后的业务运行提供支持服务的信息化手段

 

2、作为软件企业: 解决以“设计”为驱动的理念

架构不等于设计,架构只是设计中后期实现的一部分,是粗粒度的设计

3、作为软件从业人员:树立”客户价值”导向的设计思想

从重功能轻业务的传统观念中摆脱出来 ,重视客户价值,以客户价值为引导,理解客户买的是价值,而功能则是为实现价值而存在的。

来源:pub.ryan

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月7日
下一篇 2020年11月7日

相关推荐