Vya*_*ava 19 project-management development-process
您一定听说过失败/失败项目的原型故事:
现在,如果你被带入#10那么你的第一步是什么?
更新:首先:感谢你们所有人都在努力.好吧......我被带进#10.当我们向客户提出建议时,我是最初的建筑师.然后,不幸的是,由于我被分配到其他地方,我无法承担交付责任.:)
假设它是现有桌面应用程序的Web化.我现在被带进#10.遗憾的是,逃跑不是一种选择.我确信这仍然可以通过遵循敏捷的最佳实践来逆转,并且只是想挖掘社区的想法.
更大的问题可能是:如果开发团队没有规范,只有运行应用程序的(基线)代码,原始解决方案要求查看代码并动态提取业务规则.现在,没有经验的程序员不愿意看VB 6.0代码并想要文档!那么如果你要实现敏捷流程,你如何解决这个问题呢?
Ada*_*iss 22
Vyas,我觉得我可以写下这个问题.我之前的工作涉及恢复一年后开发失败的KVM项目.规格以用户手册和开发人员使用类似产品的形式出现.我最后教C到3个汇编程序员并从头开始重新构建.我们在4个月内将产品成功推向市场.(然后我辞职了.去看看.)
我要做的一些事情,特别是对于缺乏经验的团队:
1.一支缺乏经验的程序员团队全天候工作
10.没有技术领导/或牛仔编码员能够承担技术问题
8.里程碑错过后的里程碑
9.团队无法提出交付日期,因为没有人同意实际需要完成的工作量
3.客户尖叫他甚至不能做基本的事情(保存/查询)等
4.程序员过去常常使用规范进行即兴创作
6.在实际上没有遵循在纸上看起来不错的架构文档
2.修复错误只是为了引入新的错误
5.没有自动化的单元测试会对情况产生影响
7.使用的第三方组件首先成为未经过健身测试的瓶颈
一般建议:
祝你好运 - 请让我们发布!
冻结版本,并开始修复程序问题....优先处理客户投诉(公司的业务部门可以优先处理)并使程序运行.一旦解决了最大问题,请开始清理代码.将任务分配给其他开发人员,并开始对所有新代码实施编码实践.
如果你可以做任何你想做的事情,那么看看真正的问题是什么并处理它们.如果这意味着组建一个新团队从头开始全面开发软件,那就这样吧.但你应该尝试至少修复主要的错误.不要费心引入新功能,它们只会使问题复杂化,并且一个不起作用的程序和不处理问题会导致客户失败.
我希望你收到的报酬非常好.无论如何,我的计划将按以下顺序执行:
0)停止在整个团队中添加功能或功能.在执行以下步骤并执行步骤5时,允许解决错误,然后停止错误修复和恢复功能开发:
1)应用我称之为逆向人员配置法:较弱的团队成员会减慢速度越来越快的团队成员,一般来说,迟到的软件项目需要移除,而不是添加.因此,您需要评估团队成员作为个人贡献者的质量.消除团队中较弱的员工,因为可能有一些人.最好通过查看他们的代码并检查他们的错误修复并找出谁使代码变得更糟而不是更好并将其切割为团队来完成.现在不是指导的时候,你需要最好的人来改变在最佳时期"固定"情况.如果你不能解雇他们或重新分配他们,让他们喝咖啡或其他人留下的东西.
2)评估代码本身.识别代码中未构造良好和/或未被很好抽象的区域.如果区域代码构造不好和/或显然对它应该做的是脆弱的,则将其作为重写目标.这一点感觉很痛苦,但从长远来看,它会节省你的时间.重复出现的错误和/或修复历史将有助于识别无法挽救的代码.如果代码区域或模块从根本上构建得很好,但在接口级别上没有很好地抽象,那么它应该适合于重新分解.这将节省大量时间并且是有用的代码.保留重写区域,重新考虑区域和合适区域的列表.
3)定义一个新的合理架构,您相信这将为您最终在功能和特性中的位置提供强大而完整的解决方案.该架构可能不是最佳的开始清洁,但实际上与您希望的位置相匹配.
4)与利益相关者合作,决定什么将使可接受的第一个版本试图为"后期"版本提供尽可能多的功能.也许你不能削减任何东西,但如果可以,现在是时候做了.
5)停止后台错误修复工作并将定义的工作分配给(剩余)团队,以估计其余功能的合理新实施计划.他们需要拥有时间表.汇总时间表并保持相当保守.现在,您可以合理地预测何时可以实现可行且可靠的功能.
6)实现剩余的功能,然后通过解决剩余的错误来加强发布.我假设在这里观察所有正常的良好软件开发实践,如源代码控制,单元测试等.
7)尽可能多地移除障碍物,以尽可能快地让团队摆脱困境.
8)监控问题,并尽可能地将手弄脏.提供在您可以提供帮助的范围内承担更糟糕的问题,并使团队中的所有成员保持高效.
祝好运!
归档时间: |
|
查看次数: |
3803 次 |
最近记录: |