我读经典(9):读《完美软件开发:方法与逻辑》有感
2015-06-04 17:25
302 查看
开发出一款受用户欢迎的、十全十美的软件是每一个软件开发project师的梦想,但在现实条件下,受市场环境、公司氛围及自身水平等的影响,要开发出一款完美的软件差点儿是不太可能的。近期,我阅读了李智勇老师的《完美软件开发:方法与逻辑》一书,颇有收获。
正如李老师所说,本书是为“培养帅才”而写的。全书共9章内容,以思维逻辑为出发点和归宿,表达了作者对完美软件开发的一些理解和认识。本书涉及到的内容包含:项目管理、流程、开发模型、估算方法、需求开发、设计和编码等。在最后一章中,作者以薪水支付与性能优化作为案例来让自己的逻辑与理论“落地”。
我觉得,在实际的软件开发中,让一个软件“不完美”的因素有三:第一,政治因素;第二,市场因素;第三,技术因素。
首先来说政治因素。大家在公司工作,是身处一个大的环境之中,靠个人的力量差点儿不能做成不论什么事情。公司的企业文化、所在部门的领导做事风格、项目负责人的素养、团队的氛围等都会对我们手头上正在做的事情产生影响。在李开复老师的《世界因你不同》这本书中,讲述了微软.NET项目流产的事情,这在非常大程度上就是政治因素导致的。
其次是市场因素。除了乔帮主等少数精英可以“牵着用户的鼻子走”之外,大部分公司开发的软件都须要满足用户的需求。遇到不靠谱的用户,他们提出的需求朝令夕改,那么我们就须要不停地改动程序,这时候说完美软件就是“痴人说梦”了。此外,随着市场竞争的加剧,每一个软件的开发周期越来越短,要想在短时间内将软件交付使用,就仅仅能将实现功能放在首位,这样的情况下开发出来的软件是完美的吗?
再次是技术因素。技术因素主要涉及到开发者的个人素养和开发团队的素养等。个人素养包含对某项技术的熟悉程度、工作的负责任程度、沟通交流和知识分享的意愿等。当某一软件由新手开发且评审不严时,开发出的软件就会漏洞百出,“完美”二字根本无从谈起。开发团队的素养包含流程的规范性、对质量的重视程度及对技术的推崇程度等。
《完美软件开发:方法与逻辑》,一本值得广大软件开发者细细品味的好书,推荐给大家阅读。
(在豆瓣上相应的评论为:http://book.douban.com/subject/24848014/)
![](http://img.blog.csdn.net/20141016192043531)
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)
正如李老师所说,本书是为“培养帅才”而写的。全书共9章内容,以思维逻辑为出发点和归宿,表达了作者对完美软件开发的一些理解和认识。本书涉及到的内容包含:项目管理、流程、开发模型、估算方法、需求开发、设计和编码等。在最后一章中,作者以薪水支付与性能优化作为案例来让自己的逻辑与理论“落地”。
我觉得,在实际的软件开发中,让一个软件“不完美”的因素有三:第一,政治因素;第二,市场因素;第三,技术因素。
首先来说政治因素。大家在公司工作,是身处一个大的环境之中,靠个人的力量差点儿不能做成不论什么事情。公司的企业文化、所在部门的领导做事风格、项目负责人的素养、团队的氛围等都会对我们手头上正在做的事情产生影响。在李开复老师的《世界因你不同》这本书中,讲述了微软.NET项目流产的事情,这在非常大程度上就是政治因素导致的。
其次是市场因素。除了乔帮主等少数精英可以“牵着用户的鼻子走”之外,大部分公司开发的软件都须要满足用户的需求。遇到不靠谱的用户,他们提出的需求朝令夕改,那么我们就须要不停地改动程序,这时候说完美软件就是“痴人说梦”了。此外,随着市场竞争的加剧,每一个软件的开发周期越来越短,要想在短时间内将软件交付使用,就仅仅能将实现功能放在首位,这样的情况下开发出来的软件是完美的吗?
再次是技术因素。技术因素主要涉及到开发者的个人素养和开发团队的素养等。个人素养包含对某项技术的熟悉程度、工作的负责任程度、沟通交流和知识分享的意愿等。当某一软件由新手开发且评审不严时,开发出的软件就会漏洞百出,“完美”二字根本无从谈起。开发团队的素养包含流程的规范性、对质量的重视程度及对技术的推崇程度等。
《完美软件开发:方法与逻辑》,一本值得广大软件开发者细细品味的好书,推荐给大家阅读。
(在豆瓣上相应的评论为:http://book.douban.com/subject/24848014/)
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)
相关文章推荐
- 课程建议
- <数据结构学习与实验指导>3-3银行业务队列模拟/3-4一元多项式的乘法与加法运算
- taskAffinity属性
- Gradle学习系列之九——自定义Task类型
- Android版CSDN发现的一些问题
- Download Ubuntu realeased history versions
- C++派生类的构成
- 类日历插件——技术储备
- sql执行疑问
- 简单内存泄漏检测方法 解决 Detected memory leaks! 问题
- Gradle学习系列之八——构建多个Project
- nodejs exports和module.exports区别
- WebService到底是什么?
- Unable to find a java Virtual Machine ---- Oracle Developer
- jackson使用示例
- 【DateTime格式大全 】
- C#程序中log4net的应用(一)
- 浏览器client访问服务器socket(c++)
- 撤销myeclipse误删的文件,更改应用名
- Gradle学习系列之六——使用java Plugin