我们有一个大型企业应用程序,其中的项目是使用正式的瀑布流程进行范围划分、设计和最终编码的。我经常被给予不相关的计划的代码更改,仅仅因为它们在相同的代码部分。所有的计划都必须同时上交。开发团队在范围或交付时间线上也几乎没有发言权。我们无法与用户交谈,我们必须通过一组不了解业务的需求集合。
对于如何在这样一个根深蒂固的环境中实现哪怕是最小的敏捷技术,有人有什么建议吗?
发布于 2010-02-23 21:47:09
至少你可以开始编写单元测试,甚至-在环境允许的情况下-自己编写测试驱动开发(可能也会在你的共同开发人员同事中传播这些想法)。你可以在管理层没有注意到任何事情的情况下改变很多东西;-)
当然,在一般或更好的情况下,管理层的人并不是完全愚蠢的。随着时间的推移,当您设法在开发团队中提高对这些问题的认识时,您(作为团队,集体)也可以与上层管理人员交谈,并说服他们朝着正确的方向采取措施。从小处开始,获得具体的结果,并在此基础上构建-通过在开发团队以及(尽可能多)管理层和用户中找到盟友来建立影响力。
通常情况下,遵循某些流程仅仅是因为“我们过去总是这样做”。如果你能向人们展示有更好的方法,并用令人信服的论据来证明这一点,你就有很好的成功机会。请注意,管理层和用户需要的参数与开发人员完全不同。你可以试着进行粗略的成本效益计算(或者谷歌--我非常肯定网上有很多关于这些的东西)。我还记得在Kent Beck's first XP book中有关于这方面的好材料。您还可以收集bug统计数据,这些统计数据随着时间的推移(希望)表明,以敏捷方式开发的特性在以后(集成、测试或生产)阶段的缺陷明显较少。(为此,您需要一个缺陷跟踪系统(如果您还没有这样的系统)。)
另一个有用的工具是提问。如果你做了什么--一份文件,一种做事的方式--你不明白,就敢问问题:
通常人们只是把事情当作“给予”,但当你开始寻找原因时,你可能会发现很多有趣的事情……和改进的想法。
retrospectives是一个非常有用的敏捷工具。在每次迭代之后(无论在实际过程中叫什么),团队聚集在一起,进行头脑风暴。
一样继续下去
这可能很容易被管理层接受,并且是开始积极变化的好方法。最重要的是唤醒和激活人们-让每个人意识到项目的成败(至少在一定程度上)掌握在自己手中,他们可以做一些事情来改善情况。
发布于 2010-02-24 02:11:31
根据我的经验,大型企业关注风险、可预测性和可衡量的结果。如果展示出敏捷如何比现有实践更好地符合这些度量标准,那么您将更容易(尽管可能不容易)地介绍敏捷。
1. Average # of programmer hours per "feature".
2. Average length of time between code checkin and the discovery of defects against that code.
3. Average length of time between defect discovery and defect resolution in production.
4. Average amount of time needed to identify, resolve, and deploy defect fixes.
5. etc.
在敏捷过程中对这些指标的改变:例如,在大多数情况下,我们越早发现错误就越容易修复/更便宜,所以从测试驱动开发和快速发布到QA的好处应该很容易
发布于 2010-02-23 21:47:49
敏捷就是打破那些瀑布墙。BDUF;同时,多组件发布;开发人员和业务流程所有者之间缺乏沟通;计划迭代-这些都会阻碍您在瀑布流程中的工作。
在我的位置上,我们已经打破了许多这样的墙-它开始于直接访问客户的。当这种情况发生时,客户得到了更好的产品。这让客户更加满意。把BDUF之类的东西赶走了。
我们仍然没有真正的迭代/冲刺,持续集成等,但我们正在实现。(旧习惯,诸如此类。)
https://stackoverflow.com/questions/2318498
复制相似问题