这次阅读中体会最深的莫过于奇客和狗,作者通过Chandler狗、Cosmo狗以及各种狗来类比OSAF开发的项目,前面两种都是拉布拉多狮子狗,文章这样描写这两种狗,“它们是好宠物:‘和其他狗类融洽相处’”、“非常聪明,快活而友善。能快速学会不常见或特殊的技能。活跃,有时显得滑稽。如果管束不严就会戏弄主任”,这样一种“狗”似乎更像是Chandler的真实写照,如果管束不严就会戏弄主人,是啊,没有严谨的要求和恰当的决策,Chandler的开发过程才会如此的坎坷吧。
卡普尔和开发者们总是抱着改变世界的想法前进的,他希望Chandler成为一种全功能的个人信息管理器,也希望它能成为一个“可扩展开发者平台”,使得程序员可以任意扩充Chandler的功能,“能二者兼得吗?”,这也是值得我们反思的问题。
虽然理想很丰满,但是更多时候我们是没办法做到二者兼得的,既然不能二者兼得,又免不了做出选择,而这些选择总会让产品的某一发展前景被扼杀。在无法做出选择的时候,Chandler选择了替换新的产品经理,似乎这样一种改变就可以拯救Chandler的命运,但是没有考虑到,我们的主人公之一——卡普尔,仍旧秉持着“完美”的理念去做Chandler,去畅想Chandler。
文章中提到一项调查,调查显示超过四分之三的IT专业人士偏爱考虑后做决策,而只有23%的人偏爱凭感觉决策,多数程序员的共事者都了解到,敲代码的人更像是理性的独行侠,他们的行为特征被形象的比喻成轻度自闭症,而这样一个特点使得他们不懂得如何打造能完成人类用户设定目标的程序。
所以又引出了高过其他程序员的程序员不同于普通程序员的地方——交流
如果说程序员与代码之间是狗主人与狗的交流,那么程序员与用户之间更像是狗主人与邻居的交流,身为一个邻居,你要清楚邻居是否喜欢狗,是否喜欢养狗,又是否喜欢狗的某些行为,讨厌狗的某些行为,你要让你的狗尽量在邻居面前讨喜,而不是仅仅依照自己的喜好和想法来培养和训练你的狗——这是我的观点。
文章中不仅提到了狗和养狗人的概念,还出现了狗食的说法。据说很多软件公司一个不成文的规定就是,开发者必须使用自己正在做的产品,即,吃自己的狗食。现在转念一想,吃自己的狗食确实是开发中发现bug和缺陷的手段,只有亲身体验,才能对自己做出来的产品有个完整的认识,只有吃过自己做出来的狗食,才知道味道怎么样,而不是只管做,不管味道。
在我第一次的开发工作中,就没有充分考虑用户的意见和建议,产品成型后,用户给的反馈并不是很好,产品虽然没有一些明面上的bug,但是用户对于一些功能的设定并不满意,这也就导致了产品的失败。首要原因就是开发设计之初没有深入用户,如果再次开发,我会更多的询问用户的想法,从用户出发决定产品的功能。