当初提出的5个问题:
1、书中说很多非常成功的软件都是赢在用户体验,后面的第12章也专门提到了用户体验,说软件开发时可以使用5W1H的方法来判断用户的体验,而需求分析需要获取用户需求,进行用户调研,那么用户体验与需求分析又有什么区别呢?为什么二者要但单拿出来作为两个步骤?
2、在需求分析一章中,提到要在软件产品的生命周期中管理需求,那么当一款软件开发出来,是否能够根据一定的指标来判断软件的生命周期长短?在整个软件生命周期中又需要做那些工作来延长软件的生命周期(管理需求除外)?
3、书中提到两人合作时,以跳舞作为类比,提出了5个阶段,然而结对的合作编程真的是只有这样的5个过程而已吗?我感觉两个人合作编程的磨合其实是一个长久的过程,一个暂时性的组合,几乎不可能达到真正意义上的默契,而且同时在不断了解对方、认识对方的同时还要进行合作完成任务,我感觉两人合作完成一个暂时性任务应该是从矛盾——磨合——合作三者中间一个循环往复,并且不断发现自身与伙伴之间的矛盾,不断完善的一个过程。
4、书中对团队和流程的介绍中,谈及何为团队、团队的分类,以及团队的开发流程,但却不曾提及如何进行团队分工?但在我看来,团队合作的分工是一个很慎重的问题,如果分工不合理,后续的任务就会一塌糊涂,这个程序陷入瘫痪状态,这显然不是我们所期望的。所以,当一个团队已经组建成功且确定了选题,如何分工会让我们的合作效率最高呢?
5、书中介绍了敏捷编程,讲述了敏捷编程的原则等一系列的问题,但敏捷流程相比于传统编程又有什么优势呢?为什么我们要选择敏捷编程去实现软件开发呢?
第一个问题:用户需求分析,是在做软件前对用户的要求进行了解,软件相应地应该实现哪些功能,是软件还没具体出现前对其的假设;而用户体验,是软件已经设计出来以后,对软件的整体性能进行体验评估,提出有价值的看法,和建议,是对软件的完善过程。所以二者是不同阶段对软件的设计,不能混为一谈。
第二个问题:仍没找到答案。
第三个问题:我表示我保留我的原观点不变。
第四个问题:感觉分工就应该是根据每个人所具有的不同的特点,或是所擅长的不同领域,来进行任务分配,这样可以使每个人的长处都能有发挥的余地,更有利于软件的设计。
第五个问题:敏捷开发最直观的好处是项目进入实质性开发很快,迭代周期比较短,用户很快就可以看到一个基线架构版的产品,这样可以更快地适应用户的需求;而传统开发则是把最终需求一次性开发完。