当开始一个新的软件项目时 ,未知数是巨大的。 我们已经学会了很难的方法,即软件开发中最昂贵的问题之一就是错误地满足了我们的要求,并且通过使用Agile , MVP和类似技术,我们在某种程度上有所改善,至少我们知道我们知道我们的客户是什么我们一直希望并且愿意改变/改进/重新定义它。
但顺便说一下,我们仍然必须解决我们不知道的技术问题…
解决这种问题的最佳方法是什么? 通过建立原型 。
假设您现在正在开发一个新的消息传递应用程序,该应用程序使用户可以实时共享视频,并可以选择将注释嵌入这些视频中(只是在我的脑海中弹出……已经有一个应用程序可以执行此操作吗?认为这是一个好主意?)。 无论如何,留下了详细的用户体验问题(很多),此应用程序还具有许多不可忽视的技术挑战。 例如,我们正在进行视频的流媒体编辑……这需要大量的计算机功能。 我实际上并不真正知道这是否可行。 但是作为开发人员,我们要面对挑战并说:“没问题,只需实时解码视频,添加新层,再次对其进行编码,瞧!”。 是,对。 您可能会开始编写此代码,并进入很多兔子洞,以至于永远都无法摆脱。
因此,我的建议是,对于具有高风险级别的功能(即,未知数太多,技术是新技术,不了解技术等),首先使用开发的冲刺来创建原型,以证明该功能的技术可行性。 该原型应该明确地仅用于测试我们认为会在开发过程中阻止我们的技术问题,而无需执行与该技术问题无关的任何其他操作。
原型制作完成后,我们可以继续使用常规敏捷方法开发功能。 我们在这里所获得的是新的确定性,不仅在功能的可行性上,而且在功能开发需要花费多少时间,多少人可以并行使用该功能上(很多时候受到技术的限制)正在使用)。 反过来,这给团队带来了安全感,使他们感到自己在掌权,并减少了事情从冲刺到冲刺的机会,从而降低了团队的信心,敏捷性和绩效。
翻译自: https://www.javacodegeeks.com/2014/12/prototype-driven-development.html