这里说的可视化是特指进度的可视化。
软件工程的概念来源于建筑工程,很多人都知道。但是,软件工程有它自己的特性,如知识性,不可见性等等。对于不了解的人,个人都是用建筑中的砌墙来说明。主要用来说明软件开发的进度的不可见性,就是说事实上是有进度,但不为人所理解。
砌墙这个比喻是形象的,基本可以了解。一堵100平的墙,材料,人工,工期都可以计算得清清楚楚,要赶工,加人也基本都是最好的方法。每天的进度也可以看得到。有一次这个比喻被人否定了,反驳的理由是砌墙也会被刮风下雨形象。好吧,所以这里的砌墙是在室内的砌墙,材料,人等所有的资源都是完美的,不考虑其他因素,只是用来说明可视化的进度的。
软件开发,想出一个好的算法,一个好的解决方案。很多人会认为花了许多的时间才出个算法,出个方案,一点进度都算多了,这是在偷懒吗?怎么能解决了大部分问题呢?这就是软件开发并不是像建筑砌墙那样有可视化的进度。它交付的是智力成果,代码行也不一定能准确的反映工作量。同样的作用的代码,不见得代码行数多的就工作量更多,有时更少的代码行数反而是付出更多的工作量。所谓大道至简。
可视化的进度最好了,但不一定适用于软件工程。做好沟通交流用户养成显得更为重要。