读《移山之道》确实有收获
这是软件工程课程的阅读作业,老师说一下就读完了,但是我确实读了好几天...
下面先说说我对这本书的看法:
1.这本书的主体是以微软的软件开发方法系统的介绍了软件开发的一套详细流程。
2.以故事与对话的形式(其实也就是几个程序猿组了个小公司在里边聊天神马的)介绍了软件工程的流程和细节。
3.全书语言“平易近人”,其中相关的比喻用的非常好,让人能很容易的接受一些陌生难懂的概念。
然后说说我的收获(排名不分先后):
1.明白了软件工程中许多陌生的概念(如:银弹,QoS,黑箱白箱,测试的相关概念等等等)。
2.对软件开发的认识达到了一个新的高度。
之前由于没有团队开发软件的经验,我对软件开发的理解还仅仅停留在"一个人编程"的基础之上。通过阅读,我才发现软件开发有这么多需要考虑的地方,而且开发并不是以人的数量线性决定开发速度。此外,我发现自己之前对于BUG和测试的理解都还停留在很浅薄的层面,在实际的开发过程中,这是非常重要的两个点,需要开发者投入大量的时间和精力。
3.移山之道这本书适合反复阅读。
书中有许多经验之谈,但是由于我现在经历很少经验不足可能就一眼跳过了,但当我完成Team work乃至以后工作后,一些细节和经验一定会让我我有更深的感悟。
4.阅读让我对软件工程的概念和重要性有了更深的理解。
之前看到微博里有人专门研究软件工程这门学科,很不理解是为什么。但是阅读本书后,我发现中这确实很重要的。对于每个公司每个项目来说,情况都不一样,相关软件工程的方法也不能生搬硬套,这样对软件工程有更深的理解就显得大有裨益了。书中只是介绍了“移山公司”的软件开发情况,我觉得更深的理解还是要靠反复的经历和对书籍更加深入的阅读。
最后说说我的建议:
1.www.yishan.cc网站已经挂了...不符合邹欣老师上课说的不能发布后就什么也不管的理念。
2.书中的一些概念不够突出,建议可以加粗提示一下(当然这也有可能是因为我的理解不够深刻)。
最后的最后:
总而言之,《移山之道》这本书值得一读,我收获了很多。
2012/10/26
10.31补充:
由于开发经验不足,我仅试着从软件工程的角度提出几个问题:
1.书中的移山公司是一个专业的软件公司,具有较强的开发能力,那么他们的任务分配时间是否能非常准确?而我们在无法保证开发时间和时间质量的情况下(即很多技术可能需要边做边学)如何为任务分配时间?更进一步说,当PM无法确定所需技术耗时时,他是怎样分配任务时间的?
2.敏捷开发模式对大工程的合适性不容置疑,但是在需求确定,团队人数较少的时候,生搬硬套敏捷开发是否会影响工作效率?瀑布开发模式和敏捷开发模式到底有没有一个详细明确的分界线?
3.通过阅读往年队伍的博客,感觉他们对软件工程思想的应用并不多,主要原因还是在于编程能力的欠缺,所以软件工程是否在本科期间应该作为一门入门级的选修课,而不是一味的对每个人都提出这样的高要求,进而导致教学质量的下降?
4.软件工程课程是不是应该更注重对于概念的明确和强化,而不是通过一次的工程经历片面地体会其中的几个思想?我认为软件工程是需要在反复的实践中积累经验,思考理论,这样才能让软件的开发效率大大提高。