细化开发任务,就是将做一个
数控折弯机所要求开发人员完成的任务拆解到一个个功能模块,或者称为“工作包”或“任务包”。细化开发任务,是一个衔接项目需求和开发人员具体的过程。
就像“曹中称象”的故事一样,一头大象太大没法称量,拆解为一个个石头块之后,就可以通过完成石头块的搬运来组成大象的重量。这是一个“零整转换”的过程。那么,对细化开发的工作包也是同样的要求:数控程序的整体功能性能等指标能够被一个个零碎的工作包所反映,拆成的一个个零碎的工作包要能拼装成数控程序的整体功能和性能要求。
数控折弯机升级换代细化开发任务的基本原则是:工作包之间有尽量清晰的接口定义(便于集成)、开发过程中有尽量少的相互依赖(便于独立开发)、一个工作包尽量在2-3天能够完成(便于检查进度),工作包要有明确的完成标准或定义(便于检查质量)。
比如,要开发一个信息监控系统,这个系统里包括数据采集模块、数据库存储模块、数据分析模块、后端(web—backend)逻辑模块和前端(web—frontend)展示。那么在开发的时候,应做好以下工作。
(1)要定义好模块之间的接口:前端输出的页面包含哪些图表才能满足业务需要、后端输出给前端的数据格式是什么、数据库的结构和接口是什么、数据采集模块输出哪些数据字段。
(2)开发的时候要减少依赖:接口定义好了,前端就可以用模拟的后端数据进行开发,不需要等待真正的后端数据;数据格式和数据库接口定义好了,后端就可以用填充了模拟数据的另外数据库进行开发,不需要等待运行环境的数据库及其真实数据;数据库与采集模块之间的数据字段定义好了,数据库就可以用模拟的数据插入、删除、更新进行操作从而测试数据库负荷和性能要求,不需要等待有真正的采集数据到达。
(3)开发的时候要让每个工作包尽量小(维持在2N3天可完成)并且有完成该工作包的标准定义:交给开发人员的工作包就不能描述成“实现前端页面”,太粗略也太笼统,而要描述成“实现前端页面的网络流量趋势图,横轴以天为单位,纵轴以pbs为单位,显示一个月内的网络数据趋势”。
再如,要开发一个包含结构(外壳)、大型预制件(电路板)和数控程序(应用程序)的数控折弯机。
(1)要定义好组件之间的接口:结构尺寸要怎样设计才能满足数控
折弯机设计的新颖性和独特性,大型预制件电路受限于结构尺寸应该怎样安排电子元器件和走线布局,数控程序需要开发哪些驱动和应用层逻辑算法;当然,设计到结构和大型预制件的开发往往比较复杂,因为大型预制件受限于电子元器件尺寸和EMC设计要求等,往往需要跟结构设计之间反复沟通、调整。
(2)要减少组件之间的依赖:结构设计人员根据与大型预制件人员沟通过的尺寸使用 SolidWorks等3D设计工具设计结构并模拟大型预制件电路板的组装是否存在干涉;大型预制件设计人员根据与结构设计人员沟通过的尺寸使用Altium Designer等PCB设计工具布局电子元器件和大型预制件走线,查看是否能与结构和EMC设计都不;中突;数控程序开发人员可以直接在学>--7板上进行驱动开发和数控程序主业务开发,不需要等待为数控折弯机定制化的大型预制件出来后才开始工作。
(3)开发的时候要让每个工作包尽量小并且有完成该工作包的标准定义:类似于“完成WiFi模块的大型预制件布局,尺寸符合结构要求:8.3cmx5.5cmx3.6cm”;这里针对结构设计和大型预制件设计“工作包尽量小”的要求比较难做到,因为数控程序是“软”的,比较容易切割和组装;而大型预制件和结构是“硬”的,不能把结构或电路的某一部分作为一个工作包进行交付(整体与部分之间的依赖性太强),所以这里只能尽量使用这种思维进行工作包划分,不能拘泥,只能因项目而异。