丰田公司推行精益思想,主要通过消除浪费来提高效益。大野耐一说过:只要消除浪费,就可以提高十倍的效益。精益生产中有如下其中浪费:
1.过量生产
2.等待
3.不必要动作
4.运输
5.过度加工
6.不必要的库存
7.不合格品
在敏捷开发引入到产品开发中后,我们逐步意识到,在产品开发中也跟生产制造一样,存在许多浪费,有一些浪费还很相似。常见的有如下浪费:
1.通过调查,产品中常用的功能只有20%,而超过50%的功能几乎是从来不用的。这50%的功能都是过量生产的浪费。如果我们只开发用户使用的50%的功能,将会大大降低产品的成本。
2.在软件开发活动中,目前还有许多团队由开发工程是和测试工程师组成,有的还分了前端开发工程师和后端开发工程师,在大家需要协同工作的时候,由于进度问题经常存在一个人等待另一个人的情况,充满了等待的浪费。
3.在传统的软件开发流程中,会设置一些评审和审批的节点,而参加评审和负责审批的人,经常对软件并不熟悉,这样评审和审批就会流于形式,这些动作也就没必要存在了。关于软件开发,应该由开发团队负责,而不应该由团队外的人去承担责任。更上一级的领导需要组建好团队,并培养好团队,而不是在自己不熟悉的具体事务上去给团队添加障碍。
4.软件过程中用到的有文档和代码,运输比较简单,特别是现在CI/CD工具的成熟,通过利用工具,我们可以提高运输效率。在这里,我们只要用好工具,做好自动化,是可以大大减少浪费的。当然,如果我们还是采用手工构建,手工部署,手工测试的方式,那还是在重复浪费。
5.过度加工体现在需求镀金上。经常有程序员在开发需求时,喜欢脑补需求,并自动增加需求,给需求镀金,做出一些当前阶段还用不上的功能。通过在需求阶段明确验收用例,采用ATDD的方式,可以杜绝此项浪费,只编写通过测试的代码。
6.在Scrum框架下进行软件开发时,有产品代办列表和迭代代办列表、产品增量,产品代办列表和产品增量是容易产生库存的地方。如果我们的产品增量不能及时地交付给客户,就产生了库存。如果我们分析了过多的需求,在产品代办列表里就产生了库存,这时当有新的高优先级的需求进入时,低优先级的分析好的需求就浪费掉了。
7.对于不合格品,产品开发必须追求零缺陷,而且缺陷发现的越早越好,最佳实践是采用TDD的方法进行开发。缺陷带来返工,返工带来浪费。
网友评论