成功软件项目的7个技巧






4.04/5 (14投票s)
7个技巧可以帮助确保您的软件项目不会成为又一个统计数据。
引言
根据softwaremag.com的数据,只有34%的软件项目按时完成,15%的项目完全失败,51%的项目超预算并且常常缺乏关键功能。正如这些统计数据所指出的,项目必须建立起来,以便能够有效地处理出现的问题并确保项目的成功,这一点至关重要。
7个成功技巧
我来自工程背景,我知道即使在科技公司内部,也有很多由不完全理解软件开发复杂性的经理们管理的混乱项目。基于这些经验,我列出了一些在同意进行软件项目之前应该了解的事项。
1. 聘请有能力的软件项目经理或咨询公司
寻找一家好的公司或一位好的经理的方法是仔细审视他们过去的业绩,并提出能够仔细评估他们方法的. Try to get someone who has successfully managed projects that have been on time and resulted in a quality product being produced - with a stronger focus on the latter point. 联系那些参与过那些项目的人,请他们诚实地评估候选人交付可维护产品的能力。
向候选人提出很多问题,特别是那些涵盖技巧2-7中提到的一些更模糊领域的问题。这是确定候选人是否真正理解软件项目管理,还是仅仅将该角色视为参加会议和维护清单的一个好方法。
如果他们告诉你,运行一个软件项目与其他类型的项目相同,特别是那些具有高可预测性的项目,那就把它当作一个危险信号。软件项目可能存在很多复杂性,而对这种复杂性缺乏认识可能会导致过度承诺和进度延误。
记住:雇佣错误的人比错过一个好的候选人更糟糕,所以如果你对某个候选人有疑虑,请继续寻找。
2. 聘请高质量的开发人员/测试人员等
确保你或项目经理知道如何聘请优秀的人才。请记住,从业务角度来看,首要任务是按时按预算交付高质量的产品。如果没有优秀的人才参与项目,这一目标将无法实现。
一个项目上最好的员工是那些
- 在技术上精通并渴望学习的人
- 知道如何在团队中工作 - 这并不意味着他们不能被指望自给自足,这仅仅意味着他们表现出积极的态度,并且愿意在团队出现不足时填补空缺。
我见过的最优秀的人才既技术精湛,又乐于助人。这些人因为极大地提高了周围人的效率,其价值是薪水的10倍,因此大大增加了项目成功的机会。有关技术团队招聘的详细信息,请参阅我的招聘优秀人才以帮助您的业务文章。
3. 采用迭代开发流程
确保开发以某种形式的迭代方法进行。迭代软件过程就是将项目所需的工作量“垂直”切片,这意味着产品是分块构建的,但在每一块完成后,你都拥有一个可用的产品。你选取一部分产品功能,设计它,实现它,将其整合到系统中,然后进行系统测试(这些步骤是简化的)。当然,在开发并整合完最后一块之前,你不会有一个完整的系统,但现有的系统是正常运行且符合预期的。
迭代方法的一个巨大优势在于它能最小化风险,这对于项目成功至关重要。随着项目的进展,客户和高层管理人员将能够确切地看到系统的进展情况。由于它是迭代进行的,所有利益相关者都能立即确定系统中的各个部分是否按照设想的方式整合在一起。
迭代方法的具体类型可以根据项目的范围和项目团队对不同方法的接受程度而有很大差异。详细介绍具体流程超出了本文的范围,但总而言之,我建议敏捷方法(极限编程,测试驱动开发,Scrum以及敏捷联盟讨论的其他方法)将是一个不错的选择。
4. 将良好的沟通融入流程和文化中
良好的沟通对项目成功至关重要。这听起来显而易见,但令人惊讶的是,在典型的项目中,糟糕的沟通者竟然如此之多。你需要确保项目各层级都进行良好、诚实的沟通:客户与项目经理(PM)之间,PM与技术和测试团队之间,技术团队与测试团队之间,甚至客户与技术负责人之间。
良好的沟通至关重要,因为它确保系统在闭环中运行 - 意味着当问题出现时,它会迅速地与相关人员沟通(因此问题能够以最快的速度得到解决)。技巧3中提到的迭代方法需要高效的沟通渠道才能有效运作。客户必须定期与技术负责人和项目经理沟通,以确保项目按照他的设想发展。注意:这并不意味着客户可以频繁更改需求或进行微观管理,但事实是,产品开发者和客户在对产品“应该”是什么的理解上常常不在同一个频道上,只有在实现时,双方才能完全确保他们心中有相同的解决方案。
5. 将项目组织成小型、半自主团队
对于中大型项目,将项目分解成小型、半自主的团队至关重要。人数超过少数的团队项目会很快失控,因为随着团队规模的增加,管理复杂性会呈指数级增长。团队应由一名团队领导、一名或多名测试团队成员、一名或多名技术团队成员以及来自其他项目组的一名或多名代表组成。
6. 确保所有层级都有问责制
问责制对于确保项目成功至关重要。在大型项目中,常常有几十人参与项目,但许多任务却未完成,仅仅是因为没有人对此负责。我所见过的比我愿意承认的次数还要多的情况是:大型会议上,人们抱怨项目中的各种问题,甚至提出一些解决方案,会议结束后,每个人都离开 - 没有一个人被分配到行动项(或者肯定没有分配足够的行动项)。然后猜猜会发生什么?下周我们再次聚在一起,谈论同样糟糕的问题 - 这种疯狂一遍又一遍地重复。我对由于会议中缺乏问责制导致公司每周损失的金额做了一些粗略的计算 - 仅在我自己的项目上,一次简单的会议就损失了超过1000美元!
问责制不仅仅在会议中很重要 - 它在整个项目中都非常重要。项目经理是否定期向客户报告某些进度报告等,并对此负责?团队领导是否对项目经理负责,并确保他们的团队定期交付高质量的软件?问责制从何而来?如何让它渗透到从项目经理到暑期实习生的整个项目?它始于高层。你,作为客户,需要从一开始就明确你的目标,并确保那些负责的人遵守某些要求。我曾多次看到客户只是让项目一直进行下去,只是相信公司/项目经理正在做正确的事情,直到几个月后才发现项目远远落后于计划,甚至都不是客户想要的。
7. 定期审查和调整流程
组织中另一个非常普遍的问题是,一个流程一旦建立,就再也不会根据不断变化的环境进行调整。也许最初的流程是有效的,但大多数情况下,你可以找到其中的低效率,或者有些部分已经不再合理。
定期审查流程,简化某些部分,并加强其他部分。尽可能采取极简主义方法 - 如果流程的某个部分不需要,或者存在疑问,就将其删除。如果之后发现流程需要再次扩展,再在那时处理。记住,这是一个平衡的艺术。你不想流程太少,因为这会导致混乱和难以摆脱的困境,但流程太重会导致效率低下的泥潭。
非常普遍的是,流程本身成为了一个实体,个人完全忘记了当初建立该流程的原因。流程并没有改进产品开发方式,而是仅仅成为了一套需要遵守的规则,因为“我们一直都是这么做的”。不惜一切代价避免这种心态。此外,负责流程的人通常有既得利益,确保其保持现状或不断扩展,不断覆盖新的开发领域。如果你发现你的公司正在发生这种情况,尽一切可能通过简化流程并确保其始终与公司目标保持一致来打破这种心态。
最终,一种“流程至上”的心态将导致进度延误,以及个人从事对公司没有价值的任务。请记住,这并不意味着“没有流程”,而是你应该有一个聪明、灵活的流程,能够随着时间的推移而适应。
祝你好运
这些技巧将是最大化项目成功几率的一个良好开端。此外,随着项目信息的更顺畅流动,以及员工的信心和对产品的自豪感增加,压力水平也应该会降低。