记一次WMS的系统改造(3)— 行进中的复盘
行进中的波折
革新总会面对一些阻力和风险,一种新的观念、一种新的模式要来替代既有的产品,从来都不是一件简单的事,在WMS改造这件事上我们一开始就提出两种概念货物驱动和任务驱动,并找到一个标杆产品Slack就是为了建立心理上的信任感,并从侧面证明这件事不是一件纯新的模式,提供成功案例来降低阻力,但在实际落地的时候还是没有多么顺利。
惯性的强大力量
有时候大家不支持和反对,并不是真的不支持和反对,而是因为习惯某一种模式和状态,而恰恰新的设计和他熟悉的不同。
习惯就意味着第一时间出现在脑中的就是那个样子,所以很难想象出还有其他的可能性,也没有办法接受其他的可能性,这也就是所谓的想象力比较匮乏吧。
在做这一版WMS的过程中,首先出现的问题是,产品经理的设计拉不齐。说完设计的方向和原则后,大家一块做了一个功能的设计用于对齐设计理念,然分别去做了不同功能的设计,在阶段汇总时立即就发现,绝大多数人的设计都没有做到明显的体验改善。
当时发现这种情况后,大家坐在一起一页一页的复盘每个功能每个点的。里面其实包含了几种情况
- 思路上不自觉的、很自然的就转回原来的设计思路上
- 碰见设计样板中没有提供,不能照抄的功能点,不自觉的用原来的模式进行设计,不能领会新的设计的风格要点
- 遇到苦难的流程,自动切换原来的模式
- 设计的负责人,面对现实的各种细节困境并不能坚定的执行设计思路
面对这样的情况,其实我们采用了两种办法 - 一遍又一遍的高频开设计评审会,让大家高频的对齐设计
- 打破成本的幻想,绝不接受已经设计成这样了、已经做了这么多了、时间太紧了等理由,不合理的设计必须重新设计
三版设计之后(大致1周多的时间),再看总体的设计就很有眼前一亮的感觉了。不过没想到的是最后给UED人员时还有一次反复,因为他们不理解生产类的软件系统的设计要点,包含的特别放大的部分和特别明确的分区,经过UED人员后反而都弱化了,所以在效果图出来后还要做一轮调整。
除了UI设计的问题,还有业务架构设计的问题。
传统业务系统的三个问题
UI设计进行中的同时我们又复盘了一遍即有系统的所有菜单,结果从中发现了一个具体的问题。
纵观整个WMS,由三个部分功能组成:
- 业务主流程
- 操作容错/运营容错
- 系统容错
业务主流程,为仓储而设计的主要业务操作节点,业务主流程一般由关键节点和附属节点组成,比如仓储里面有个关键的业务节点叫做“上架”,附属的节点就可能有很多,比如储位推荐、路径推荐、任务分配等等
操作容错/运营容错,生产辅助的软件是一个强人员属性的软件,软件的基础功能就是指导和记录人员的生产动作。不管操作员如何仔细,人员操作在一个比较长的时间范围和比较多的人数范围内,错误都是不可避免的,操作错误需要由系统来提供补救的功能。
系统容错,WMS往往使用环境的条件都不会太好,远离IDC,远离闹市,网络条件很差;服务器和终端的硬件条件往往也很差;而且软件开发本身也不能完全避免BUG的产生;但是因为生产辅助软件的特殊性,每一个软硬件、网络环境等等不可预知因素产生的异常,都会影响到具体的货物,所以一般也会提供一些(或很多)业务工具来进行异常后的生产流畅,确保货物生产不会因为软件原因而无法进行。
即有的系统中,这三部分是混合在一起的,这属于顶层设计问题,新的设计中最开始只考虑了单功能或功能流的使用体验优化,现在就要将重构顶层设计考虑进来了。
业务主流程是正常的系统节点,系统应该围绕着这部分功能,将附属的节点巧妙的融合进去,然后把绝大部分操作容错和系统容错用技术手段处理掉,确实需要人工参与的,需要很慎重的设计一个异常流程,且不能散列放置要让它与正常流程形成闭环。
最终我们设计的方案是 - 运营容错,因为涉及一个系统的动与静的问题,所以要单独拎出来,做一个新的技术方案处理。
::(系统的动与静会单写一篇) 系统容错,尽量让系统自主处理,如非阻塞不设计人工干预流程。
顶层设计的重要性
开始仅仅是想改善一下仓储人员的使用体验,从UI的优化开始一直推导到设计的规范,再发现运营容错的技术方案系统的动与静,还有系统容错软件自动化处理(可能会从此开端WMS的智能化)。
这里我们有一个体悟,一个软件的顶层设计是极其重要的,点线面从来也不是单独存在。后续我想我们部门每个软件都会有一个业务架构师,这么一个人对整个软件的研发太过重要了,他可能不是专职的但岗位职责一定要明确。
下一篇离题一下,写我们在另一套软件上面的优化成果
『2018年12月24日 广州白云』
记一次WMS的系统改造(3)— 行进中的复盘的更多相关文章
- 记一次WMS的系统改造(1)-分析问题
海外落地中的困境 目前面临主要的问题是"人",仓储系统主要辅助仓储人员进行生产,所以人变了其实一切就都已经变了,系统在海外面临最大的问题就是人变了. 这套软件是在国内的运营体系 ...
- 记一次WMS的系统改造(2)-敲定方案
既定改造方案 基于上一篇分析出的种种问题,我们将库房人员的系统操作划分为两大类. 第一类为货物驱动的操作,这类操作主要随着货物而前进,人员不看或者看软件的次数比较少,更多是对货物的状态进行系统上的确认 ...
- 将Windows7系统改造为Linux(Centos7)系统
作为一个程序员,居然一次都没有安装过系统,果断被嘲笑了一番. 没办法,突然BOSS分配任务,将一台服务器的电脑从windos7改为Linux系统,一脸懵逼. 下面记录一下改造过程. 将Windows7 ...
- 描述了say_hello函数的具体内容,调用zend_printf系统函数在php中打印字符串
下载一个php的源代码包,这里使用的是php 4.0.5版,解压后会看到php的根目录下会有README.EXT_SKEL这样一个文件,打开详细阅读了一下,发现了一个非常好用的工具,这个工具可以帮你构 ...
- Android系统在新进程中启动自定义服务过程(startService)的原理分析
在编写Android应用程序时,我们一般将一些计算型的逻辑放在一个独立的进程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验.Android系统为我们提供了一个Service类,我们可以实现 ...
- 安装WP8 SDK出现“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的解决办法
今天重装系统了,在安装WP8 SDK时,安装了一小部分就提示“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的错误. 根据错误提示,貌似跟时间有关,百度了下.果真.把系统时间往前调 ...
- OA系统在实际应用中可发挥出的协同应用价值
OA软件引进国内已有二十多年,早期的OA软件更多地是扮演一个"文秘"的角色,只进行一些基本的行政事务处理,创造的价值不大.但随着OA软件理论和技术的日趋成熟,OA软件摆脱了原有的局 ...
- 安装wp8sdk 当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内。
安装wp8sdk 当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内. [1404:0090][2015-06-12T08:00:53]: Error 0x800b0101: Failed ...
- Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 (需暂停服务的方式)
Linux系统下 MYSQL数据库中的数据库文件在本机内迁移 本机采用Ubuntu16.04系统,tar方式安装MySQL5.7.21 数据库安装文件夹为 /home/devil/mysql 现 ...
随机推荐
- Ubuntu11.04 安装cuda4.3
一.卸载官方驱动并安装显卡驱动 1. sudo gedit /etc/modprobe.d/blacklist.conf,在文件末尾加上如下五行,然后保存 blacklist vga16fb blac ...
- JFinal视频教程-JFnal学院分享课
最近JFinal学院出了JFinal视频教程分享课,请笑纳~ 课程列表: 1.[JFinal版]微信小程序富文本渲染解决方案-html2wxml4J分享课 这个课程主要讲的是使用基于JFinal开发的 ...
- ionic 2 起航(一)
最近的工作项目开始接触Ionic2.学习了一段时间,现在跟大家分享一下. 什么是Ionic 2? 百度一下,ionic是一个用来开发混合手机应用的,开源的,免费的代码库.可以优化html.cs ...
- Nginx开启Gzip压缩提高页面加载速度
本文转自http://www.veryhuo.com/a/view/51706.html,如有侵权,请及时联系转载人删除! 在实际运维中,为了提高web页面的访问加载速度,一般会把静态资源(比如js. ...
- python基础教程总结15——1.即时标记
1. 测试文档: # test_input.txt Welcome to World Wide Spam. Inc. These are the corporate web pages of *Wor ...
- Mycat实现读写分离、分库分表
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- hdparm - 获取/设置硬盘参数
总览 hdparm [ -a [扇区数] ] [ -A [0|1] ] [ -c [芯片组模式] ] [ -C ] [ -d [0|1] ] [ -f ] [ -g ] [ -i ] [ -k [0| ...
- 变量和数据类型&运算符
变量和数据类型&运算符 变量 变量的作用:用来存储数据 变量命名的规范:字(字符串)下(_下划线)美($)人(¥) 数 (可以包括数字)骆驼 有意义(可以以字母,下划线,美元符号,人民币符号开 ...
- CMDB 数据加密 最终整合API验证+AES数据加密
当CMDB运行在内网的时候,经过API验证的三关是没有问题的,但是如果运行在外网,有一个问题是,黑客截取后的访问速度比客户端快的时候还会造成数据泄露.为了解决这个问题,就要对数据进行加密 RSA加密 ...
- 01_12_Struts2_访问Web元素
01_12_Struts2_访问Web元素 1. 配置struts.xml文件 <package name="login" namespace="/login&qu ...