`

为什么大家不愿意做重构项目

阅读更多
最新补充:
才两天,这么多浏览量了,挺意外的。

写本文的目的主要思考一下工作中切实遇到的问题。

公司是大型网站,这几年发展很快,而一些基本方面却变化不大,越来越不适应敏捷开发,项目扩展,快速满足需求的特点。
包括:project目录结构,开发框架,构建过程,设计文档规范等等。 因此自己思考为什么炫目的前沿技术项目起了很多, 而很少人愿意进行这些很有挑战,但很有价值的重构项目?

本帖子就是自己思考的一点心得和体会。核心还是对于“拥抱变化”的认识,变革的价值,变革和风险的权衡等问题上。


1. 问题
    我们的项目是大型网站,目前看还存在很多技术,过程问题,但变革和重构项目为什么很少人愿意做呢? 思考ing

2. 分析
    目前,前沿技术项目名称很炫,比如:云计算,分布式计算,分布式服务等,然而重构项目却比较朴实,技术领导给予的重视程度不够,KPI分量也比较轻,可能是大家做重构项目意愿较低的原因吧。
    重构意味着要打破陈规,对现有项目动大手术。 要排以前的很多地雷,存在很大风险,容易出现A类故障. 而对重构项目的价值评估体系不够,KPI考核缺乏故障忍耐及变革奖励机制,因此架构师做重构项目的意愿不太高。

3. 对策
   对重构项目可以按 必要性,紧迫性,风险性建立评估模型。 对高风险的重构项目,例如:数据模型变更,开发框架升级,核心产品架构重构等可以按等级给予豁免故障分,通过创新制度鼓励“拥抱变化”。 这一点需要向 Facebook 学习。
 
   即便一些项目不存在风险,例如:开发过程优化,提升效率的工具优化等,其带来的研发效率的提高,成本的下降是非常巨大的。但价值评估不够,KPI比重不够。
   因此在对前沿创新和研究项目给予同样重视的待遇下,对重构项目项目按必要性,紧迫性适当提高KPI分值,可以提高架构师启动重构项目的意愿。
 
4  重构项目评估模型
1) 必要性和经济效益:1-10
     分值越大,代表经济价值越大,如生产效率的提高带来的人工成本,运营成本,硬件成本的降低。
2) 紧迫性:1-10
      分值越大,代表越紧迫。这主要是衡量机会成本。例如:早6个月完成,就可以带来 6 个月成本的降低和价值。机会成本通常是IT公司比较会忽略的因素。
3) 风险豁免值:1-N ( N 为最大故障分 )
      主要用来评估风险值,进而评估重构项目的风险豁免值。 用来鼓励软件工程师启动重构项目的意愿。

引用
重构项目价值 V = (必要性 * 紧迫性)


  注:值范围: 1-100

引用
重构项目的 KPI =  重构项目价值 * (风险豁免值 - 故障分)


   当 故障分 < 风险豁免值 时,重构项目考核的 KPI 仍然可以保持正数,工程师的考核不会因为出现一定故障而导致绩效下降;
   当 故障分 > 风险豁免值 时, 说明故障超出了可预先商定的容忍范围,会适当影响工程师的绩效。这样可以约束工程师加强重构项目的质量和风险控制。

5. 总结
   工程师通常会比较专注做事,而不善于包装。因此,项目经理或技术领导应该辅导帮助,进行项目的价值评估,例如:采用一定模型,对项目的人工成本降低,开发,发布效率的提升等经济价值进行分析。

 

 

收藏自: http://www.iteye.com/topic/577894

分享到:
评论

相关推荐

    软件工程中的软件重构与重用.pptx

    - **组织文化**:团队成员可能不熟悉重用的概念,或者不愿意使用别人编写的代码。 - **维护成本**:重用的组件可能存在未知的问题,需要额外的工作来修复。 - **知识管理**:有效的知识分享机制对于成功实施重用至关...

    建设工程项目管理信息化.docx

    企业在推进信息化过程中,可能因不愿改变传统管理模式和企业文化,导致投资回报率不高。 造成这些问题的主要原因包括:领导层对信息化理解的局限,仅关注硬件和软件的投入,忽视了系统设计和有效运营的重要性;缺乏...

    Turnout-V2:我的2016年项目的重构反映了最新的设计模式

    重构2016年投票率的实施情况。 背景 2016年9月,我写了Turnout作为我的第一个全栈项目。 将我学到的所有知识应用到Web开发中是一个个人挑战。 堆栈中的核心技术是: ...为什么选择Vue? 啊,永恒

    PHP代码维护,重构变困难的4种原因分析

    例如,不理解原开发者当时的思路,或者不愿意去花时间理解,而是选择重新编写功能。这种行为随着时间的推移会导致代码冗余、项目复杂性增加,最终使得后期重构工作变得异常艰巨。为了改善这种状况,团队应持续强化...

    开源项目-dotnet-cli.zip

    同时,我们将探讨一个颇具争议的话题:为何即使在Linux环境下,开发者也不愿意选择Visual Studio Code(VSCode)作为Go语言的IDE。 首先,让我们深入了解dotnet-cli。它是Microsoft为.NET Core开发的核心工具,用于...

    多个迹象表明你还是php菜鸟

    4. 不采用某种编码与命名标准,以及通用约定,不能在项目开发周期里贯彻落实 5. 不使用统一开发方式 6. 不转换(或)也不验证某些输入或SQL查询串(译注:参考PHP相关函数) 7. 不在编码之前彻底规划你的程序 8. 不...

    用单元测试驯服烂代码-2013.03.09

    - **心态层面**:缺乏耐心、不愿面对困难的代码重构工作;追求快速完成任务而非追求高质量;过度依赖第三方框架而不愿深入了解底层实现。 - **技术层面**:忽视代码整洁原则,导致命名混乱、逻辑不清;缺少单元测试...

    中台之上-【付晓岩】-pdf整理版.pdf

    开源为架构和软件带来新的成长方式,共享让思维发展更快、普及更快,但是,软件架构本身却只是增加了大量的案例,依旧难以标准化,哪怕是同一个行业的企业,给这家做的软件也不一定能直接搬到另一家去,很多商用化了...

    study-path:关于干净代码,测试驱动开发,旧版代码,重构,域驱动设计和微服务架构的有组织的学习路径

    它是开放的和大家谁愿意钻研像清洁代码,测试驱动开发,重构,清理建筑,遗留代码,领域驱动设计,微服务,以及更多的话题可以自由进出。 这些材料均根据特定主题按节进行组织。 没有命令可循。 您可以浏览所有部分...

    天音__组织及人力资源战略咨询项目__华信惠悦.pptx

    这一系列的变革不仅仅局限于技术层面的改革,更是对组织文化和员工激励机制的重构,对于天音公司的长期发展具有不可估量的价值。 综上所述,天音组织及人力资源战略咨询项目表明,专业咨询机构在企业转型升级过程中...

    【转】在CodePlex上开源GifUtility

    很多朋友建议我在CodePlex上开源,前期不是我不愿意,只是实在懒得在上面拼凑蹩脚的E文,今天终于腾出一些时间,将Gif动画处理类库在CodePlex上发布了出来,以后有更新,大家可以到上面去下载,项目地址: ...

    中央大邸年度房地产策略思考.pptx

    地段是房地产项目的核心要素,占据城市中央的位置对于财富阶层而言具有不可替代的价值,他们不愿被边缘化。对于中央大邸而言,利用其地段优势,打造与城市中心完美融合的居住环境是关键。此外,独特的资源是区分竞争...

    实时软件开发中二十五个最常见错误

    25. **不学习新技术和最佳实践**:不愿意接受新知识,可能导致技术落后和效率低下。 解决这些问题的方法包括提高教育水平,采用最新的研究成果和技术,以及定期评估和改进开发流程。通过对比不同的设计方法,开发者...

    国有企业信息化建设存在的问题分析.docx

    然而,部门间缺乏合作精神和大局观,各部门更注重本部门的利益,不愿承担额外责任,互相推诿,导致项目推进困难,难以取得实质进展。 最后,部门冲突是国企信息化建设中不可忽视的问题。信息化项目往往需要对现有...

    MyReads:第一个React NanoDegree项目

    如果选择从此模板开始,则您的工作将是通过重构此模板中的静态代码来为应用程序添加交互性。 当然,如果您愿意,您可以从头开始这个项目! 只要确保使用来引导项目即可。 TL; DR 要立即开始开发,请执行以下操作...

    深度学习sparseae_exercise

    在这个项目中,开发者参照了斯坦福大学的课程教程以及知名专家的博客内容,将理论知识转化为实际代码,以加深对深度学习的理解,并愿意与其他人共享这一学习资源。 稀疏自编码器是自编码器的一种变体,自编码器是一...

    软件架构师应该知道的97件事.pdf

    架构师不应高高在上,而是要深入团队,简化设计,清晰表达,并且愿意接受团队的建议和反馈,同时勇于推翻自己的不合理决策。站立发言、倾听他人观点、学习并运用业务或技术行话,都有助于提升沟通效率。 ### 系统的...

    react-project-myreads:我的第一个react项目

    如果选择从此模板开始,则您的工作将是通过重构此模板中的静态代码来为应用程序添加交互性。 当然,如果您愿意,您可以自由地从头开始这个项目! 只要确保使用来引导项目即可。TL; DR 要立即开始开发: 使用npm ...

    reactnd-project-myreads-starter:React MyReads项目的入门代码

    如果选择从此模板开始,则您的工作将是通过重构此模板中的静态代码来为应用程序添加交互性。 当然,如果您愿意,您可以自由地从头开始这个项目! 只要确保使用来引导项目即可。 TL; DR 要立即开始开发: 使用npm...

    Book_Shelf:作为Udacity React Nanodegree一部分的第一个React项目

    如果选择从此模板开始,则您的工作将是通过重构此模板中的静态代码来为应用程序添加交互性。 当然,如果您愿意,您可以从头开始这个项目! 只要确保使用来引导项目即可。 TL; DR 要立即开始开发,请执行以下操作...

Global site tag (gtag.js) - Google Analytics