猜你喜欢
大话软件工程案例篇——项目与产品开发实战

大话软件工程案例篇——项目与产品开发实战

书籍作者:李鸿君 ISBN:9787302657965
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9904
创建日期:2024-06-26 发布日期:2024-06-26
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书通过定制系统和标准产品的开发案例,介绍如何结合软件工程和项目管理的知识,按照标准化、工程化的方式协同完成软件的开发。其中定制系统的开发案例涉及售前咨询、项目准备、需求分析与设计、测试验证、上线培训等,给出了每个环节需要的理论、方法、工具、标准和交付物。标准产品的研发案例则涉及构建具有随需应变能力系统的设计思路、建模方法等。

本书是《大话软件工程—需求分析与软件设计》一书的姊妹篇,本书主讲案例,后者主讲方法,本书是后者中理论和方法的落地实践。

数字化转型是现今企业IT发展的新目标,数字化转型需要大量培养数字化时代所需的人才和技能,本书可作为培养软件公司和客户企业双方人才的培训教材,如软件工程师(包括需求、设计、开发、实施)、产品经理、项目经理、企业数字化转型的业务骨干人才等。

作者简介

资深需求咨询顾问,具有十年的工程管理经验,近三十年从事管理信息化咨询、需求分析、系统的规划架构以及软件工程的培训经历。

作者专注于研究软件工程实用化的理论、方法、标准等,研究的重点有两个方向:一是探索建立软件“工程化设计”的方法体系,让软件工程从一门 “高深的知识”转化为一套可以 “实操的技术” ;二是研究以客户价值为导向的软件设计方法,提出在软件工程中加入“业务设计”和“应用设计”的环节及相关的设计方法。

在进行企业管理信息化咨询工作的同时,致力于软件工程化设计方法的完善、验证和推广。


前言

前言

1. 本书的内容

本书的内容主要包括两个案例,其中主案例是一个定制系统的开发(也称为项目开发、项目),次案例是一个标准产品的研发(也称为产品研发、产品),其中,

定制系统的开发:以一个软件项目(定制系统)的开发过程为主线,讲解开发过程中每个环节需要的理论、方法、工具、标准和交付物,开发过程包括售前咨询、项目准备、需求工程、设计工程、对编码工程的交底、对测试工程成果的验证、上线准备、实施培训等环节。开发过程涉及软件工程和项目管理的相关知识。

标准产品的研发:重点介绍研发一款标准产品的思路、理论和基本方法,包括产品的需求分析、规划方法、建模方法等,特别详细介绍让产品具有随需应变能力的建模概念和方法。标准产品的研发涉及模块化、平台化系统的设计知识。

2. 本书的背景

能够按质、按量、按时完成软件开发任务,是所有的软件工程师、特别是项目经理和产品经理追求的最高目标,同时也是客户方的最大期望。

近年来各个行业(如建筑业、制造业等)都发生了巨大的变化,软件行业利用IT技术为其他所有行业进行赋能,为其他行业的变化提供动力,已经形成了没有软件行业的支持任何一个行业的持续向上发展都是不可想象的局面,同时下一个发展阶段也已经开始,深度实现了信息化管理的企业又开始向数字化企业转型。

软件行业自身也是一种制造业(虽然产品特殊),但在经过了二三十年的发展后,软件自身的开发方式却没有太令人印象深刻的变化(而同期其他传统行业却在IT技术的加持下发生了非常显著的变化),特别是在软件行业的重要领域“企业管理信息化”方面,还在沿用已经重复了多年的、低效低质的开发方式。可以说软件开发用着最先进的硬件工具(计算机、网络等),但开发方式却是落后的手工作坊式。在公司中常遇到以下的问题,参见图1。


图1 交付的系统与预想的不一样

需求分析师抱怨客户:不清楚要做什么系统,总说不清楚需求,而且需求老在变,等等。

需求工程师抱怨程序员:听不懂需求,总不能按照我说的要求完成开发,等等。

程序员抱怨需求工程师:交底时说不清楚需求,业务逻辑不清楚,需要反复进行沟通,等等。

用户抱怨软件公司:交付的系统与预想的不一样,这不是我想要的系统,等等。

在软件行业出现这种认知偏差的场景已是常态,总是不断地被重复,与系统开发密切相关的人都在抱怨其他人“不清楚在说什么,不清楚在做什么”,试想这样的系统质量能好吗?客户的满意度能高吗?这样开发出来的系统成功率能有多少?

不论是建筑业还是制造业,出现如此频繁的偏差都不可能是常态(企业会破产)。未来各个行业对管理信息化、数字化转型的需求会越来越多,业务需求也会越来越多样、复杂,因此软件行业也急需像其他行业一样,在“开发、管理”方面有一个根本性的变化。

大多数有一定规模的软件企业都在不断探索如何建立软件开发过程的标准化体系,为此也耗费了大量的人力、时间和管理成本,但由于没有找到正确的方法,因此最终未能获得预期的效果。这使得软件企业处于非常纠结的状态:不推进标准化不行(存在的大量问题都是缺乏标准化带来的),花大力气推进标准化又没有获得期望的结果,问题出在哪里?应该如何进行软件开发过程的标准化呢?

3. 本书的目的

本书的目的就是通过项目开发的案例,探索出现上述问题的原因并给出解决方案。

造成上述问题的关键在于软件行业的历史短,特别是软件开发的前期工作,如需求调研、需求分析和软件设计等方面缺乏标准化的方法、工具,且从事标准化推进工作的担当人缺乏相应的知识和经验。要想解决这个问题,站在软件行业的纯技术立场或纯业务立场都不足以找到理想的解决方案。利用跨界思维可能会带来不同的方法和效果。向建筑、制造等传统工程行业学习、借鉴它们成熟的经验,有助于快速、高效地找到一套适合解决软件开发与管理的标准化解决方案。

本书以《大话软件工程—需求分析与软件设计》一书中提出的理论、方法、工具、标准等知识为基础,通过定制系统/标准产品的开发案例,将上述知识应用在开发过程中,并讲述如何借鉴传统行业的经验将这些知识进行标准化,探索如何为软件公司建立一套有实用价值的知识体系。

4. 本书的特点

本书以一个定制系统的开发过程为主线,由本书作者担任案例中指导顾问的角色,对项目开发过程中的各阶段、各环节提供帮助指导,包括作为咨询师和架构师参与开发过程、对各个阶段所需作业知识和方法的培训、需求分析和设计模板的使用指导,并对开发过程中的各种做法进行点评和答疑。这样可以做到一边引导读者观看软件开发的执行、管理过程,一边详细地讲述案例开发过程中每个步骤与《大话软件工程—需求分析与软件设计》一书中的理论、方法、标准和模板的关联关系,让读者通过对本书的阅读可以体验一遍“理论+实践”的实战过程。

案例以软件公司和客户企业的双视角展开。做好一款软件,需要客户与软件公司双方紧密配合才能实现,这就需要双方相互了解对方的想法和做法,由于软件开发的过程是以软件公司为主、客户为辅进行的,所以本书的内容是以软件公司视角为主,客户视角为辅展开的,尝试着从两个视角来看一个软件项目的实施过程。让读者同时了解双方在每个阶段的想法和对策。

1)软件公司一方(包括项目经理、需求工程师、架构师/设计师、程序员等)

不但要清楚地知道自己应该如何做,而且也应该对客户的想法和做法有所了解,只有如此才能在售前咨询阶段、项目执行阶段与客户的相关部门和业务骨干做好配合。为什么这样说呢?因为常常有人吐槽说:怎么讲解用户都不明白,而且总在改需求,不知道需求什么时候才能稳定下来。此时就要从双方的立场看问题,客户方参与信息化的人也有很大的压力,由于双方在信息化知识方面的不对称,客户方面的担当者说不清楚需求。另外,他们是系统的用户或信息中心的员工,在客户企业中也没有很高的地位和话语权,很多问题不能(或不敢)做决定,因为一旦出了问题这些人是要负责的,所以软件工程师必须要理解客户的情况。

2)客户企业一方(信息中心、系统用户、高层领导等)

需要知道软件公司是如何进行项目的启动、规划、执行和监控等工作的。只有如此才能配合软件公司高效、高质地完成系统的开发和导入工作。帮助客户方了解软件公司的业务运作过程是很重要的,例如,客户经常会说,不就是让你改一下,有那么难吗?客户不知软件的架构设计、开发就如同制造一部复杂的机器一样,某一部分改动了,有可能引起其他部分一连串的变动,造成系统不稳定或缺陷(Bug)频出的问题。所以,在开发过程中要利用一切机会向客户说明自己的工作,取得客户的理解。

5. 本书的对象

本书的读者对象可以是从事下述各领域工作的人(因企业不同定义也不同,仅作参考)。

1)软件公司

本书提供两个案例:定制系统的开发和标准产品的研发,讲述在开发过程中各个岗位的工作方法以及工作人员是如何协调工作的,适合本书的岗位如下。

项目经理:定制系统开发相关的组织、规划、计划、执行、验收以及项目收尾。

产品经理:标准产品的需求分析、产品的架构思路、设计方法等。

业务人员:包括售前咨询师、需求工程师、软件架构师、业务设计师、实施工程师等,他们所从事的工作包括需求调研、需求分析、业务设计,应用设计的方法、标准。

技术人员:包括编程工程师、测试工程师等希望学习需求分析、软件设计内容的技术人员,以及希望从技术岗转行到业务岗的人员。

2)企业信息中心

由于国家积极推进企业管理信息化和企业数字化转型,企业建设的信息系统越来越多,规模和复杂度也越来越大,且部分企业还成立了具有需求分析、软件设计和编码测试能力的部门,因此非常需要具有需求分析和软件设计能力的专业人才。

3)培训机构

可以培训教授相关课程的老师以及从事软件公司各类岗位的学员。采用本书提供的知识体系和项目案例,可以大幅度地缩短培训周期,增加学员的实战能力。

4)大学

作为软件工程专业、信息管理专业等学生的辅助教材,帮助学生了解软件的研发过程以及所需要的理论、方法、标准和模板,可以让学生在进入企业前掌握一定的实战能力。

本书讲述的内容是基于作者常年从事咨询、架构、培训过程中的实战经验总结整理而成的,并在多年的实践中进行了验证,希望能够给读者以有益的启发和参考。本书建立了交流社群(QQ:816940768),欢迎读者进群交流,相互促进,共同提高。


李鸿君

2024年2月于北京


产品特色