我在微博随便看了一下,这本书大概可以称作软件工程领域的名著,是因为人们在管理复杂项目等方面提供了很多颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程方面的实践指导。
在这本《人月神话》中,其中提到了软件系统的复杂性远远超过了建筑行业和制造行业,软件的需求是在人的脑子中很快形成的一种想法,用我们的自然语言都很难完整、准确的表达给对方。一般情况下,人们只有在看到一个已运行的APP或者网站以后才会说:“哦,我要的其实不是这个功能,其实我想得是能够这样这样的或者那样那样的... ”,需求的不确定性更加导致了软件构建过程的复杂性。简单来说就是如果你想解决问题,有些事情是必须要做的,但是因为做事的方式方法不对,导致多做了很多不必要的事,软件也变得更加复杂了。
之前我在做项目时没有很好的构思,这样做出的项目就很混乱,在今后的工作中,我们在构建一个软件之前,首先应该准确构思,并对软件进行规划,减少在过程中的不必要的时间、精力方面的损失,提高工作效率!
数据的重要性:对编程来说,技艺改进的结果往往是战略上的突破,而不仅仅是技巧上的提高。这种战略上突破有时是一种新的算法,如快速傅立叶变换,或者是将比较算法的复杂度从 n2降低到 n log n。更普遍的是,战略上突破常来自数据或表的重新表达——这是程序的核心所在。如果提供了程序流程图,而没有表数据,我仍然会很迷惑。而给我看表数据,往往就不再需要流程图,程序结构是非常清晰的。 由于缺乏空间而绞尽脑汁的编程人员,常常能通过从自己的代码中挣脱出来,回顾、分析实际情况,仔细思考程序的数据,最终获得非常好的结果。
时间的重要性在众多软件项目中,缺乏合理的时间进度是造成项目滞后的最主要原因,它比其他所有因素加起来的影响还大。
任务分配的重要性:对一个进度落后的项目增加人生,进度会更加落后。之前没有进行团队协作,做起项目来没有他人配合,思维单一,这样非常不好。