我为一家软件开发公司工作,该公司的开发工作已不存在。岸上团队处理支持并直接与客户交谈。我们从不直接与客户交谈,我们只是与岸上团队的人员交谈,他们直接与客户交谈。
当需求到达时,岸上团队与客户交谈并制作需求文件并通知我们。在研究了要求之后,我们制作了设计文件(我们遵循传统的瀑布模型)。
但是整个过程中存在一个问题:离岸团队或在岸团队中没有人完全了解应用程序的功能。我们只知道它是一个大型的复杂Web应用程序,可处理复杂的订单处理,目录管理,活动管理和其他活动。我们对设计文档感到困惑,因为要求不明确。然后,它会讨论在岸团队,离岸团队和客户之间的一系列问题/答案。我们经常被告知要从代码中了解功能。但这通常是不可行的,因为代码库很大,甚至了解一个简单的菜单项都需要几天甚至几周的时间。我们试图告诉客户给我们知识转移关于该应用程序,但无济于事。即使设计文件不完整或要求不明确,我们的经理也会经常告诉我们开始编码。我们将从对似乎很明确的需求部分进行编码开始,然后等待其余部分。
这通常会使部署推迟一个月。在极端情况下,我们在开发和生产中的错误率非常低,但是客户会说那不是他们要求的。那将开始一个非常规游戏和一系列变更请求,而我们最终将开发出非常不同的东西。
我的问题是,如果您不完全了解应用程序的功能,您将如何进行开发工作?
更新
开发方法并不是我真正的选择,我也不是我团队的负责人。这是它开始的方式。我试图告诉人们敏捷的优势,但无济于事。此外,我认为我的团队没有在敏捷环境中工作所需的思维定势。