个人感受部分:
01.我从前写软件的时候,从来不考虑用户的心里,完全是按照自己喜欢的方向去做,把自己喜欢的当做用户喜欢的。
02.这样写出来的软件必定不会受到用户喜欢,用户不喜欢的软件无疑是失败的。
03.以后一定多考虑用户感受,在设计阶段之前就做用户需求调查,写出符合用户要求的软件
读后感:
我自己认为后半本书,也就是从第七章开始,就与之前的理论内容大有不同,大多是将实战中的问题和场景。近二十年来世界上最大的软件公司微软公司有一个著名的方法论——微软解决方案框架(MSF)。大约在1993年,微软在总结了自己产品团队的开发经验和教训,以及微软咨询服务部门的经验后,向业界分享,起名MSF。
我看作者简介时了解到作者原来在微软亚洲研究院工作,所以我觉得他对这一部分框架一定有很独特的见解。MSF之前我们从来没有听说过,它到底是什么呢?MSF有一套思想框架——9条基本原则:1.推动信息共享与沟通。2.为共同的远景而工作。3.充分授权和信任。4.各司其职,对项目共同负责。5.交付增量的价值。6.保持敏捷,预期和适应变化。7.投资质量。8.学习所有的经验。9.与顾客合作。书中为每一条基本原则都做了特别详细的讲述,并用虚拟的人物刻画了一个个有趣的场景,讲述生动形象,简单清晰。
我们的软件服务于顾客,这是永远都不会变的道理。了解用户真正的需求,才能做出来让顾客真正满意的软件,否则做的再好,用户不喜欢,软件还是失败的。可世界这么大,人们的需求也五花八门,那么软件团队如何才能准确而全面的找到这些需求呢?1.获取和引导需求。2.分析和定义需求。3.验证需求。4.在软件产品的生命周期中管理需求。对软件的需求,也可以从不同的角度做下面的划分:1.对产品功能性的需求。2.对产品开发过程的需求。3.非功能性需求。4.综合需求。
都说程序员得知需求修改时是最痛苦的,但用户就是上帝,只能打碎了牙往肚子里咽。软件开发不可能一次满足所有利益相关者的要求,但是我们一定要让相关角色在这个阶段有机会提出他们的需求和意见,同时,要弄清楚“他们想从软件中得到什么”。作为一名合格的软件行业的人员,一定得学会如何与用户沟通,获取用户的需求。我们应该时时刻刻在想很多问题:软件的功能和用户想要的一样吗?不大一样。用户满意吗?不大满意,那用户到底想要啥?我们调研一下,然后开始新的循环......接着书中给出了竞争性需求分析的框架,也就是NABCD模型。N(Need,需求),你的创意解决了用户的什么需求?A(Approach,做法)找到了需求,下一步该怎么做,你有什么招数来解决用户的痛苦。B(Benefit,竞争)有了独特的做法,那你这个产品/服务会给用户带来什么好处呢?C(Competitors,竞争)你比你的竞争队友强在哪里?我方的优势在哪里,劣势在哪里.D(Delivery,推广)怎么样把你的创新产品交到用户的手中?
我在逛博客园的时候,看到好多的大牛,他们的成长历程到后期都是成为了项目经理。我觉得这个位置遥不可及,我还是一个独立写一个简单软件都费劲的菜鸟,现在谈项目经理是不是过早。但转念一想,做人要是没有梦想,和咸鱼有什么区别,万一作者讲的是和项目经理相处呢?抱着这样的态度,我读了这一章。我了解到作为一个合格的项目经理,需要具备很多能力:1.观察、理解和快速学习的能力。2.分析管理能力。3.一定的专业能力。那么具备了这些能力,并且成了一个项目经理之后,他们在实际项目中又有什么具体的任务呢?1.带领团队形成团队目标,鼓励团队成员,把抽象的目标转化成可执行的、具体的、优美的设计。2.管理软件的具体功能的生命周期(需求/设想/设计/实现/测试/修改/发布/升级/迁移/淘汰)3.创建并维护软件的规格说明书,让它成为开发/测试人员及时准确的指导,而不是障碍。4.代表客户和用户的利益,主动收集用户反馈,预期用户新的需求。5.分析和带领其他成员对缺陷/变更需求形成一致意见,并确保实施。6.带领其他成员确保项目保持功能/时间/资源的合理平衡,跟踪项目进展,确保团队发布令用户满意的软件。7.收集团队项目管理和软件工程的各种数据,客观分析项目实施过程的优缺点。
第十章典型用户和场景是我自己最喜欢的一章。开头就用一个诙谐幽默的漫画深深的吸引了我,看到后面,又以石头买卖市场为例子,详细的阐述了用户和场景的分析,在讲故事的过程中教会了我分析方法。我们写软件就是为了解决用户的需求,整个软件开发周期我们需要表达、传递和处理信息。我们有很多的方法去分析和设计,例如:图形建模和分析方法,数据流动的表达等等。要想成为一名构建大师,可不是一件容易的事情,得花费好多的心血。
最后我想说说用户体验和质量保障。我们平时也在用各种各样的软件,我们不仅仅是软件的开发者,同时我们也可以是软件的使用者。假设我们是用户,对软件的实际体验就是评价整个软件好坏的最重要的标准。用户体验也分为好多要素:1.用户的第一印象,往往在生活中还是工作中,第一印象极其关键。用户安装软件之后,软件第一次启动,用户会有什么样的印象,这都是我们需要考虑的问题。2.从用户的角度考虑问题,如果你是用户,你有没有比较好的体验?作为软件开发者,就像其他各行各业的工作者一样,你的产品一定得保证质量。但有所不同的是,软件是看不着摸不着的东西,它的质量如何去衡量呢?程序的质量体现在软件外在功能的质量。衡量软件的功能,基本的判断可以用“是/否”来判定。各种功能还需要很多特性来衡量,例如:网站显示查询结果的速度;订票网站能并发处理业务的吞吐量;支持同时在线用户的数量。程序质量还有其他方面,例如用户体验的质量、国际化的质量和安全性的质量。