《大道至简》一共八章,这本书很精简,甚至是在我们认真读过之后,脑海里涌出的读后感可以比原著长很多
。每一项作业都有其自身的用处和收获,至少我是这样认为的。很荣幸,在学习Java语言的过程中,有一本书给
我的思想注入了新的血液,也许只是很少很少毕竟我还很“年轻”,但是,它却是让我觉得我与“创造”的世界有了
一丝丝连结。
— 最后一次Java作业 写在前面
任何事物都会在发展中进步,软件开发自然也是如此。最开始的软件开发工具,到后来在层出不穷的思想中涅
槃了一回又一回,有那么一部分人,走在创造信息的最前沿,他们的想法、思考、实践以及再思考再实践,都成
为软件工程在发展道路上留下的坚实的印记。
说到这里,最关键的还是工程,在前面的模型图中可以解释,“程序”与“方法”层面,关注于“具体的实现”;而
在“过程”和“工程”层面更要考虑的是团队问题。接着从角色来讲,开发经理思考项目的实施方案和管理具体的开
发行为,项目经理则保障团队的稳定性和一致性。
尽管我们阐述了软件工程的各个要素,并从每个孤立的层面来审视,然而实质上,我们应该回归到软件工程
的本体上来思考问题,而不是仅仅关注于每一个局部的要素。因为,工程的整体问题仍旧是“实现”。
又说到沟通,每种语言都有各自的特点,在交流之前请先明确它们之间的异同。我们的目标是沟通,而不是
“选择工具”这件事,所以,选择何种交流语言都应确保其象征意义在一个图中被表达得足够准确和详细,乃至于
针对不同的阅读者来说都能够提供充足的信息。所以在工程中使用UML图,应该有相应的文字来描述它,并且它
们之间的关系要持续地维护下去。若是松散了、断裂了,那么下一个阅读者所面对的,将无异于甲骨文刚刚出土
时的困境。
前面说过,Boss不是开发者,而是经营者,甚至可以说经营者离开发者很远,反之亦然。举一个例子,阿里
巴巴创始人马云,他并不是开发者,不明白软件的技术细节和原理是其自身也承认的,但他是经营者,也就是所
说的Boss。这是一种很自然的正确性。于是,项目经理就有了一种使命:协调经营者与开发者之间的沟通。同
样的,与一个技术分析人员讨论一个产品的技术价值与市场价值之间的差异,亦或是市场运作方式与技术实现手
段的无关性,是毫无必要的。而这种认知的根源,来自于角色的关注层面完全不同。
知律而变,智者之道。在项目中一旦出了问题,大多数人归咎于这些技巧和方法的不好,而真正的问题在于
我们并不知道这些方法的原理,因而不懂如何变通,也不知道如何回避错误。若是明道,而可以变化无穷,这样
做软件工程才是活的。