成功交付软件项目的 7 个秘密






2.25/5 (8投票s)
本文讨论了可能影响软件项目成败的几个关键点。
引言
软件开发人员经常讨论项目失败的原因、为何未能按时完成、交付质量为何不高等等。在本文中,我将分享一些可能属于也可能不属于任何花哨软件开发方法论的想法。这纯粹是经验之谈。另外,也请容忍我的英语 :-)。
成功交付软件项目的 7 个秘诀
软件开发很有趣,只要一切顺利。一旦出现重大问题,项目就会开始“沉没”。导致失败的原因有很多,既有技术性的,也有非技术性的。有一些最佳实践可以帮助我们首先避免这些麻烦。
- 团队中有专家
- 良好的沟通
- 团队凝聚力
- 了解目标市场
- 闪电战式编程
- 测试自己的代码
- 拒绝变更请求
团队中有专家
这很简单。一个平庸的团队会产生一个平庸的产品。团队中有专家可以更快、高质量地交付成果。即使您有优秀的初级开发人员,也需要专家来指导他们。学术上的优秀需要专业的指导。与团队中的专家一起,始终包含态度出色的平庸人员。给他们需要与专家定期互动的任务。他们会从专家那里学到很多东西。谁知道呢,当他们知道专家本人是如何成为专家的,可能会受到启发。毕竟,没有人是天生的专家。通过这种方式,您可以建立您的未来专家队伍。
良好的沟通
在一个良好的团队中,即使是微小的变化(例如需求、设计或实现上的变化),也会提前告知团队中的每个人。这可以警告并让每个人为潜在的灾难做好准备。这可以避免“海啸效应”(一个地方的微小变化可能导致其他地方出现大问题)。否则,一个小小的改动稍后可能会导致其他地方进行大规模的返工,这无疑会使项目更接近其可怕的结局。
良好的沟通绝对不意味着冗长的会议或使用复杂的软件工具。它必须以一种实际上不需要更改日程的方式进行。不必要的活动会扼杀生产力。
团队凝聚力
从更个人的角度来说,团队成员之间互相欣赏并始终在团队中感到舒适非常重要。团队成员之间的个人理解肯定有助于项目。
了解目标市场
开发团队了解产品所面向的市场极其重要。需要思考的问题包括:为什么要开发这个产品?最终用户是谁?他们如何工作?除了需求规格中提到的内容之外,最终用户可能还期望从产品中获得什么?营销人员会拿到需求规格,但开发团队在开发产品时必须切实感受到这些需求。这适用于项目中的所有人。团队还应该了解用户在使用开发中的产品时可能面临的风险。例如,一个开发银行应用程序的团队必须谨慎处理应用程序正在处理和操作的数据的安全性。可能涉及的风险很大。另一方面,一个开发游戏的团队就不会有这样的顾虑。
快速原型编程
这是我最喜欢的。它本质上是指在最短的时间内完成一个原型。原型可以证明建议的设计或实现方法是否可行和/或有价值。由于它可能会也可能不会包含在最终产品中,因此开发它的时间必须最小化。使用开源代码(您不会发布它,对吧!)。如果原型被接受,则重写它。使用第三方软件。如果可能,使用它们的试用版。模拟您可以做到的一切,并减少原型开发的总时间。
测试自己的代码
开发人员无法想象他们的代码中存在错误,除非产品进入测试和验证阶段,并退回大量错误。统计数据显示,如果能在开发周期的早期发现错误,就可以降低成本(时间和金钱)。测试自己代码的关键是要“严苛”对待。把它当作一个游戏,好像每找到一个错误,您都会奖励自己一些东西。这会使您在项目的最后阶段生活更轻松。测试自己的东西时不能姑息。您如何测试取决于您。您可以编写自己的测试计划文档,使用现有的文档,自动化测试过程等。
拒绝频繁的变更请求
拥有一位有良好谈判技巧的勇敢的经理总是很有帮助。这个人应该有勇气对频繁的变更请求说“不”。通常,新的变更请求应尽可能被拒绝,并附上不应执行的证据。这会让客户(或营销人员)陷入一种需要重新考虑变更的情况。让他们说服您为什么它很重要,而不是轻易接受。关键在于不要表现出任何傲慢,并准备好为您的观点辩护。当然,如果您认为请求的更改是有效的,也不要与之争辩。
摘要
正如我之前所说,这些只是我从经验中学到的。请告诉我您的想法。