2.对问题的解答:
提问1:究竟什么是敏捷的思想?
在学习了软件工程之后认识到,首先,可以明确的是,敏捷的思想是一套方法论,其中包括了很多的内容,其中我感受最深的是敏捷测试,它既不是一种方法(如黑盒方法、白盒方法等),也不是一种方式(如探索式测试)。因为在敏捷测试中可以采用已有的各种方法,包括白盒方法、黑盒方法;在敏捷中也可以采用探索式测试(exploratory test),也可以采用基于脚本的测试(scripted test)。
那敏捷测试是什么?敏捷测试应该是一套解决方案、一类测试操作与管理的框架、一组实践或由一定顺序的测试活动构成的特定的测试流程。就像Scrum一样,Scrum可以理解为敏捷方法的具体实现的框架、一组实践或具体的解决方案。简单地说,敏捷测试就是顺应敏捷开发方法、力求达到质量和效率平衡的一系列的测试实践。这就是我对这个问题的解答。
提问2:既然好的想法成功率只有 50%,这种成功的不确定性会不会导致“创新”成为人们想避免的?
这个问题在最初的时候,老师就已经给了我启发,当今创新不是你想不想而是不得不做的事情,在整个项目开发的过程中我也认识到,只有创新和深刻的研究市场,这样研发的产品才能有好的发展。
提问3:为什么领域的专家有时候没有领域外的创新者那么有创意?
领域的专家专业水平高,限制了其创新意识和能力,当领域专家对一个问题进行专业分析时,会给出专业解答,很难从问题中 看到新的问题,或者是对于自己的专业水平过于肯定,不愿接受“外来新鲜事物”。
我通过这篇文章更深层次的认识到了为什么领域的专家有时候没有领域外的创新者那么有创意。
https://36kr.com/p/5043788
3.知识点:
需求阶段
在这次的软件工程团队作业中,我们小组开发的是一个面向校园学生的二手书的网站,这样的话在校学生所提出的需求即是我们开发的唯一风向标,在我们最初的开发中也因为用户需求调研不足,而在用户界面以及一些能提升使用体验的细节上关注不够,而在第二阶段对这些需求进行分析并实现以后,就得到了较好的反响。
设计阶段
团队开发不同于个人开发我们在开始的时候必须先通过对用户需求的分析确定我们此次开发任务的大方向,然后根据每个人分配的任务对每个页面以及页面中的代码结构进行设计,对接口规范进行设计,合理且完善的设计工作能够极大的提高我们在实际开发时的效率,这也是团队开发过程中必不可少的一步。
实现阶段
在实现阶段,只有大家及时沟通交流,才能提高效率,如果只是一味的闭门造车,那么不但可能代码冗余(存在冗余的功能),而且甚至可能需要推翻重来,这更是降低了效率。
测试阶段
我们不能仅仅通过简单的操作几下来验证我们代码的正确性,撰写测试样例对每一行的代码进行尽可能全面的覆盖性测试是非常非常非常有必要的。
发布阶段
由于时间的问题我们项目没有进行发布。
维护阶段
没有十全十美的程序,只有我们开发人员对项目进行不断的改进与完善。
4.结合个人项目/结对编程/团队项目的个人经历,谈谈心得
个人项目是一个词频统计的小软件,需求实现的时候总是由于自己的能力的不足而无法达到预期的目标,不过都从各个方面得到了解决问题的方法,也还算有些收获。
在结对编程过程中,我发现对于两个人可以完成的项目,那么及时的沟通也许会比两个人的并发效率更高,我们面对着一台电脑编程,互相监督着避免BUG的出现,任何新的想法都能立刻得到讨论并确认是否可行。沟通的效率也是影响一个项目总效率的关键因素,良好的沟通极大的提高项目的进度。
在团队编程过程中,因为要完成更为复杂的项目,我们团队的人员也就更多,这就不同于结对编程的两个人坐在一起编程,我们需要能够对每个人员进行更合理的分配。这个时候一个PM对于团队的作用就必不可少了,合理的对整个项目进行模块划分并分配给相对应的人这对团队项目的进展有着不可或缺的作用。此外不能功能模块之间的沟通和对接也是至关重要的,在本次团队作业的开发中,我主要负责的是前端界面的开发,那么我就需要和后端的负责人约定好我需要的接口,并随时去更新我的接口文档加入新的需求,这样即时的沟通是非常有利于开发的进行。
最后,我很高兴可以在软件工程这门课上与这么多朋友一起完成一个有意义的项目,自己对一个工程的开发所用到的知识也有了了解,感谢在这门课上所收获的所有知识与乐趣。
5.总结这门课程的实践总结和给你带来的提升
(1)统计在软件工程实践中,你完成了多少行的代码;
15000多行
(2)你在软件工程实践的各次作业分别花了多少时间?
(3)哪一次作业让你印象最深刻?为什么?
印象最深刻的就是黑盒测试的那一次,因为我们的项目进行了一些改动,在测试的时候多了很多的错误,所以让人很无奈,测试到最后就已经接近崩溃的状态,有些小的问题我们都进行了改正,大问题由于时间的问题也没有进一步的改进。
(4)累计花了多少个小时在软件工程实践上?平均每周花多少个小时?
一共大概80个小时在任务实践上,平均每周的话5小时左右。
(5)你学习和掌握的新语言、新平台;
由于项目开发用到的一些语言我们之前就有学过,所以没涉及到新的语言。www.leangoo.com是我新接触的一个管理项目的一个平台还有在线的换图软件也是新接触的,感觉用起来很方便,不用下载到电脑上,上网就可以用。
(6)填写下表,总结一学期的学习中,你学习或使用的软件工程开发工具、开发方法和建模方法;
软件开发工具、项目管理工具 | 软件开发方法 | 软件建模方法 |
---|
墨刀、Visio、在线作图工具ProcessOn、www.leangoo.con、navicate等 | 原型开发方法,面向对象的软件开发方法等 | 面向对象建模(用例图、类图、包图、流程图、时序图等) |
(7)其他方面的收获或提升。
在学习过程中,我觉得收获最大的就是团队之间培养的相任感,彼此之间出现一些问题之后能及时的得到解决,培养了很深厚的感情。
6.你认为目前的课程存在哪些问题,你有什么更好的建议。
我觉得这个课程总的来说偏向实践多一点,是在实践中学习,所以理论课的课时安排相较于实践课来讲应该少一点。