下面是小编为大家整理的小型软件开发项目常犯错误和解决办法,供大家参考。
小型软件开发项目常犯的错误和解决办法
在企业的管理上,大公司有大公司之道,小公司也有小公司之道。如果把别人的经验照搬到自己身上,可能会适得其反。同样,管理一个软件开发项目也是一样,大项目和小项目的方式完全不同。比如很多人认为小型软件开发项目不需要严格的管理,其实恰恰相反。小型软件项目不仅需要项目管理,也不能完全照搬大型软件项目的管理模式和开发模式,应该遵循一种适合小型软件项目的管理模式。
最近我在开发一个小软件项目的过程中忽略了它的特点。结果麻烦太多,项目差点以失败告终。但从另一个角度来看,项目的大小和项目的大小并没有本质的区别。方法很多很常见,但一定要根据实际灵活运用。基于我在这个小型软件开发项目中的经验和教训,本文首先分析了小型软件开发项目中常见的问题,然后提出了相应的解决方案。
一 . 小型软件开发项目中常犯的错误
小型软件开发项目一般具有项目需求相对较少、人员较少、开发周期较短的特点。所以小规模的软件开发看似相对简单,容易成功,所以人们往往忽视了对小规模软件开发的管理,这其实是一 个误区。比如因为人少,分工不明确,或者因为开发周期短,忽略了对项目计划和进度的控制。导致开发过程经常混乱,重编码轻设计,甚至各种文档都是编码完成后回写。从我这次的开发经验来看,小型软件开发管理很容易犯以下错误: :
(1) 没有重视项目计划,做一天和尚撞一天钟
往往由于项目较小,便很草率地制定一个开发日程表,也没有认真地估计项目难度,结果是实际完成时间与估计完成时间往往有较大差别。还有人是这样说计划的:" " 计划、计划,纸上画画,墙上挂挂,计划不如变化" " 。因此,由于观念的不正确使到计划管理经常成为空话,特别是在小型软 件开发中影响计划的因素太多时或加上想省事怕麻烦,结果计划管理就形同虚设了。
而软件项目管理的目的是综合各种因素,制定合理的计划,并通过计划的实施使之规范化,从而提高人员效率,降低项目成本。所以无论项目大小,软件开发其实都需要一个规划的过程。只有对于小型软件项目,规划阶段可能会切换得很快。比如有时候项目负责人只是在脑子里想一想,就决定了方案。但项目负责人心里一定清楚: : 有时候省事可能更麻烦。俗话说,一年之计在于春,一日之计在于晨。它的意义不是说越早做越好,而是说明一个目标的实现需要尽早规划。
(2) 没有完 整的开发文档,无意之中增大项目风险
一个完整的软件开发项目应包括有相当多的相关文档:例如项目开发计划、软件需求说明书、概要设计说明书、详细设计说明书、开发进度月报、测试计划和开发总结报告等。而在实际中,许多小型软件项目只有简单的流水帐式的开发日志。最常见的借口往往是以文档滞后来解释文档的不健全,这似乎没有什么不妥,而且好象还理直气壮的。但如果将软件项目叫做" " 工程" " 的话,再将其与建筑工程相比较,那我们也就可以说:大楼有了,图纸滞后,这是很可笑的。还有许多开发人员认为软件设计已经在其脑子里完成了,在其意识里工作 就只是一堆需要敲出来的程序,既然能直接敲得出来,自然没必要再做写文档的重复工作。
这样做的结果使到设计思路和实现细节在项目团队内的交流很困难,开发过程会由于需要大量尝试性、重复性工作而变得缓慢,而且会出现许多意想不到的大大小小的问题,狼烟四起之时最重要的工作就变成了" " 救火" " 。所以,在小型软件项目里会" " 救火" " 的技术人员会成为大家推崇和依赖的英雄。但这种" " 救火" " 式的行为最终结果却是项目延期成了普遍现象,产品质量也得不到保证。另外,如果这个英雄半途离开,那没有任何文档支持的中间结果对其它人来说基本上就是" " 一堆垃圾" " 而已,项目被迫中断就成了家常便饭。
(3) 人员没有技术分层,职责不清分工不明
许多小型软件开发项目一直采用个人主义的开发模式,这决定了标准化的开发模式不被认可。对标准化管理的漠视抑制了团队工作效率的提高,甚至扼杀了它的生命。因此,小型软件项目往往要求主要项目人员各方面都很优秀,不仅要全面掌握系统架构知识、业务分析和系统设计能力,还要精通各种流行的开发工具、数据库专家、网络配置专家等。,但这样的多面手、通才往往是高不可攀的。
所以小型软件项目需要做技术分层,比如系统分析师、需求分析师、程序员、测 试人员等。在项目开发中,相应的角色必须由相应的专业人员来扮演,这当然可以根据项目的大小和现有的人员进行合理的分配。这里强调的是技术结构的分层和技术人员的划分,更多的是技术职责的细节,而不是具体个人的技术定位。技术任务和相应的职责划分到具体岗位、岗位落实到具体人并不矛盾,与具体技术人员身兼数职并不矛盾。
我们经常看到的是,在很多小软件开发过程中,职责不清、分工不明的现象非常严重。有的甚至从研究到分析设计,到开发调试,再到测试。不考虑工作量,仅从项目的风
险来说就很可怕,更不要说最大限度地发挥开发人员的长处了。
二 . 小型软件实行项目管理的方法和步骤
为什么小型软件开发项目却会面临更多的失败风险呢? ? 在我所负责的项目面临下马前的每一个夜晚,我的脑袋里一直在思考这个问题。也许是多日思考的沉淀,也许是思绪在不停的四处游荡后的突发灵感。使我明白到原来决定小型软件项目成败的核心因素,是有没有坚持进行实行项目管理。现总结为以下几个要点:
(1) 树立小型软件开发也需要项目管理的理念项
但凡专业的软件开发人员都学过《软件工程》这门课,纵观这些指导性的理论以及建议。我们应该要树立即使是小型软件开发也应该在一定程度不要违背开发理 论,必须要遵从于工程化软件理论的原则和方法,落实规范化的管理。否则,失败的风险将伴随着整个开发过程,而且越到后期失败的可能性会越大。
对小型软件项目而言,最急需的不是设计方法,也非分析方法,当然也不是开发方法,而是管理方法。因此,无论项目大小都必须要遵循一定的项目管理步骤。从概念上讲,软件项目管理是为了使软件开发能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理还有利于将" " 英雄" " 式的开发人员的个人开发能力转化 成团队的开发能力,团队的软件开发能力越高,就越能减小项目的开发风险。
(2) 项目需求的确认
在软件开发中,最重要的活动是定义项目的范围和需求,并提出至少一个可用的软件架构方案。在界定项目范围的过程中,不能认为小型软件开发项目马马虎虎,想当然地认为已经了解了客户的真实需求。项目经理应与客户就项目的边界、功能和限制进行协商,并应以需求陈述和功能陈述的形式记录客户的需求,与客户达成一致的理解。在此基础上,提供至少一个合适的软件架构方案,完成原型系统。原型系统的目的不仅仅是验证技术上的可行性,更重要的是让客户有一个感性的认识,更好的理解和确认需求。
(3) 人员角色的安排和定义
角色包括个人或团队的行为和责任,包括设计师、程序员、测试人员、项目经理和支持人员。较小的项目往往由几个人完成,基本上从头到尾都参与开发。此外,由于项目规模小,项目负责人负责分析、设计和协调以及编程。但在这个过程中,需要合理安排和界定人员的角色,将技术任务和相应的职责划分到具体的岗位,再将岗位责任落实到具体的人,避免不专业的人推卸责任或处理不慎。比如一个人可以同时扮演几个角色,一个角色可以几个人分担,但前提是要有责任心,有专业技能。
(4) 建立合理的开发流程,注重过程的衔接
一句话形容就是" " 麻雀虽小,五脏俱全" " 。也就是说即使是小型软件的开发,仍然应该遵循软件开发的一般规律,必须的步骤和合理的开发流程还是不能省略。不但要建立合理的开发流程,而且还要注重分析与设计过程的衔接。当然,小软件项目也有它自身的一些特点,实行起来可以相对灵活些。
例如:
① 要强调协调几个人的工作比某一开发人员完成一段编码更重要。因为在协调上出了漏洞,就可能导致很大的问题。
② 是给每个开发人员要有明确的任务书,也就是说每个
开发人员必须非常明确自己的任务,而且这些任务是采用 文档来表示。
③ 是要让每个开发人员都清楚自己所做的工作在整个系统中处于什么地位,避免各人的代码编写完毕之后又要重复修改。
(5) 重视文档化过程
在小型软件项目中有两个特点:
① 是由于人员少,意味着不同人员的程序之间交互、接口相对少一些 ;② 是由于人员少,往往是同样的几个人从头到尾负责这个项目。但这两个特点会让人容易犯错误,就是往往是几个人碰一下头,讨论一下最基本的任务分工便分头去做自己的工作了,没有一份较正式的开发文档。当有人对任务理解有偏差时或有误解时,就可能会造成返工。因此,小型软件开发项目也不应该忽视文档化 过程的作用。
文档化有三方面的作用:
① 是有助于团队沟通,能给别人一个交待以及给自己一个备忘。
② 是有助于自我理解,一般来说如果你不能写下它,你就可能没有真正的理解它。
③ 是有助于连贯一致性,它会使团队拥有可重复的优势。虽然文档是如此重要,但在小型项目中有用的文档最好也不要太冗长繁杂,一般 1 1- -2 2 页的过程说明就足够了。
(6) 使用好制度与纪律这个工具
有效的团队制度和纪律非常有利于团队的有序工作。可能在一二十年前,经常会听说某个勇士独自做了一些开创性的工作,成为人们崇拜的对象。然而在今天,这种以自我为中心的英雄很难有生存空间。相反,他们必须发挥他们的团队力量来克服困难。
因此,虽然软件开发是一项创造性的智力活动,但毫无疑问,系统和纪律对成功也至关重要。如果项目小,人员少,
周期短,管理上就会一目了然的失去系统和纪律的概念,开发过程就会混乱。所以用好系统和纪律这个工具,有助于小型软件团队改进开发流程,遵循纪律来构建软件大有裨益。
总之,大中型软件 开发项目有很多东西,比如需求分析、概要设计、详细设计、编码、测试、安装维护等。但其实小的软件开发项目有很多东西,也是需要管理好这些东西的。虽然可以根据实际的简单性做出适当的选择,但是只有坚持应用项目管理这个工具才是成功的正道。
推荐访问:小型软件开发项目常犯错误和解决办法 解决办法 开发项目 犯错误