标签 协作 下的文章

抛开成见,设计师和开发者的命运永远交织在一起。 以下是如何让每个人都在同一页面上。

在任何软件项目中,设计至关重要。设计师不像开发团队那样熟悉其内部工作,但迟早都要知道开发人员写代码的意图。

两边都有自己的成见。工程师经常认为设计师们古怪不理性,而设计师也认为工程师们死板要求高。在一天的工作快要结束时,情况会变得更加微妙。设计师和开发者们的命运永远交织在一起。

做到以下九件事,便可以改进他们之间的合作。

1. 首先,说实在的,打破壁垒

几乎每一个行业都有“ 迷墙 wall of confusion ”的因子。无论你干什么工作,拆除这堵墙的第一步就是要双方都认同它需要拆除。一旦所有的人都认为现有的流程效率低下,你就可以从其它想法中获得灵感,然后解决问题。

2. 学会共情

在开始干之前,先等一下。这是团队建设的重要的交汇点,也是建立共同认知的时机:我们都是成人,我们都有自己的优点与缺点,更重要的是,我们是一个团队。围绕工作流程与工作效率的讨论会经常发生,因此在开始之前,建立一个信任与协作的基础至关重要。

3. 认识差异

设计师和开发者从不同的角度攻克问题。对于相同的问题,设计师会追求更好的效果,而开发者会寻求更高的效率。这两种观点不必互相排斥。谈判和妥协的余地很大,并且在二者之间必然存在一个用户满意度最佳的中点。

4. 拥抱共性

这一切都是与工作流程相关的。 持续集成 Continuous Integration / 持续交付 Continuous Delivery ,scrum,agile 等等,都基本上说了一件事:构思,迭代,考察,重复。迭代和重复是两种工作的相同点。因此,不再让开发周期紧跟设计周期,而是同时并行地运行它们,这样会更有意义。 同步周期 Syncing cycles 允许团队在每个环节交流、协作、互相影响。

5. 管理期望

一切冲突的起因一言以蔽之:期望不符。因此,防止系统性分裂的简单办法就是通过确保团队成员在说之前先想、在做之前先说来管理期望。设定的期望往往会通过日常对话不断演变。强迫团队通过开会以达到其效果可能会适得其反。

6. 按需开会

只在工作开始和工作结束开一次会远远不够。但也不意味着每天或每周都要开会。定期开会也可能会适得其反。试着按需开会吧。即兴会议,即使是员工闲聊,也可能会发生很棒的事情。如果你的团队是分散式的或者甚至有一名远程员工,视频会议,文本聊天或者打电话都是开会的好方法。团队中的每人都有多种方式互相沟通,这一点非常重要。

7. 建立词库

设计师和开发者有时候对相似的想法有着不同的术语,就像把猫叫成喵。毕竟,比起术语的准确度和合适度来,大家统一说法才更重要。

8. 学会沟通

无论什么时候,团队中的每个人都有责任去维持一个有效的沟通。每个人都应该努力做到一字一板。

9. 不断改善

仅一名团队成员就能破坏整个进度。全力以赴。如果每个人都不关心产品或目标,继续项目或者做出改变的动机就会出现问题。


via: https://opensource.com/article/18/5/9-ways-improve-collaboration-developers-designers

作者:Jason Brock, Jason Porter 选题:lujun9972 译者:LuuMing 校对:pityonline

本文由 LCTT 原创编译,Linux中国 荣誉推出

技术问题推动了开源协作的力量。

我最近加入了 Red Hat,在这之前我在另外一家科技公司工作了很多年。在我的上一份工作岗位上,我开发了不少不同类型的软件产品,这些产品是成功的,但都有版权保护。不仅法规限制了我们不能在公司外将软件共享,而且我们在公司内部也基本不进行共享。在那时,我觉得这很有道理:公司花费了时间、精力和预算用于开发软件,理应保护并要求软件涉及的利益。

时间如梭,去年我加入 Red Hat 并培养出一种完全不同的理念。Buildah 项目是我最早加入的项目之一,该项目用于构建 OCI (Open Container Initiative) 标准的镜像,特别擅长让你精简创建好的镜像的体积。那时 Buildah 还处于非常早期的阶段,包含一些瑕疵,不适合用于生产环境。

刚接触项目不久,我做了一些小变更,然后询问公司内部 git 仓库地址,以便提交我做的变更。收到的回答是:没有内部仓库,直接将变更提交到 GitHub 上。这让我感到困惑,将我的变更提交到 GitHub 意味着:任何人都可以查看这部分代码并在他们自己的项目中使用。况且代码还有一些瑕疵,这样做简直有悖常理。但作为一个新人,我只是惊讶地摇了摇头并提交了变更。

一年后,我终于相信了开源软件的力量和价值。我仍为 Buildah 项目工作,我们最近遇到的一个主题很形象地说明了这种力量和价值。这个标题为 Buildah 镜像体积并不小? 的工单由 Tim Dudgeon (@tdudgeon) 提出。简而言之,他发现使用 Buildah 创建的镜像比使用 Docker 创建的镜像体积更大,而且 Buildah 镜像中并不包含一些额外应用,但 Docker 镜像中却包含它们。

为了比较,他首先操作如下:

$ docker pull centos:7
$ docker images
REPOSITORY            TAG              IMAGE ID                 CREATED             SIZE
docker.io/centos          7                   2d194b392dd1        2 weeks ago         195 MB

他发现 Docker 镜像的体积为 195MB。Tim 接着使用 Buildah 创建了一个(基于 scratch 的)最小化镜像,仅仅将 coreutilsbash 软件包加入到镜像中,使用的脚本如下:

$ cat  ./buildah-base.sh
#!/bin/bash

set -x

# build a minimal image
newcontainer=$(buildah from scratch)
scratchmnt=$(buildah mount $newcontainer)

# install the packages
yum install --installroot $scratchmnt bash coreutils --releasever 7 --setopt install_weak_deps=false -y
yum clean all -y --installroot $scratchmnt --releasever 7

sudo buildah config --cmd /bin/bash $newcontainer

# set some config info
buildah config --label name=centos-base $newcontainer

# commit the image
buildah unmount $newcontainer
buildah commit $newcontainer centos-base

$ sudo ./buildah-base.sh

$ sudo buildah images
IMAGE ID               IMAGE NAME                                             CREATED AT            SIZE
8379315d3e3e     docker.io/library/centos-base:latest           Mar 25, 2018 17:08   212.1 MB

Tim 想知道为何 Buildah 镜像体积反而大 17MB,毕竟 pythonyum 软件包都没有安装到 Buildah 镜像中,而这些软件已经安装到 Docker 镜像中。这个结果并不符合预期,在 Github 的相关主题中引发了广泛的讨论。

不仅 Red Hat 的员工参与了讨论,还有不少公司外人士也加入了讨论,这很有意义。值得一提的是,GitHub 用户 @pixdrift 主导了很多重要的讨论并提出很多发现,他指出在这个 Buildah 镜像中文档和语言包就占据了比 100MB 略多一点的空间。Pixdrift 建议在 yum 安装器中强制指定语言,据此提出如下修改过的 buildah-bash.sh 脚本:

#!/bin/bash

set -x

# build a minimal image
newcontainer=$(buildah from scratch)
scratchmnt=$(buildah mount $newcontainer)

# install the packages
yum install --installroot $scratchmnt bash coreutils --releasever 7 --setopt=install_weak_deps=false --setopt=tsflags=nodocs --setopt=override_install_langs=en_US.utf8 -y
yum clean all -y --installroot $scratchmnt --releasever 7

sudo buildah config --cmd /bin/bash $newcontainer

# set some config info
buildah config --label name=centos-base $newcontainer

# commit the image
buildah unmount $newcontainer
buildah commit $newcontainer centos-base

Tim 运行这个新脚本,得到的镜像体积缩减至 92MB,相比之前的 Buildah 镜像体积减少了 120MB,这比较接近我们的预期;然而,出于工程师的天性,56% 的体积缩减不能让他们满足。讨论继续深入下去,涉及如何移除个人语言包以节省更多空间。如果想了解讨论细节,点击 Buildah 镜像体积并不小? 这个链接。说不定你也能给出有帮助的点子,甚至更进一步成为 Buildah 项目的贡献者。这个主题的解决从一个侧面告诉我们,Buildah 软件可以多么快速和容易地创建体积最小化的容器,该容器仅包含你高效运行任务所需的软件。额外的好处是,你无需运行一个守护进程。

这个镜像体积缩减的主题让我意识到开源软件的力量。来自不同公司的大量开发者,在一天多的时间内,以开放讨论的形式进行合作解决问题。虽然解决这个具体问题并没有修改已有代码,但 Red Hat 公司外开发者对 Buildah 做了很多代码贡献,进而帮助项目变得更好。这些贡献也吸引了更多人才关注项目代码;如果像之前那样,代码作为版权保护软件的一部分放置在私有 git 仓库中,不会获得上述好处。我只用了一年的时间就转向拥抱 开源方式,而且可能不会再转回去了。

文章最初发表于 Project Atomic,已获得转载许可。


via: https://opensource.com/article/18/5/containers-buildah

作者:Tom Sweeney 选题:lujun9972 译者:pinewall 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Trello 是一个可视的团队协作平台,最近被 Atlassian 收购了,这里我说的最近的意思是 2017 年 1 月 9 日,星期一。

我作为 DigitalOcean 社区作者的董事会成员之一,一直在使用 Trello ,并在几天前开始使用它来管理一个非营利组织的小团队项目。这是一个很好的软件,任何团队,包括那些并不 geek 的成员,都能舒适地使用它。

如果你喜欢 Trello,但现在想要一个类似的软件,你可以自己托管,运行在自己的服务器上,我发现了四个你可以选择的工具。记住,我没有在我自己的服务器上安装其中任何一个,但从我收集的关于它们的信息上来看,我最可能使用的是 Kanboard 和 Restyaboard。

这是因为它们的安装要求很常见的。它们的安装过程也比较简单。Restyaboard 似乎有一个更好的 UI,所以它可能是我的第一个选择,虽然其中的一个要求(Elasticsearch)让我认为它对服务器的要求将比其它的更多。不管怎样,我会很快发布尝试自己托管 Kanboard 和 Restyaboard 的文章,所以请经常回来看看。

在那之前,我发现的替代 Trello 的前四个选择是:

Kanboard

除了自由且开源,看板功能还提供与第三方工具和服务(如 Amazon S3 Storage、Hipchat、Jabber、RabbitMQ、Slack 等)的集成。Kanboard 可以安装在微软操作系统上,但要需要安装在自由开源组件之上,你需要以下内容:

  • PHP >= 5.3.9
  • MariaDB/MySQL、Postgres 或者 Sqlite
  • Apache 或者 Nginx
  • CentOS 6/7、 Debian 8、 FreeBSD 10 或者 Ubuntu 14.04/16.04

从对项目的一个非常粗略的评估,UI 似乎不如本文中提到的其他工具靓丽。 如果改变主意不想自己托管,有一个有管理的或托管的 Kanboard 可供你注册。该项目的 GitHub 页面在 https://github.com/kanboard/kanboard

 title=

Restyaboard

有靓丽的用户界面和从 Trello 导入数据的能力,Restyaboard 是一个非常有吸引力的 Trello 替代品。安装要求似乎也不高;在你的服务器上安装 Restyaboard 你需要以下内容:

  • PHP-FPM
  • Postgres
  • Nginx
  • Elasticsearch

需求不多,而且有个脚本可在你的服务器上安装所有需要的组件,这使安装变得更简单。还有一个 AMI 可以用于在 Amazon AWS 上安装。对于 Docker 的粉丝,有一个非官方的 Docker 镜像可以用来运行 Restyaboard 容器。我不鼓励使用非官方 Docker 镜像运行 Docker 容器,但如果你想要试试,那会是一个选择。 项目的详细信息的 GitHub page

 title=

Taiga

部署好的 Taiga 由三个组件组成 - taiga-back(后端/ api)、taiga-front-dist(前端)、taiga-events - 每个都有自己的要求。一般来说,在你的服务器上安装 Taiga 你需要以下这些:

  • Python >= 3.4
  • PostgreSQL >= 9.3
  • RabbitMQ(可选项,看是否需要异步提醒)
  • gcc 和开发头文件
  • Ruby >= 2.1 (仅用于编译 sass)
  • NodeJS >= 5.0 (npm、 gulp 和 bower 用于下载依赖和编译 coffeescript)

安装要求似乎比其它的多一点,所以如果这是一个问题,有一个托管平台可以免费使用。该托管平台上的额外功能是收费的。有关详细信息,请访问项目的 GitHub页面

 title=

Wekan

Wekan 是用 Meteor 构建的,这是一个用于构建 web 应用程序的 JavaScript 框架,托管在 https://github.com/wekan/wekan。 该项目提供了在 Heroku、Sandstorm 的一键安装,以及经过验证的 Docker 镜像上,以便在 Docker 容器上运行它。它也可以安装在 Scalingo、IndieHosters 和 Cloudron,但我找不到部署在其他如 VultrDigitalOcean 的云托管提供商上的安装说明。

所以看来,你安装 Wekan 最简单的方式是使用一个支持的云托管平台。

 title=

如我之前承诺的,请稍后回来看看我发布的如何在你的服务器上安装 Kanboard 和 Restyaboard 指南。

更新

刚发布这篇文章,我就发现了 Tuleap。它似乎非常精美,但生产环境安装只支持 CentOS 6 和 Red Hat 6。支持使用 Docker 的容器化安装,但不推荐用于生产。


via: http://linuxbsdos.com/2017/01/09/4-open-source-alternatives-to-trello-that-you-can-self-host/

作者:linuxbsdos.com 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

简而言之, 协作编辑 Collaborative Edit 就是多个人进行编辑。协作有好处也有风险。好处之一是更加全面/协调的方式,更好的利用现有资源和一个更加有力一致的声音。对于我来说,最大的好处是极大的透明度。那是当我需要采纳同事的观点。同事之间来来回回地传文件效率非常低,导致不必要的延误还让人(比如,我)对整个协作这件事都感到不满意。有个好的协作软件,我就能实时地或异步地分享笔记,数据和文件,并用评论来分享自己的想法。这样在文档、图片、视频、演示文稿上协作就不会那么的琐碎而无聊。

有很多种方式能在线进行协作,简直不能更简便了。这篇文章展示了我最喜欢的开源的实时文档协作编辑工具。

Google Docs 是个非常好的高效应用,有着大部分我所需要的功能。它可以作为一个实时地协作编辑文档的工具提供服务。文档可以被分享、打开并被多位用户同时编辑,用户还能看见其他协作者一个字母一个字母的编辑过程。虽然 Google Docs 对个人是免费的,但并不开源。

下面是我带来的最棒的开源协作编辑器,它们能帮你不被打扰的集中精力进行写作,而且是和其他人协同完成。


Hackpad

Hackpad 是个开源的基于网页的实时 wiki,基于开源 EtherPad 协作文档编辑器。

Hackpad 允许用户实时分享你的文档,它还用彩色编码显示各个作者分别贡献了哪部分。它还允许插入图片、清单,由于提供了语法高亮功能,它还能用来写代码。

当2014年4月 Dropbox 收购了 Hackpad 后,就在这个月这款软件以开源的形式发布。让我们经历的等待非常值得。

特性:

  • 有类似 wiki 所提供的,一套非常完善的功能
  • 实时或者异步地记录协作笔记,共享数据和文件,或用评论分享你们的想法
  • 细致的隐私许可让你可以邀请单个朋友、一个十几人的团队或者上千的 Twitter 粉丝
  • 智能执行
  • 直接从流行的视频分享网站上插入视频
  • 表格
  • 可对使用广泛的包括 C, C#, CSS, CoffeeScript, Java, 以及 HTML 在内的编程语言进行语法高亮
  • 网站:hackpad.com
  • 源代码:github.com/dropbox/hackpad
  • 开发者:Contributors
  • 许可:Apache License, Version 2.0
  • 版本号: -

Etherpad

Etherpad 是个基于网页的开源实时协作编辑器,允许多个作者同时编辑一个文本文档,写评论,并与其他作者用群聊方式进行交流。

Etherpad 是用 JavaScript 编写的,运行在 AppJet 平台之上,通过 Comet 流实现实时的功能。

特性:

  • 尽心设计的斯巴达界面
  • 简单的格式化文本功能
  • “滑动时间轴”——浏览一个工程历史版本
  • 可以下载纯文本、 PDF、微软的 Word 文档、Open Document 和 HTML 格式的文档
  • 每隔一段很短的时间就会自动保存
  • 可个性化程度高
  • 有客户端插件可以扩展编辑的功能
  • 几百个支持 Etherpad 的扩展,包括支持 email 提醒,pad 管理,授权
  • 可访问性开启
  • 可从 Node 里或通过 CLI(命令行界面)和 EtherPad 的内容交互
  • 网站: etherpad.org
  • 源代码:github.com/ether/etherpad-lite
  • 开发者:David Greenspan, Aaron Iba, J.D. Zamfiresc, Daniel Clemens, David Cole
  • 许可:Apache License, Version 2.0
  • 版本号: 1.5.7

Firepad

Firepad 是个开源的协作文本编辑器。它的设计目的是被嵌入到更大的网页应用中对几天内新加入的代码进行批注。

Firepad 是个全功能的文本编辑器,有解决冲突,光标同步,用户属性,用户在线状态检测功能。它使用 Firebase 作为后台,而且不需要任何服务器端的代码。他可以被加入到任何网页应用中。Firepad 可以使用 CodeMirror 编辑器或者 Ace 编辑器提交文本,它的操作转换代码是从 ot.js 上借鉴的。

如果你想要通过添加简单的文档和代码编辑器来扩展你的网页应用能力,Firepad 最适合不过了。

Firepad 已被多个编辑器使用,包括Atlassian Stash Realtime Editor、Nitrous.IO、LiveMinutes 和 Koding。

特性:

  • 纯正的协作编辑
  • 基于 OT 的智能合并及解决冲突
  • 支持多种格式的文本和代码的编辑
  • 光标位置同步
  • 撤销/重做
  • 文本高亮
  • 用户属性
  • 在线检测
  • 版本检查点
  • 图片
  • 通过它的 API 拓展 Firepad
  • 支持所有现代浏览器:Chrome、Safari、Opera 11+、IE8+、Firefox 3.6+
  • 网站: www.firepad.io
  • 源代码:github.com/firebase/firepad
  • 开发者:Michael Lehenbauer and the team at Firebase
  • 许可:MIT
  • 版本号:1.1.1

OwnCloud Documents

ownCloud Documents 是个可以单独并/或协作进行办公室文档编辑 ownCloud 应用。它允许最多5个人同时在网页浏览器上协作进行编辑 .odt 和 .doc 文件。

ownCloud 是个自托管文件同步和分享服务器。他通过网页界面,同步客户端或 WebDAV 提供你数据的使用权,同时提供一个容易在设备间进行浏览、同步和分享的平台。

特性:

  • 协作编辑,多个用户同时进行文件编辑
  • 在 ownCloud 里创建文档
  • 上传文档
  • 在浏览器里分享和编辑文件,然后在 ownCloud 内部或通过公共链接进行分享这些文件
  • 有类似 ownCloud 的功能,如版本管理、本地同步、加密、恢复被删文件
  • 通过透明转换文件格式的方式无缝支持微软 Word 文档
  • 网站:owncloud.org
  • 源代码: github.com/owncloud/documents
  • 开发者:OwnCloud Inc.
  • 许可:AGPLv3
  • 版本号:8.1.1

Gobby

Gobby 是个支持在一个会话内进行多个用户聊天并打开多个文档的协作编辑器。所有的用户都能同时在文件上进行工作,无需锁定。不同用户编写的部分用不同颜色高亮显示,它还支持多个编程和标记语言的语法高亮。

Gobby 允许多个用户在互联网上实时共同编辑同一个文档。它很好的整合了 GNOME 环境。它拥有一个客户端-服务端结构,这让它能支持一个会话开多个文档,文档同步请求,密码保护和 IRC 式的聊天方式可以在多个频道进行交流。用户可以选择一个颜色对他们在文档中编写的文本进行高亮。

还供有一个叫做 infinoted 的专用服务器。

特性:

  • 成熟的文本编辑能力包括使用 GtkSourceView 的语法高亮功能
  • 实时、无需锁定、通过加密(包括PFS)连接的协作文本编辑
  • 整合了群聊
  • 本地组撤销:撤销不会影响远程用户的修改
  • 显示远程用户的光标和选择区域
  • 用不同颜色高亮不同用户编写的文本
  • 适用于大多数编程语言的语法高亮,自动缩进,可配置 tab 宽度
  • 零冲突
  • 加密数据传输包括完美的正向加密(PFS)
  • 会话可被密码保护
  • 通过 Access Control Lists (ACLs) 进行精密的权限保护
  • 高度个性化的专用服务器
  • 自动保存文档
  • 先进的查找和替换功能
  • 国际化
  • 完整的 Unicode 支持
  • 网站:gobby.github.io
  • 源代码: github.com/gobby
  • 开发者: Armin Burgmeier, Philipp Kern and contributors
  • 许可: GNU GPLv2+ and ISC
  • 版本号:0.5.0

OnlyOffice

ONLYOFFICE(从前叫 Teamlab Office)是个多功能云端在线办公套件,整合了 CRM(客户关系管理)系统、文档和项目管理工具箱、甘特图以及邮件整合器

它能让你整理商业任务和时间表,保存并分享你的协作或个人文档,使用网络社交工具如博客和论坛,还可以和你的队员通过团队的即时聊天工具进行交流。

能在同一个地方管理文档、项目、团队和顾客关系。OnlyOffice 结合了文本,电子表格和电子幻灯片编辑器,他们的功能跟微软桌面应用(Word、Excel 和 PowerPoint)的功能相同。但是他允许实时进行协作编辑、评论和聊天。

OnlyOffice 是用 ASP.NET 编写的,基于 HTML5 Canvas 元素,并且被翻译成21种语言。

特性:

  • 当在大文档里工作、翻页和缩放时,它能与桌面应用一样强大
  • 文档可以在浏览/编辑模式下分享
  • 文档嵌入
  • 电子表格和电子幻灯片编辑器
  • 协作编辑
  • 评论
  • 群聊
  • 移动应用
  • 甘特图
  • 时间管理
  • 权限管理
  • Invoicing 系统
  • 日历
  • 整合了文件保存系统:Google Drive、Box、OneDrive、Dropbox、OwnCloud
  • 整合了 CRM、电子邮件整合器和工程管理模块
  • 邮件服务器
  • 邮件整合器
  • 可以编辑流行格式的文档、电子表格和电子幻灯片:DOC、DOCX、ODT、RTF、TXT、XLS、XLSX、ODS、CSV、PPTX、PPT、ODP
  • 网站:www.onlyoffice.com
  • 源代码:github.com/ONLYOFFICE/DocumentServer
  • 开发者:Ascensio System SIA
  • 许可:GNU GPL v3
  • 版本号:7.7

via: http://www.linuxlinks.com/article/20150823085112605/CollaborativeEditing.html

作者:Frazer Kline 译者:H-mudcup 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出