本末倒置的系统开发
往往我们看到一个系统开发出来了,但是技术的成本却随着事务的复杂度不断提升,并且系统的可用性不强。这里面有几个原因导致:
一、分工导致各施其局,没有看到全局性
以开发运维系统为例,假设运维侧要解决一个监控问题,问题的可能性空间为{A,B},只有两个。但是由于研发侧输出的日志没有规范,于是又有了{C,D,E}的问题可能性空间,那么这时问题的可能性空间就变成{A,B,C,D,E}。为了适配这个解决问题,于是运维侧改自动化逻辑适配,接着运维开发也跟着改后端代码和前端代码适配。从之里便可以看出几个问题:
1. 规范性
- 规范性能一定程度的约束问题的可能性空间,降低技术不断迭代的成本
2. 通配性
- 系统应该要满足扩展性,不能因为一些小小改动就要整个底层逻辑大改动
3. 信息流和分工
- 一个系统开发可能是由三个人开发的,前端、后端、运维。因此是环环相扣的,一个请求从前端到后端到最终运维侧。所以考虑扩展性时应该是从源头的运维做起,再到后端,再到前端。
二、开发系统时没从组织架构去考虑人员的使用和信息的流程
系统开发根本目的都是要用,用的对象是人,人又属于组织架构。所以开发系统要充分考虑到组织架构和信息流。
最好遵循一些简单的原则。
1.分而冶之
不应该开发完系统之后,还把大量的事务定位于某一个角色上,而应该分而冶之的落到每个终端用户和各部分管理层,这样才能提高效率。