我对一位不了解迭代开发的高级主管有疑问(更不用说敏捷了)。他坚持要在编写任何代码行之前先完成我们的软件设计规范(SDS)。对他来说,完整意味着所有功能细节都在那里。另外,作为一名前Cobol程序员,他希望查看“模块”和流程图。这是一个Java Web应用程序,可大声喊叫!
无论如何,我试图找到一个简单的位置来轻轻地指点他,以表明在开始编码之前SDS不一定是100%完整的(也不能完整)。有什么建议?
谢谢!
我对一位不了解迭代开发的高级主管有疑问(更不用说敏捷了)。他坚持要在编写任何代码行之前先完成我们的软件设计规范(SDS)。对他来说,完整意味着所有功能细节都在那里。另外,作为一名前Cobol程序员,他希望查看“模块”和流程图。这是一个Java Web应用程序,可大声喊叫!
无论如何,我试图找到一个简单的位置来轻轻地指点他,以表明在开始编码之前SDS不一定是100%完整的(也不能完整)。有什么建议?
谢谢!
Answers:
作为顾问,我了解一个简单的咨询规则:
您不能让任何人去做他们不想做的事,除非您没有授权。
作为一名教练,我向敏捷介绍了三个规则:
在项目开始时不可能收集所有需求。
无论您收集什么要求,都可以保证会发生变化。
总会有比时间和金钱更多的事情要做。
一个目标:
这就是您开始所需要的。
说服您的经理是另一回事。
您不能“使”经理对敏捷的理解不同于使开发人员对敏捷的理解。您需要向他提出论点(肯特·贝克的书是一个好的开始),然后让他下定决心。
或者,您可以请他让您进行实验。进行一个小项目,并通过迭代开发来运行它,并密切关注时间,预算,质量问题和团队满意度。将其与以前的项目(或发行版)进行比较,看看它是更好,更坏还是中立。
“制作软件就像制作电影一样,您需要预先计划,但是在拍摄过程中,您需要重新拍摄,重新浏览旧场景并编辑最终产品,以确保获得良好的效果。”
再说一次,他是一位经理,用他的话来说:
“我们需要利用协同的灵活性来生成及时的全方位服务解决方案”
俗话说:你可以把马带到水里,但是不能让它喝水。
正如其他人指出的那样,这位高级主管真正重要的是商业价值。您可以尝试快速估算出您将花费多少时间来绘制他的流程图和模块图并编写“完整的” SDS(荒谬的概念,但请给他他想要的)。如果我对这些事情一无所知(当我开始编写软件时,就是那样做的),那么您的估计将很容易地需要几个工时,即使对于一个相当大的项目来说,这可能不会更多。用钱表示这个数字。
然后告诉他您可以同时提供多少功能。与业务中的一些人讨论,让他们拥有一个基本的Web应用程序来完成您可以在同一时间交付的那些东西,将节省多少时间。然后将节省的金额乘以他们在3年内使用此功能的频率。用钱表示。
可能还有其他可以用金钱表示的商业利益。我最喜欢的始终是“壁球”预防。如果您的软件可以最大程度地减少灾难或完全避免灾难,那么请查找最近发生的灾难并以金钱表示。然后对您的老板说:如果我们现在有了这个,我们将省下这笔钱。
而且,如果赚钱技巧不起作用,那么也许应该走近他,告诉他停止对团队进行微观管理。虽然,根据我的经验,这比其他任何事情都更有可能让您被解雇。
我建议尝试向他展示,通过进行“快速原型制作”(又称开始编写前几次迭代),您可以更快,更准确地充实您的SDS(意味着以后减少返工),并尽早开始提供业务价值。确实,最有价值的业务价值对这位董事而言至关重要,他认为实现此目标的最佳方法是通过此顺序过程。您需要向他展示他的方法为何更好。
这可能会有所帮助-http: //www.youtube.com/watch?v=4u5N00ApR_k
在这部电影“我想运行一个敏捷项目”中,我们跟随一位勇敢的项目负责人卢克的经历,因为卢克在整个企业中有许多不同的遭遇,他们致力于建立和交付他的敏捷项目。