- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关闭。这个问题是opinion-based .它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.
2年前关闭。
Improve this question
我在一家单一产品、单一客户的小型公司工作,该公司正在向单一产品、多客户的公司转型。即使我们只有一个客户,我们也有不同交付日期的不同项目,但对于每个项目,我们都能够交付最新的月度版本,我们将其保存在单独的代码分支中以备不时之需”我不得不为该特定版本提供错误修复。
最近,我们获得了一些新客户,出现了一个新问题:总公司通常会解决(不破坏功能)许多不同的客户特定问题,并不是所有客户都想要所有的变化,而是更喜欢樱桃- 选择修复和功能。
遇到这种情况,你有什么经验,如何在不因测试和工作而重载的情况下实际处理(我们每月的发布测试大约需要3天的电脑时间)?明智的版本控制,你如何管理(我猜 cvs 最终将不得不去......)?
最佳答案
最简单的解决方案是将产品切割成核心产品,将每个功能切割成插件。这样,每个客户都可以挑选他们想要的功能。但即使是这种解决方案也会很快让一家小公司不堪重负。
实际上,您通常处于更糟糕的情况:您有一个新功能可以帮助客户 A 并为客户 B 破坏一些东西(例如,客户 B 还没有准备好修改他们的数据库,如果没有更改,新功能将无法运行,所以这实际上使客户 B 无法使用新版本)。如果你很大,你可以简单地忽略客户 B。
就目前而言,您确实需要找到一种方法来说服您的客户继续前进。最简单的方法是金钱:告诉他们获得量身定制的产品需要多少钱,如果你能找到适合每个人的解决方案,他们将节省多少钱。邀请你的客户过来,一起建立一个变更 list ,让每个人都同意这个计划。
此外,您确实必须进行自动单元测试,因此您可以 100% 确定今天离开家的产品不可能比您四个星期前销售的产品更差。
即使有最好的版本控制系统(对我来说,那将是 git ),如果你不能让每个人都朝着同一个方向前进(当然,除了,你真的可以把每个客户拆分成一个插件)。
关于version-control - 管理多个代码分支和交付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553338/
我正在使用JQuery Mobile,有两个可用版本:稳定版和旧版。我不熟悉后者。 什么是旧版?或与稳定版有什么区别? 建议在生产现场中使用哪一个? 非常感谢 最佳答案 旧版本是一个旧的稳定版本,由于
Lotus Notes 具有“版本控制”功能。您可以将其设置为在用户需要单击 File->New->Version 以创建新版本的模式下工作。我想在表单上的按钮中使用该功能。 有没有办法(使用 Lot
关闭。这个问题是opinion-based 。目前不接受答案。 已关闭10 年前。 已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 是否有任何
我对使用数据库和数据库设计/创建模式非常陌生,我非常感谢一些建议/建议。我正在创建一个应用程序,用户在其中输入数据,并向用户提供该数据的版本控制。用户可以进入并恢复更改或更新值(有点像 git)等,我
尝试启动带头 Selenium session 时出现此错误。 我使用的命令是driver = webdriver.Chrome(executable_path=r'C:\Users\Administ
Apple 的文档本来可以更清楚地说明如何提交更新版本。 正如标题所问,有什么区别 itunes connect 中的版本号(提交更新时必须提供) xcode 中的捆绑版本 捆绑版本字符串,短 它们有
当我在我的 Android 设备上运行我的应用程序时出现错误: meteor run android-device --settings settings.json --mobile-server=m
v = data.getValues(XP_PHONE); for (int i = 0; i alter 'table_foo', {NAME => 'column_fam_foo', V
我在Google CoLab中有这样一个错误:。以下是我的Cuda和Torch版本:。CUDA版本:。这是pytorch版本:2.0.1+cu118我试图安装Cuda 11.8,但没有成功。
我从其他用户那里发现了“类似”的问题,但没有一个答案有效。我正在尝试安装这些软件包: if (!require("BiocManager")) install.packages("BiocMana
我正在使用 Version Maven Plugin插件 use-latest-versions将 groupID=com.example* 内部依赖版本更新到最新版本的功能。这是使用 Jenkins
我是 Kotlin 应用程序开发的初学者。当我尝试构建应用程序时发生以下错误 - e: C:/Users/Lenovo/.gradle/caches/transforms-2/files-2.1/32
我正在尝试安装一个名为 metaBIT 的程序。我能够将它添加到我的路径中。但是当我执行时: metaBIT -h 它出错并给我这个: Traceback (most recent call last
在使用选项 -smt2 -in 启动 Z3 后,我可以获取 Z3 的版本吗?有点像 (get-z3-version) ; Z3 4.3.2 x64 // Desired reply 最佳答案 在SM
这个问题在这里已经有了答案: What is the difference between Version and 'Runtime Version' in .Net? (1 个回答) 关闭 9 年
new Version(AssemblyFileVersionAttribute.Version) 总是会成功吗? 这是我的代码。 Contract.Ensures(Contract.Result()
我正在尝试针对另一个使用 libcurl 共享库的共享库 (libtheirstuff.so) 交叉编译我自己的共享库 (libmystuff.so),但出现以下错误: libmystuff.so:
在 Bazaar 中,如果您在 foo.html 中有冲突,它将生成额外的 3 个文件 foo.html.BASE foo.html.OTHER foo.html.THIS 那么你可以 diff -N
我的 java 7 和 java 8 都安装在我的 Windows 系统的 C:\Program Files\Java 下 在环境的路径中我像这样指定了java 7的路径。 %JAVA_HOME%/b
#version 330 和 #version 330 core 有什么区别? 核心重要吗? 最佳答案 这两个版本声明是等价的。 核心 是默认值。来自 GLSL 3.30 规范: If no prof
我是一名优秀的程序员,十分优秀!