桌面供应小型Linux软件开发团队

目标:让一个小团队使用标准的开发图像,而不是4个软件开发者设置他们自己的环境。

为什么:

  1. 它需要一天或几天来安装发行版,特定于构build的库,编辑器和IDE,mysql,couchdb,java,maven,python,android-sdk等工具。这是一个庞大的PITA,当4个开发人员重复4次(不是系统pipe理员)浪费时间,并产生恼人的分歧,后来出现(它build立在我的盒子综合征)。

  2. 没有共享的生产力,设置,技巧,脚本,设置。

其中一些function是通过将构build系统分离成无头虚拟机镜像来实现的。 这并没有真正解决工具,或者需要做的GUI桌面开发。

所以我看到三个基本的策略,重影,虚拟化,最后创build一种内部的Linux发行版(我想Google做的是这样的)。

目标开发环境基于Debian OpenBox,并且必须允许混合第三代Core i7笔记本电脑,最低8GB,可以同时工作单个和多个头。 重要的是,拉皮条是一样的,但混合2012年的MacBook和个人电脑。 所以:

  1. 虚拟化:正在做一个虚拟机内的所有工作,比如VirtualBox,在这个硬件上很实用或者很烦人。

  2. 重影:来自不同厂商的笔记本电脑会使这个不切实际。

  3. DIY发行版:缺less一些软件包的安装脚本,我不知道是否有任何“发行版”可以避免成为脚本程序包安装史诗般的项目。

那么有什么build议?

这是一个棘手的问题,一个真正的,真正快速的政治冲突。 如果企业文化在“自主创新,企业创造力最好”的企业文化中是非常强大的,那就不可能破解。 但是,由于IT至less在最初的设置中涉及到,所以听起来你并不是那么遥远。

我有一个类似的问题,虽然所有的IT参与是一个新的笔记本电脑的最基本的设置。 我没有参与build立开发环境,每个开发者都负责这个(这很快成为一个团队的努力,这是一个很好的事情)。


但是,如果没有明确的pipe理支持,您所做的任何事情都需要让受支持的用户相信,您正在做的是最好的。 这是我们不能教的技能。


由于我们工作的性质,我们发现面向虚拟机的开发非常好。 由于我们也有OSX,Windows和Linux笔记本电脑作为开发工作站的组合,而且我们正朝着更加具体的工具和操作系统组合方向发展,所以虚拟机器是确保新代码能够工作的最可靠的方法目标平台。

从历史上看,我们已经让人们在MacBook上开发,部署到集成环境,然后花费几天时间处理目标环境中不适用的特定于mac的怪癖。 一旦这些用户开始使用虚拟机,这个“花费几天”的问题就消失了。

面向虚拟机的工作stream是否适合您,很大程度上取决于您的开发实践。 这似乎是最好的,如果一个dev:

  • 开发人员可以在function分支上工作吗?
  • 可以轻松地将该function分支部署到自己的一组虚拟机
  • 可以轻松地将其function分支合并到集成/testing/ qa中,并且可以轻松解除调整
  • 有足够的风格感,不要惹怒其他开发者

至于“VM中的GUI IDE”,这也可以工作。 我们的几个Mac用户使用这个确切的路线,他们在一个屏幕上有一个全屏幕的虚拟机,在这个屏幕上他们完成了所有的代码编写工作,并使用其他屏幕用于浏览计算器等非开发事物。 如果剪贴板可以在桌面和虚拟机之间移植,这最好。

现在一个好的计划是在你使用的任何平台上构build一个虚拟机,这个虚拟机具有你总是把所有的东西放在新的版本中。 然后将它们连接起来,以便从您所托pipe的repo中获取更新,以便您可以更好地pipe理在什么时候更新软件,并且获得更less的版本蠕变。 为了达到最好的效果,包括一些似乎是less数开发人员共同的调整,因为这将使心灵之间的战斗更容易。

你正在与根深蒂固的做法作斗争,这总是需要一些时间来改变。 至less,没有来自On High的订单。