构建之法1、2、16章观后感
第一章:概论
question1:【1.2.3软件工程的知识领域】中提到了,向进度落后的项目中增加人员,会让项目更加落后。
我的疑问:正常情况下,劳动总量不变而增加劳动力,完工时间不应该会是大大提前吗?更多的人员参与到一个项目中,为什么反而会让项目进度更加落后?实际生活中经常发生的场景是某个项目没有按期完成的话,增派更多的人员能提前最终完成时间减少损失。
通过查阅资料我发现自己原来的思考角度仅仅只是从程序员开发角度来看待这个问题,实际上增加更多的人员需要考虑的问题很多。作为项目经理你要考虑增加人员以后,培训新人员使其融入项目开发和队员之间沟通所需时间的益处是否大于了坏处。盲目的增加人手会导致原有开发人员的情绪低落,以及新加入人员对原有人员的不满情绪。想要按时完成项目,就需要合理的规划项目开发流程。富有效率的开发人员,合理的规划,默契的团队,才是保证项目按时完成的关键。
第二章:个人技术和流程
question2:第二章全文都讲述了怎样使自己的项目更加贴近实际,怎样更符合用户的要求,成为一个实际的、有用的软件
我的疑问:如何成为一个优秀的软件工程师,怎样优化自己的代码使之满足客户的需求?
通过浏览其他优秀的软件工程师的博客,我的疑惑得到解答。一味的敲代码,只能成为一个优秀的码农,而不是优秀的程序员。作为程序员,思维方式十分重要:拿到一个任务,不要立马便开始写代码,首先要定义问题,到底我要解决的是什么问题?什么问题我不需要解决?大家是否都认同解决这个问题是有价值的?然后便是分析问题。解决这个问题的关键路径是什么?有哪些子问题可以暂时不解决,哪些子问题必须优先解决?什么信息还处于缺失状态?如何能够获取这些信息?获得到这些信息后,可能会出现哪些新的子问题需要考虑?最后的步骤才是解决问题,解决问题需要考验你的执行能力。熟练掌握软件开发中可能用到的各种工具,通过多次项目积累的经验更是十分重要。想要成为一个优秀的软件工程师,比动手能力更重要的是思维方式。
第十六章:IT行业的创新
question3:【16.1.5】迷思之五:要成为领域的专家,才能创新中提到‘为什么领域的专家有时候没有领域外的创新者那么有创意?这也是一个很有意思的话题’
我的疑问:领域内的专家相对于非领域人士有着更多的固有优势,了解行业发展,熟悉业务,但是为什么经常没有非领域内人士的创意呢?
结合生活实际,我觉得领域内的专家是因为自己的某些过度自信而忽略了需要被改善的地方。作为专家,他们更着眼于革命性的进步,而不是类似小打小闹的完善性创新。就好比一个游戏厂商的游戏,作为玩家,我们在实际体验中发现很多需要进步的地方,然而游戏厂商却只关注游戏的画面提升,剧情的震撼人心。作为一款网游,添加好友只是一个很小的功能吧?但是它很重要,这能体现网游的本质,和朋友甚至毫无关系的陌生人互动。但因为重视游戏的巨大进步而忽略了这一小小功能,便是一个很严重的错误。同理,这个创新虽然很方便,很实用,但是业内的专家往往会忽略它,因为这不是革命性的进步,我们不需要它。IT行业已经发展了很多年,或许以后我们不能带来革命性的创新,但是我们不应该放过每一个能使它变得更完美的机会,哪怕它微不足道,但只要它提升了用户的体验,那就是一个值得称赞的创新。
未能解决的问题:1、能满足多少用户的需求,才算是一个成功的软件?
2、未来IT行业迎来重大的变革,作为前一代技术的程序员,我们又该何去何从?