跳出IT从业人员来看我们软件开发
我们的软件开发是否过于复杂?是否可以让需求提出部门自己提出,然后程序员直接开发?
这里的第一个问题是我们的需求和代码之间的转换是怎么完成的?
为什么UML是对于JAVA比较好,但是对于C++和C不是那么好?
我的理解是首先对于代码和需求之间的鸿沟需要一个叫做业务抽象的工作来完成,这个抽象的过程就是一个梳理业务的过程,业务建模的过程,建立完模型之后,再到代码层面的概要设计,详细设计,最终才是代码阶段。
目前有一些SAAS工具,已经提供了抽象组件,可以直接配置完成业务模型的抽象,然后立刻使用。
但是首先还是对于这个业务模型的抽象,DDD的模式是对一个领域的业务模型的抽象。
这里有一个问题,当业务快速发展的时候,你的软件怎么支撑他?
首先我们都是通过已知的事物来了解未知的事物。作为业务部门的头对于新的业务也是需要通过老的业务模式来覆盖,或者变通的覆盖。在新的需求出现的时候,系统的操作应该考虑如何变通,而不是想着重新开发。
这种变通的过程也是对于实际业务操作如何在系统刚性条件下变通解决的问题。
当我们不在IT部门的时候来考虑我们软件开发的事情,可能能够更好的去理解我们开发的过程和实际的困难。
如果我们有更好的方法来解决这些困难,让开发的过程更加有效率那么可能我们在创造一个东西。