软工小结
第一次阅读作业:http://www.cnblogs.com/DXdx/p/4027719.html
关于《No Silver Bullet》的感想:http://www.cnblogs.com/DXdx/p/4088416.html
之前在阅读《No Silver Bullet》的时候,曾经谈到了“开发的部分必须要与其他接口保持一致”,并且我们团队也决定在开发过程中努力做到这一点。但作者把它列为软件工程中最困难的部分之一是有道理里。在开发时,按接口来设计功能本来就给开发人员带来了限制,增加了难度。而有时发现接口统一了,功能却无法实现。
在开发过程中我们遇到了这样的问题:成员A写好了一个循环,每一个循环将一个网络图片的url放入数组中,这样可以再一个可滑动区域显示所有图片。成员B则负责写一个函数,每一次函数调用,返回一个图片的url。当代码集合在一起后,却发现无法正常显示。原因是函数需要异步访问网络,时间较长,但循环已经结束了,第一张图片的信息才返回。最后两人不得不重新修改程序。
在软件开发过程中,我们要同时和人和机器来打交道,必须两面都处理好。这就要求我们需要大量的开发经验,深刻的了解我们所用的工具的特点。在这样的基础上,我们才能更好的确定接口。通过开发,我也意识到所谓的一致性并不是简简单单的参数间的一致性,可能会涉及到更多的东西。
下面谈谈我在整个课程中的收获:
在需求方面,我们要考虑什么是我们的“杀手功能”,这是能让我们的产品脱颖而出的关键点。对于一种并不新颖的应用(比如我们做的美食应用),如果不做大量的调研,便很难再挖掘出用户还有什么需求,也很难做到创新、亮眼。
设计阶段,在设计任务时要综合成员的能力、时间、热情、任务难度等方面。
实现阶段,团队成员需要互相设计好接口,并且遇到问题及时反映。
测试阶段,学习了多种测试方式,可以利用现有的工具进行测试。
发布阶段,发布之后要及时进行总结,争取在下个阶段做得更好,
维护阶段,保持接口的稳定性,定期测试,获取用户的反馈,完善应用。
我们是一个临时的团队,但其实都谈不上是一个真正的团队,团队中PM,开发人员和测试人员的界线很模糊,因此也产生了一些疑问:
团队PM的需要怎样的技术水平呢?PM需要对整个代码框架了解到什么地步么?开发人员自己做测试和专业的测试人员进行测试有各有什么优点呢?
这也需要我进行更多的项目的锻炼,去实习,去实践,在开发过程中了解这些内容。
在开发过程中,我们遇到了许多困难,最初的热情感觉也已经逐渐被复杂的实现和种种的问题渐渐磨光。但整个团队一起坚持了下来,做出了足以令我们满意的产品。这是我第一次作为团队的一员进行开发,除了软工的知识,在开发过程中去认识自己的长处与不足,去认识并明确自己在的团队中的定位,这也是整个课程带给我最重要的收获之一。