作为开源的中转中心,GitHub 离用户的期望还有一定的距离。而这个距离又该如何逐步缩小?

作者 | Pravendra Singh
译者 | 弯月,责编 | 屠敏
出品 | CSDN(ID:csdnnews)

以下为译文:

自从被微软收购之后,GitHub就像腾飞的火箭一样,接二连三地发布新功能,比如免费的私有代码仓库、GitHub赞助商项目等,都获得了开发者社区的青睐。

但是作为开源的中转中心,它离用户的期望还有一定的距离。

这篇文章讨论的就是这类的一个期待:一个GitHub尚未实现的功能,而我以产品优先的方式,作为业余项目构建了这个功能。

缺失的功能

GitHub最初是一个以Git版本控制系统为基础的代码托管平台,后来发展成了一个完整的软件开发平台。它非常适合软件开发的生命周期,人们通过各种方式使用它(改天我会写一篇博文介绍GitHub带来的网络效应及社会影响)。
Isaac的代码仓库(https://github.com/isaacs/github)就是这个平台的冰山一角,人们在该代码仓库中请求GitHub提供新功能,他们会为自己希望的功能创建issue,并为别人的评论点赞,期待着GitHub能够听到他们的请求。实际上GitHub的确听到了。我很喜欢利用表情符号对评论做出反应的功能,而这个功能就是起源于该代码仓库,后来被GitHub注意到且实现了。

找到需要完成的任务

“了解客户的真正需求。”

想知道产品有什么问题?只要去用户论坛或客户反馈频道看看,就能得到答案。

一年多以前,我在寻找一个业余项目,而这个代码仓库正是寻找GitHub缺失功能的地方。

现在我来公布大家最关注的缺失功能:关注组织。没错,你没办法像关注一个普通用户那样通过一个组织的账号来关注他们的行动。这是Issac的代码仓库上获赞最多的一个功能。


GitHub会将用户产生的行为(如创建、加星、创建代码仓库分支等)显示在你的时间线中,以方便用户发现新动态(详情请阅读我的博文《GitHub网络上的信息动态》(https://hackpravj.com/blog/information-dynamics-on-github/))。但没办法订阅某个组织并在组织产生行为(如组织创建了新的代码仓库)时获得通知。

是不是已经厌倦了?

如果你不想阅读有关开发过程的东西,那么可以跳过下面的内容,直接去访问followgithub.org,这是一个浏览器扩展,允许你关注一个GitHub组织。它也是开源的,所以你可以随便修改。

真正的MVP

选择了想法之后,就应该制定一个计划,通过尽早创建低成本原型的方式来管理风险,避免做出没人想要的东西。
根据该功能的动机,我的目标是在实现上花费最少的实践来开发最初的版本,来验证我的假设。首先,我只能在周日偶尔做这个项目,所以没有太多资源;其次,我不希望跟史蒂夫·布兰克的精益创业思想背道而驰。
“用最廉价的方法测试目标,时刻关注代价。”
我发现,解决方案的核心是主动地查询新的事件,但最难的地方是通知用户正在发生的事件。
我尝试了一些常用和不常用的信息发布渠道,如电子邮件通知(事件发送给经过验证的电子邮件地址)、推特机器人(随时更新关于某个组织的推特话题,或者针对打了标签的问题做出回应)。但这些解决方案并没有打动我,因为它们会在接触潜在用户之前,就将解决方案束缚在特定的渠道上。
我突然意识到,真正的发布渠道就在我眼前,那就是GitHub。它非常适合将产品发布给正确的人群。它的社会化拉取功能可以让社区更紧密,让用户互相产生价值。最常见的例子就是各种awesome的列表(https://github.com/topics/awesome-list)。
于是有了下面的MVP(最小可行产品),一个当作用户论坛使用的GitHub代码仓库。

有了这个想法,我就不需要再研究邮件通知服务,也不需要选择那些没有潜在用户的渠道(如推特)了。
我的朋友Amit把这个MVP发表在了HackerNews上(https://news.ycombinator.com/item?id=19261376),获得了一些早期的认同。

改进

几天之后,我开始与一些用户交流,为下一次迭代做准备。交流内容包括目前的优缺点,用户关注组织之后的感想,以及issue话题是否会造成重复的评论、错过一些事件等。
我根据Rob Fitzpatrick提出的The Mom Test方法准备了一系列的问题。

  • 开放式问题:这个产品带来了什么改变?

  • 日常习惯:平常怎样使用GitHub?

  • 过去的方式:以前怎样找到喜欢的GitHub代码仓库?

我意识到目前的产品在用户体验方面做得很差。(用于新建代码仓库的)通知发送系统并没有提供符合用户浏览习惯的原生GitHub体验。用户需要多次操作才能关注一个组织。

  • 首先查找希望关注的组织对应的issue是否存在

  • 建立一个issue,评论中写上该组织的链接

有一天一个朋友在讨论中指出了refined-github,这个著名的浏览器扩展能够简化GitHub的用户界面,添加有用的功能。这时我发现了一个能满足所有需求的真正的发布渠道。
使用浏览器扩展,你可以轻而易举地关注一个GitHub组织。

扩展和怀疑论

在与潜在用户和已有用户交流的过程中,我发现并不是所有人都喜欢浏览器扩展。由于潜在的安全风险,一些用户非常反感浏览器扩展。
于是我决定将这个扩展开源,以开源的方式构建。

通向成功之路

就像Mike Perham说的那样(https://www.indiehackers.com/interview/sidekiq-6e71309457),由于热情而创造并免费赠与,最后只能被大量的请求而压垮,导致项目失败。
我意识到,我应该给我在开发中投入的每一分钟都明码标价,至少要能付得起服务器的费用。我认为,出现了以下两种情形,项目才能称为可持续的成功:

  • GitHub构建了该功能

  • 我不再需要自己掏钱来维持该产品

标明正确的价格

在决定了成功之路后,就该明码标价了。我阅读了不同的定价策略(即SaaS的定价策略原理),发现每种策略都是双刃剑。

  • 根据成本定价:如果项目依赖外界因素,那就很难计算出决策。而且,客户也不关心你的成本。

  • 根据价值定价:很难将产品产生的价值量化。但如果产品有价值,那么该策略能够衡量用户的支付意愿。

深思熟虑后,我决定采用基于价值的免费增值定价结构,我觉得这是在目前情况下的正确策略。但我必须想出一种度量来定义用户产生的价值。
在该项目中,被关注的组织总数是非常好的度量。我设置的“采纳者”版本的限制为10个组织,原因如下:

  • 用户不应该为了免费而放弃太多东西

  • 10个组织很接近部分新用户的关注数量(小样本统计结果)

折扣的促进作用

为了获取前10个或前100个客户,每个人都有自己的策略,而我的策略如下。
由于GitHub是强社会化游戏(也许并不适用于每个GitHub用户),人们想要通过创建代码仓库或为已有代码仓库做贡献的方式来创造价值,来换取在整个网络中的特别地位。在社交网络中鼓励更多的用户参与创造价值的努力,能带来更多的用户。
因此,我决定为那些为浏览器扩展做出贡献的人提供折扣。任何做出了有效贡献的人,我都会提供免费的“支持者"授权。

欢迎所有人向这个项目做贡献,只要对最终用户有好处即可。
欢迎你提出对该浏览器扩展的看法。

原文:https://hackernoon.com/building-a-missing-github-feature-using-github-3f1f431lk
作者:Pravendra Singh,followgithub.org的创始人,产品经理@Vernacular.ai。
本文为 CSDN 翻译,转载请注明来源出处。

该如何弥补 GitHub 功能缺陷?相关推荐

  1. 开源Kettle 包装Kettle 深度功能缺陷

    Kettle 是业界开源ETL工具中,知名度最高且被引进各行业项目应用最早期.上线后 当下如何了?"天下免费的午餐"真的香吗? 以下是各用户早期上线后,深度使过其功能缺陷问题导致不 ...

  2. 关于南方CASS9.1、9.2复制锁的部分功能缺陷的几点说明

    广东南方地形地籍成图系统CASS,简称CASS,是广东南方数码科技股份有限公司基于CAD平台开发的一套集地形.地籍.空间数据建库.工程应用.土石方算量等功能为一体的绘测软件,目前最新版本为CASS10 ...

  3. 易观:正视GPT-4功能缺陷与能力局限可更好探索大模型应用

    易观:GPT-4于2023年3月14日正式发布.与前代相比,GPT-4的功能有着非常大的提升,易观认为其功能符合预期,也依旧存在前代即存在的功能缺陷类型与能力局限性.GPT-4的原有功能提升与新特性使 ...

  4. 从架构特点到功能缺陷,重新认识分析型分布式数据库

    写在前面 本文是分布式数据库的总纲文章的第一部分,主要探讨分析性分布式数据库的发展和技术差异:第二部分则是交易性数据库的一些关键特性分析.Ivan开始计划的分布式数据库是不含分析场景的,所以严格来说本 ...

  5. 设计模式是用来弥补面向对象编程缺陷的方法总结

    面向对象和设计模式都是大家耳熟能详的概念.面向对象是以对象为基本元素,对数据与逻辑行为进行封装.实现面向对象过程的方法是使用抽象,同时在使用抽象进行分析设计的时候就产生了类型,并隔离了抽象与实现.这个 ...

  6. 弥补Web开发缺陷 实战HTML 5中存储API

    COOKIES的限制和缺陷 首先,让我们来回顾下cookies.Cookies的出现可谓大大推动了Web的发展,但它既有优点也有一定的缺陷.Cookies的优点在于,它可以允许我们在登陆网站时,记住我 ...

  7. 弥补Web开发缺陷实战 HTML5 中存储API

    COOKIES的限制和缺陷 首先,让我们来回顾下 cookies.Cookies 的出现可谓大大推动了Web的发展,但它既有优点也有一定的缺陷.Cookies 的优点在于,它可以允许我们在登陆网站时, ...

  8. 弥补胸肌缺陷的训练策略

    转自: http://blog.sina.com.cn/s/blog_60ad794b01017wa7.html 一般人胸肌训练很长一段时间后,都会发现有如下难点:上胸发达度不够,与中下胸存在明显落差 ...

  9. kafka开源版本quota限流功能缺陷

    1.当前quota维度如下 /config/users/<user>/clients/<client id> /config/users/<user>/client ...

最新文章

  1. 关于 fallocate 文件系统预分配 的一些细粒度测试
  2. 软件工程-第一次作业
  3. Linux/UNIX网络编程之API
  4. linux设置脚本运行时间_手机自动点击器,录制手势自动点击,可设置运行时间...
  5. 为什么将0.1f改为0会使性能降低10倍?
  6. Python程序开发——第五章 函数
  7. SQLAlchemy 一些基本操作
  8. [JS-BOM]BOM概念与组成
  9. ASCII码表(全)
  10. 【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的
  11. php实现服务器文件同步,PHPstorm配置同步服务器文件
  12. 信息学奥赛一本通(1215:迷宫)
  13. 多区域OSPF的路由重发布
  14. 2014蓝桥杯C++B:啤酒和饮料;切面条(思维分析)
  15. 【CentOS】Centos下pip的安装
  16. Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
  17. 数据结构——线性表的链式存储
  18. 高数 | 函数在间断点处的极值问题
  19. 关闭win7的程序兼容性助手
  20. 树莓派触摸屏翻转显示以及触摸翻转

热门文章

  1. 为什么要使用面向对象编程
  2. 在线编辑word文档 可保存到服务器(转)
  3. 大牛写的Openstack虚拟机创建细节
  4. [FFmpeg] nvidia 加速 ffmpeg
  5. [论文阅读] Learning Loss for Active Learning
  6. [链表|多解法] leetcode 19 删除链表的倒数第N个节点
  7. 【杂文】spring-boot报错 ~ zone value ‘Öйú±ê׼ʱ¼ä‘ is unrecognized or represents more than on time zone.
  8. oracle从删库到跑路,Mysql入门二十小题(DBA老司机带你删库到跑路)2018.11.26
  9. 在aarch64-himix100-linux-gcc下cmake报错(The C compiler identification is unknown)
  10. SQL实战之查找所有员工的last_name和first_name以及对应部门编号dept_no