Week1阅读作业博客地址入口:
实话实说,现在回头看看之前写过的博客,里面提出的问题也是幼稚得不行,可能也是自己已经明白了许多的缘故吧。不过对于第一个问题,我还是有疑问。既然客户的要求在原有的基础上进行了一大步的提升,而且如果对工程进行优化也无法满足的时候,为了保证这个工程的顺利进行,我必须要在工程的效率上进行削弱。这当然只是一个方法,或许你会说一定会找到更折中的方法既满足客户的需求又保证工程的效率,然而“最优”一直都是一个NP难问题。我们真的需要花时间在解决这个最优问题上面吗?还是说削弱效率然后把更多的时间用来实现客户的需求呢?
对于第三个问题,我在团队项目中得到了答案。在团队项目中我负责UI部分,后端需求中会首先提出他们对UI的要求,然后我们会在其基础上进行一定的修改,使其更完善。当一切都实现之后,我们又发现因为功能的改动,我们不得不在原有的设计上进行部分甚至可能是全部的更改。在M1阶段,我们没有按照瀑布模型进行项目的开发,以致我们的设计和编码两阶段出现严重的脱轨。不过在M2中,我们完全按照瀑布模型的开发架构,当遇到需要修改的设计之后,我们就“回滚”到上一个设计阶段将所有的设计“刷新”一遍,然后再进行编码工程。这样一来,各部分之间的连接也不会再松动了,UI和后端的设计也能够实现无缝衔接。
再说说那几篇文章吧。至今我弄明白的就是瀑布模型/大泥球/大教堂和集市/lost in Cat这四个理论,剩下的那个银弹我还是没有搞明白(也没有时间去搞明白了)。
从课程开始到M2的答辩结束,若说我学到的知识,可能也就是书面上的那些繁冗的理论知识。除了这些,我的编程能力得到了提高,有了结对编程和团队协作的经验,能够从过去的不足中反省并且在下个阶段做得更好。一句话来形容这一阵个阶段——“从无知开始,从实践着手,用理论协助,得到不可计量的成果”。