如何提高软件复用度,降低项目开发成本?

news2025/1/10 20:22:19

        1、代码基线管控策略

        理想的代码复用是我们建立一条主干代码,持续维护下去。面对客户的新需求,需要我们拉一条临时分支来满足客户需求,然后将稳定后的临时分支代码成果回归到主干。这样我们所有的研发成果都可以在一个代码分支上进行追溯,后期如有类似客户,我们可以很快去满足,这样大大节约了人力成本。

如何提高软件复用度,降低项目开发成本?
如何提高软件复用度,降低项目开发成本?

        但在实际实施过程中,整个公司的开发人员都在修改同一套代码,在持续维护一条代码主干。如不能定期进行主干代码地清理、检修、重构,那么这条主干会越来越庞大和冗余,容易出现性能、稳定性的问题。

如何提高软件复用度,降低项目开发成本?
如何提高软件复用度,降低项目开发成本?

        虽然满足所有客户需求都从主干出,从全局来看是最优解,但对局部而言就未必。如自己的项目单独开发,轻装上阵,既不用判断是否会影响其他客户,也不用做完后回归主干,从工作量和工作复杂度来说,这样相对较为轻松快捷。

        2、共享和重用基础模块CBB

        共用基础模块(CBB)是不同产品系统间共用的零部件、模块、技术、技术等成果。共享和重用基础模块,能够减少组织的重复开发,节约开发资源,缩短开发周期。

        而适合交付场景的复用,就是做好模块化拆分,以组件、服务的形式去打造共用基础模块。如乐高积木一样,颗粒度尽可能小,这样方便插拔到各个地方进行重新组合。而针对客户定制化的需求,需要通过“胶水”代码去调用组件,而进行装配的工作留给交付现场。

如何提高软件复用度,降低项目开发成本?
如何提高软件复用度,降低项目开发成本?

        但需要注意,如果某需求的解决方案/共享模块不成熟,从全局公司战略部署来说,是需求的,但对单个项目来说并不需要,这种情况往往是跨团队合作冲突的重要来源, 因此一定需要将责权利划分清楚。

        3、建立资产市场

        因客户的个性需求复杂多变,大多数情况下,并不能开箱即用,需要完成特定功能,以便按需取用共用基础模块来交付项目。因此我们需要一个在线的资产市场来承载资产,并对资产进行集中管理,以供潜在的用户浏览和发现。

        如产品的安全性很重要,但在项目交付时,往往容易忽视,防范不到位。如果我们有一个通用的安全组件提供给开发者,那么就能够快速解决项目的安全防范问题。

如何提高软件复用度,降低项目开发成本?
如何提高软件复用度,降低项目开发成本?

        4、建立相应的项目奖考核机制

        需要建立对复用项目贡献作为项目奖的考核指标,可以根据项目调研确定的需求与通用项目已确定的需求做对比,确定从复用项目提出的共用基础模块以及项目对复用项目的贡献,从而确定项目奖的考核指标。

        项目需要在完成一到两周后,整理出可以对复用项目贡献的内容。后期其他项目使用了此共用模块内容,应该根据所节约的成本,奖励一定的比例给与提供者。

如何提高软件复用度,降低项目开发成本?
如何提高软件复用度,降低项目开发成本?

​        因此,我们在进行估算项目规模和项目产品报价时,需要将复用度因素考虑进去。如CoCode需求分析工具,为了提高自动估算项目的精准度,在通过调整功能点数和调整因子进行估算项目时,新增修改类型和重用程度两种功能点调整类型。

        工具将修改类型分为:新增、修改、删除、不变四种类型;重用程度分为高、中、低三种。我们通过修改类型和重用程度,调整相应的功能点数,从而更精准的自动估算项目规模、工作量和产品报价,有利于项目快速精准估算,需求分析工具能够节省15-25%的开发成本。

如何提高软件复用度,降低项目开发成本?
如何提高软件复用度,降低项目开发成本?

​        CoCode发布四大开发工具:Co-Project智能项目管理工具、需求分析工具、评审分析工具、故事点估算工具。项目管理平台发布4大版本,30天免费试用。CMMI落地工具上线,全面支持CMMI3-5级高效落地。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/558775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(序章——浅谈单片机以及FreeRTOS)

学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。 注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

论文解读 | 透过窥镜: 透明容器内物体的神经三维重建

原创 | 文 BFT机器人 随着虚拟现实和虚拟世界技术的发展,博物馆藏品的数字化是一个越来越受关注的新兴话题。世界上许多著名的博物馆都在为网上展览建立自己的数字馆藏。 在这些藏品中,有一种特殊而重要的藏品昆虫、人体组织、水生生物和其他易碎的标本需…

ZooKeeper(一):基础介绍

文章目录 什么是 ZooKeeper?ZooKeeper 发展历史ZooKeeper 应用场景ZooKeeper 服务的使用ZooKeeper 数据模型data tree 接口znode 分类 总结 什么是 ZooKeeper? ZooKeeper 是一个分布式的,开放源码的分布式应用程序协同服务。ZooKeeper 的设计…

docker-compose安装nacos 2.2.1及配置

目录 官网 创建存储目录 创建数据库 application.properties配置(重要) docker-compose.yml 启动 登录 下面是安装nacos 2.2.1版本的方法,有一些变化 官网 GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configu…

SCTracker 跟踪论文阅读笔记

SCTracker 跟踪论文阅读笔记 SCTracker: Multi-object tracking with shape and confidence constraints 论文链接 (未开源状态) 论文主要更新点围绕shape constraint and confidence两点来展开: 首先论证在跟踪匹配的过程中D-box(检测框)与T-box(预测框)需要有一定…

今日的CSS小案例

个人名片: 😊作者简介:一名大一在校生,web前端开发专业 🤡 个人主页:几何小超 🐼座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。 🎅**学习目…

第一篇、基于Arduino uno,获取dht11温湿度传感器的温度信息和湿度信息——结果导向

0、结果 说明:先来看看串口调试助手显示的结果,如果是你想要的,可以接着往下看。 1、外观 说明:虽然dht11温湿度模块形态各异,但是代码都是适用的,因为它们的模块都是一样的。 2、连线 说明:…

微博开发--微博官方API使用方法【从注册到实战】

第一步:微博开发者身份认证 访问微博开放平台,登录自己微博账号,登录之后首先需要完善开发者的基本信息。【使用个人】 填写完成之后【审核通过】如下: 第二步:创建自己的应用 【备注:如果只是为了测试…

逻辑回归及逻辑回归的评估指标

一、逻辑回归介绍 逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛。 1.逻辑回归的应用场景 …

【腾讯云FinOps Crane 集训营】快速搭建一个 Kubernetes+Crane 环境,以及如何基于 Crane 优化你的集群和应用初体验

文章目录 一、活动介绍二、环境搭建三、安装本地的 Kind 集群和 Crane 组件四、界面截图五、主要功能六、整体架构七、Crane的优势八、总结参考文献 一、活动介绍 Crane 是由腾讯云主导开源的国内第一个基于云原生技术的成本优化项目,遵循 FinOps 标准,…

用java带你了解网络IO模型

目录 1.BIO1.1 简述1.2 代码示例1.3优点和缺点1.4 思考 2. NoBlockingIO2.1 简述2.2 代码示例2.3 优点和缺点2.4 思考 3. NIO(NewIO)3.1 简述3.2 代码示例3.3 优点和缺点3.3 思考 4. 扩展select/poll、epoll4.1 简述4.2 select/poll4.3 epoll4.4 扩展话题…

Linux之vim编辑器的使用

目录 一、vim是什么? 试验1: 二.命令模式继承用法: vim命令模式的快捷键: 光标移动: vim文本复制相关操作: vim文本编辑操作: 三.末行模式命令用法 部分快捷键: 四.vim编辑器的配置原理 一、vim是什么? vi…

Hive SQL语句的正确执行顺序

关于 sql 语句的执行顺序网上有很多资料,但是大多都没进行验证,并且很多都有点小错误,尤其是对于 select 和 group by 执行的先后顺序,有说 select 先执行,有说 group by 先执行,到底它俩谁先执行呢&#x…

智能结构诊断器:建筑结构健康的守护者

近年来,接二连三的自建房坍塌,超高层建筑震动,让建筑的健康和安全性成为了人们关注的焦点。为了确保建筑物的长期稳定性和安全性,迫切需要高效且准确的方法来监测结构的健康状况。智能结构诊断器的出现,让建筑结构监测…

大数据如何助力营销(5)活动复盘

在市场竞争日益激烈的今天,营销活动已经成为吸引用户、提升品牌影响力、增加销售转化的重要手段。然而,一场营销活动在举办后,往往难以评估活动的效果,而大数据技术将从方方面面、科学有效地复盘活动,并为下一次举办活…

chatgpt赋能Python-python_kbhit

Python kbhit - 帮助您掌握实时按键输入 如果您需要使用实时按键输入来控制您的Python程序,那么你需要知道的是Python kbhit。kbhit是一种允许用户实时按键输入并立即响应的技术。本文将介绍Python kbhit的用途和用法,并探讨实时输入如何帮助您掌控程序…

AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路

本教程收集于:AIGC从入门到精通教程 AI绘图学习心得分享-Midjourney绘画AI,让你少走一些弯路 本篇没有什么长篇大论,全部都是实用心得总结。接下来,我们将分享关于Midjourney绘画AI的实用心得总结,包括构图指令结构、常用指令、操作技巧、常用风格词汇和构图词汇。 如果…

手机号码在网时长 API 实现广告投放和精准营销案例分析

引言 手机在网时长是指用户在移动网络上的在线时间,包括用户接入网络的时间和断开网络的时间。手机在网时长 API 是一种提供手机在网时长数据的编程接口,为开发者和服务提供商提供了获取和利用这些数据的能力。 本文旨在深入探讨手机在网时长 API 的技…

计算机视觉——day95 PANet:基于样本原型对齐的Few-Shot图像语义分割

PANet:基于样本原型对齐的Few-Shot图像语义分割 1. Introduction2. Related workFew-shot segmentation 3. Method3.1. Problem setting3.2. Method overview3.3. Prototype learning(原型学习)3.4. 非参数度量学习3.5. 原型对准正则化(PAR) 4. Experime…

MySQL高级 之 explain执行计划详解

使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询的序…