开发出一款受用户欢迎的、十全十美的软件是每个软件开发工程师的梦想,但在现实条件下,受市场环境、公司氛围及自身水平等的影响,要开发出一款完美的软件几乎是不太可能的。最近,我阅读了李智勇老师的《完美软件开发:方法与逻辑》一书,颇有收获。

       正如李老师所说,本书是为“培养帅才”而写的。全书共9章内容,以思维逻辑为出发点和归宿,表达了作者对完美软件开发的一些理解和认识。本书涉及到的内容包括:项目管理、流程、开发模型、估算方法、需求开发、设计和编码等。在最后一章中,作者以薪水支付与性能优化作为案例来让自己的逻辑与理论“落地”。

       我认为,在实际的软件开发中,让一个软件“不完美”的因素有三:第一,政治因素;第二,市场因素;第三,技术因素。

        首先来说政治因素。大家在公司工作,是身处一个大的环境之中,靠个人的力量几乎不能做成任何事情。公司的企业文化、所在部门的领导做事风格、项目负责人的素质、团队的氛围等都会对我们手头上正在做的事情产生影响。在李开复老师的《世界因你不同》这本书中,讲述了微软.NET项目流产的事情,这在很大程度上就是政治因素导致的。

       其次是市场因素。除了乔帮主等少数精英能够“牵着用户的鼻子走”之外,大部分公司开发的软件都需要满足用户的需求。遇到不靠谱的用户,他们提出的需求朝令夕改,那么我们就需要不停地修改程序,这时候说完美软件就是“痴人说梦”了。此外,随着市场竞争的加剧,每个软件的开发周期越来越短,要想在短时间内将软件交付使用,就只能将实现功能放在首位,这种情况下开发出来的软件是完美的吗?

       再次是技术因素。技术因素主要涉及到开发人员的个人素质和开发团队的素养等。个人素质包括对某项技术的熟悉程度、工作的负责任程度、沟通交流和知识分享的意愿等。当某一软件由新手开发且评审不严时,开发出的软件就会漏洞百出,“完美”二字根本无从谈起。开发团队的素养包括流程的规范性、对质量的重视程度及对技术的推崇程度等。

      《完美软件开发:方法与逻辑》,一本值得广大软件开发人员细细品味的好书,推荐给大家阅读。