最近一直比较关注需求分析,很多时候经常在来来回回修改..一些原因是代码写的不够'完美',还有原因就是需求理解不透彻,没能纵观全局,没能提前预想到一些'必须的'扩展功能
接下来准备拿几个实例来练习下,如何做需求分析
因为没从头开始参与项目,练习都是后期补充的..
电厂环保管理
本篇主要关注整体分析
一家专门致力于火电厂烟气脱硫、脱硝运营管理、在线监测、专业化培训及自主研发的高新技术服务型环保公司
“环保智能化运营管理系统”**,适用于燃煤电厂脱硫、脱硝运营管理的信息系统。该系统可以实现同时在线监控多个电厂、多台机组的污染物状况及设备运行状况,通过远程诊断等方法解决人员分离,技术力量分散的难题,实现运营管理项目质量信息的智能化、网络化、数字化管理。该系统已通过中国信息化推进联盟电力信息化专业委员会的专家评审,具有行业内广泛推广的价值。
具有高效、精准、节能、安全、智能等特点,可有效地提高脱硫脱硝系统运营管理的安全性、经济性和可靠性。该系统已达到行业领先水平,具有较高的应用推广价值和专业示范作用。
框架采用主流开发平台,集成系统(物料管理系统,生产设备管理系统、供应链管理系统、仿真培训系统、烟气在线监测系统、OA办公系统等)
整个项目内容挺多,类似一个电厂的信息管理系统.主要分 1. 基础信息台账的增删改查.没有关联计算的.(类信息管理) 2. 有较多关联计算的,按照配置规则,抽取数据,并按公式做计算的.() 3. 报表类的,对简单台账的罗列,分月报年报,半年报 编制,审核,查看 4. 报表类的,对整体相关表数据的抽取计算的,编制的 5. 图表,分析类 的
生产准备主要工作: -完成技术准备工作,包括脱硫脱硝工程相关资料的搜集、培训资料的复印或编制,进口设备资料的翻译,系统图册的准备,各试运行方案的编制,运行规程、制度的编制等。 -完成脱硫脱硝工程的物资准备工作,落实保证工程投运时和投运后正常运行所需要的各类物资,包括石灰石等原料采购及脱硫石膏的处理。 -参加各系统、设备的分部试运行工作及整套脱硫脱硝系统的试运行工作并完成168小时试运行,最后投入试生产阶段。 -负责脱硫脱硝系统的设备管理,组织检修力量消缺、制定设备接受后的检修安排;参加脱硫脱硝系统性能测试,工程竣工验收等工作。
运营总承包主要工作: -脱硫脱硝系统内所有设备的运行、监控、操作、巡检、例行试验、事故处理,严格执行二票三制(工作票、操作票:交接班制、巡回检查制、设备定期试验轮换制),杜绝误操作,明确安全重点,确保人身、设备安全运行。 -保障脱硫脱硝系统稳定、经济运行,完成各项考核指标。 -针对脱硫脱硝系统设备薄弱环节,制定应急处理预案。对每次发生的设备异常、系统故障,组织相关人员进行分析,落实相应整改措施,并组织人员认真学习。 ―脱硫脱硝系统所有设备的日常管理、维护保养、消缺、检修及脱硫脱硝系统范围内的保洁工作;并根据机组检修安排,编制脱硫脱硝设备检修计划。 -脱硫脱硝系统投运后的技术管理工作(如运行日志、设备台帐、检修台帐、运行规程、检修规程等)及技改项目的申报和实施等。 -脱硫脱硝系统范围内的安全保卫和消防管理等工作。 -脱硫脱硝系统范围内的建、构筑物及内部设施的维护保养、检修等。 -脱硫脱硝系统所需的石灰石、化学药品等原材料采购。 -脱硫脱硝系统日常维护及检修所需的备品备件、材料、工器具等。 -脱硫石膏的综合利用处理。
---以上先查找了一些脱硫脱销的相关知识
做到项目后期,越来越深刻地体会到,前期需求的重要性,还有就是分享,项目经理你可能了解了用例需求,知道了大概,要让所有参与者都了解大概,知道所处的位置,做出来的用处,给谁用,什么时候用,怎么用,带来什么益处,之前如何做的.
到后期,大家主动性太差,想逃离,举个例子:1.原本以为制造一个普通的qq汽车,有轮子能走就可以了,后来发现不对,原来想制造奔驰宝马,这怎么可以呢 2,原本以为为客户做一顿饭而已,经理让做什么就做什么,总不能一顿饭吃一天吧,忙就忙点吧,后来发现不对,原来不是吃一顿饭,是一天,一周,一月甚至一年 3,原本以为应付下,差不多就可以了,后来发现不对,赖上你了 4.还是修炼不到家啊.什么时候能够(省去n个字)就好了,慎独
前期调研,可行性验证,demo例子没做好,边做边学习,导致很凌乱,到最后,自己做的东西自己看着都恶心,删了重做太可惜,没时间,也没钱拿啊,,,继续维护着吧,持续纠结--
看着恶心,还有个原因改动太频繁,一个画面总是今天看出来少个这,这里错了,明天又说那里要纠正了,改来改去反反复复,不想在做项目,像在迭代开发,刚开始.
我还属于比较老实认真型的,常加班,常熬夜,擦,也不错如此,,仍然垃圾一堆
显示怀疑自己能力,再怀疑客户太难缠,最后规则bosi太不称职.再下去怀疑软件开发真不是人干的~
想起来有人评价一家大公司,代码写的一个烂~~但测试很牛逼,你再隐藏的bug,总能给你测出来,反复改反复改,最总无措
需求列表
不谈论具体实现,不讨论技术细节,只关心"客户希望有什么",此列表作为最终验证功能实现的参考,作为测试的示例,作为产品推广的广告.---学习如何站在客户立场提需求,如何把需求描述为客户可理解的需求,人人可看懂的需求.
- 必须有,肯定会用的登陆,用户管理,部门管理,角色等不说了.自己没负责的模块也不在说了.
- 没参与的模块主要有:小指标管理,异常报警,运行优化,指标分析. 竞赛管理, 培训管理,环保台账管理.环保文件管理, 运行管理下的交接班管理,培训管理,定期工作安排,---尿素液位统计.
- 参与的模块主要有.运行管理下的基础信息管理(日运行数据,化学分析台账,药品到货,污泥装车,燃煤煤仓,添加剂,消泡剂,接地线安装)
- 运行管理需要统计计算的:启停统计,FGD运行小时数,日运行数据录入,仪表日数据统计,用电量计算,节电统计,尿素统计.辅机厂用电率...
- 环保管理下的:脱硫日报,DCS日报,脱硫月报,年报....脱硫停运消缺,cems异常,
- 石灰石膏的:石灰石录入,石膏外运,
- CEMS运维:脱硫单,脱硝单,故障检修,
- 设施异常报告:异常情况报告,停运申请,停运消缺,
- 典型工况参数设置,收集,最优工况自动设置.
需求变更(公共问题)
- 更改不是一次性更改,是间隔一定时间,一点点提上来的,每次更改不单是新增程序代码,还包括测试,验证,发布.每次的更改都必定有对应的测试,发布,甚至一些欠考虑的逻辑,导致之前的一些功能要求重写..最终测试,发布花费的时间越多,多次更改后花费的总时间,无用功也就越多.
- 一个表维护的画面,分了多个画面(台账录入,查询,月报编制,审核,查询),每次简单的一个字段更改需要多个画面做对应的同步更改.包括一些页面样式的简单修改都会导致多个画面同步改.
- 整体需求把握不到位,导致沟通成本的增加;导致需求变更的时间 间距拉长,从而多了一些没必要的测试验证;导致一些'本可预想到'的功能没能及时提出;还有一些本需要确认好再做的功能,太匆忙应付导致后期维护成本的增加;
- '框架'投入太少,急于完成功能,而没能反思总结;原本很多'通用功能'可提供'通用写法'的,没能及时沟通确认;原本即使只收到到画面也可再一个画面完成的功能,却分很多画面来操作;--导致后期维护,以及人员变动浪费很多精力
需求变更(典型工况)
- 最早是另一个同事做的,最后发现方案不对,从头再来..原本以为完成重新做,从数据库表字段设计,到存储过程,到画面,做的差不多时,又要求使用原有数据库表,各表字段名称不统一 --导致写好的一个很长的存储过程,重头到尾重新检查测试.
- 要求方便比对数据,提供不正确数据备份查询 --导致画面新增弹出画面,可查询不满足稳定工况的数据,以及不满足原因(后隐藏了没用)
- 工况条件配置表中新增一个字段(指标分析可能用到),采集项也要做增删改查,采集时长提供录入画面 --导致数据库添加字段,画面做修改.提供采集项列表维护功能,提供修改采集时长功能
- 原本只是对批次明细求平均的,后新增了一些指标(浆液循环泵单耗,fgd工艺水单耗,脱硫用粉单耗独立计算) --导致数据库字段更改,存储过程更改.
- 新增设为最优工况可自动判断(之前人工挑选后点击按钮,设置最优..后改为点击自动判断后去查找最优[最优条件先比较泵单耗,如果相等再比较ph] --程序修改,新增代码查找并设置最优工况
- 点击自动判断最优,改为数据库配置..如果设置了自动判断,在采集存储过程中自动判断. --原有的代码不再使用,修改存储过程,在新增批次的时候,根据配置自动判断最优
- 后又新增求差值的采集项.采集项不单求平均,还要求差值. --导致数据库添加字段,设置计算方式,并修改画面,添加可设置求平均或求差值的按钮
- 后又一堆指标要求再存储过程中计算并插入数据,同时指标的一些系数要求可配置. --维护采集项列表,验证新增指标的计算值是否正确,验证通常因为一些仪表配置或计算公式使用的仪表修改等原因,反复测试很多次,花费很多时间
- 为了对标寻因又新增,泵组合记录,整点以及泵组合更改时要记录下和稳定工况一样的指标值. --数据库新增泵组合统计对应的表,并修改存储过程,同时维护对应表
- 对于需要计算的指标,原本只记录当前稳定机组对应的值,后改为电厂内机组都需统计,原指标名称写死的,后改为机组名称做前缀 --修改存储过程.
- 后上外二电厂,一些计算公式还不一样,要做特殊处理. --维护外二典型工况的数据,验证采集值,验证外二电厂指标计算结果值
- 新增导出excel功能,导出所需批次
需求变更(运行报表)
- 日数据录入,要求数据可撤回,日煤/尿素要求后期可修改. --新增日数据撤回画面,和尿素/日煤修改画面
- 日用电计算,计算公式的确认,以及基础仪表的配置.前期都变更多次.花费很多时间.后期计算系数要求可配变更多次,一些配置到电厂,后又要求到机组,甚至到设备.后应用与外二电厂,很多组合也变要求组合可配置,从而整体又重构日计算配置. --仪表数据库配置不断修改,差错困难,花费很多时间来验证.
- 日计算要求可撤回,辅机厂用电率要求可修改 --新增辅机厂用电率修改画面
- 设备启停浪费了大量的时间,部分是程序原因,部分是dcs数据的问题,如断网,数据延迟,部分数据后期补录等原因导致启停记录记过的错误..还有启停要求数据可维护 --新增启停维护画面,将时间提前5分钟,当前去读取5分钟前的数据
- 几张普通的报表维护,在没能确定的前提下,却要求做多张画面(日录入,日审核,日查询,月编制,月审核,月查询) --做的太快反而导致很多无用功,反反复复.做了很多画面.
- 化学分析录入:录入本是一个人后要求均可改,且日录入要求有审核 --修改程序,新增日审核画面,牵涉多个画面
- 添加剂录入:原本是人工录入各药品数量,后改为类型可配置,类型可下拉选择. --修改程序,数据库维护添加剂类型.牵涉多个画面
- 消泡剂录入:原报表不分电厂机组,后期先要求加电厂,后又加机组,且值次班次要下拉选择,录入提交后要重新自动计算剩余(上次剩余+领取-使用) --修改程序,修改数据库表,牵涉多个画面
- 尿素日统计:原本根据报表做单表的增删改,后改为存储过程读取,按给定公式计算,且所有系数可配.后来又修改公式,修改配置参数;又要求数据可维护,能补录数据 --修改存储过程,修改表结构,修改画面增加功能
- 污泥装车:原本一张表增删改,后新增电厂字段,后又新增毛重,磅单号,车号;还要求车号可选,车号车重可配置,净重自动计算;后又要求可上传附件. --各个修改不是一次性提出,反反复复多次更改,多个画面用到.导致多次无用功.
- 药品到货:报表导出格式变更多次,月编制要求添加汇总,录入时可选择药品,月编制时药品名称做为grid列信息显示. --数据库以及程序的修改,牵涉多个画面
- 原本各画面审核通过的数据不可再修改,后都要求可删除 --添加删除功能
需求变更(环保报表)
- 起初由另一个同事做,,后来要求完善每个画面的 导出功能,同时按指定公式计算各项的录入值.后来修改的过程中,发现程序有很多漏洞.反复修改 --不停修改画面,却一直没能及时整体重构.
- 环保台账管理,起初只录入,后要求都提供删除功能.还有环保报表一些字段原本计划不可更改,后又要求可改,反复多次,后将所有字段都放开可改 --修改程序,添加删除功能
- 环保报表,主要是数据牵涉太多,一个单独的指标值常要多次修改验证才能确定.数据来源多处,导致查问题时不方便.花费大量时间 --多次修改程序.一些数据需要修改日计算,在日计算时计算.
- 月报编制,都要求添加审核功能,添加审核画面.还有很多要求月报编制是grid添加汇总功能. --修改程序修改画面
- 整体需求理解太片面导致的一些无用功.因为经过人员变动,而前期对于代码,没能统一写法,对于需求没能综合管理变更,导致后期对这个模块浪费很多时间,比如指出一个要修改的,修改后不能很好地修改相关代码,导致的一些无用功. --不停的匆忙修改程序,却一直没能整体好好整理下程序,也没能很好地理清各个功能点.
- 环保日录入,又要求改为按机组统计,原本在dcs统计时,计算的数据要在日报中计算,且要求修改日运行录入的画面,新增所需字段.还牵涉原本的一些读数规则更改. --导致数据库表结构,以及画面的修改
需求概述
项目都接近尾声的时候,在一次跟bosi闲聊中有问起项目初衷,是谁发起这个项目,主要想做什么
主要回答如下:该客户主要做电厂脱硫脱硫的,而这些设备安装到电厂后,有没有运行不清楚(希望能监测设备启停状况),运行的时候效率如何,效率主要看设备用电量以及耗电率(希望能自动计算设备用电量和耗电率),除了耗电率外,还有很多其他指标,比如运行指标,环保指标,so2去除量,脱硫效率,投运率等(也希望能同时计算这些指标的值) ,如何达到能耗最低,都是凭运行人员的经验(希望能根据历史数据,自动分析,优化运行情况 ).另外呢,每个月会向环保局提供一些固定格式的报表.(希望能报表自动生成).在整个运行过程中一些必要的信息录入,用来计算各指标值,比如每天的发电量,耗煤量,煤硫份等(希望能有地方提供对这些信息的维护),除了计算必须外,还有一些日常工作,需要做记录的,比如石灰石买入,石膏外运,药品到货,污泥外运等等(希望能对这些信息做维护,没有逻辑计算,只是简单地录入,查询,每月出一份月报).
贪多嚼不烂
不要贪多,作为一个开发人员,希望能够"完整"负责一些模块的开发,是值得赞扬的,但需要机会,当机会来临之前,不要太贪多,先把你自己负责的那一两个画面,或功能做好,做到极致~~每个都可用来做模板,才有类似的,可极其快速的得到结果才行..
做好储备的工作.