代码质量与安全 | “吃狗粮”能够影响到代码质量?来了解一下!
“dogfooding”是什么?乍一看,这就是“吃狗粮”的意思,但其实这来源于一句俚语:“Eat your own dog food”,直译过来就是“吃自己的狗粮”,常用于描述公司使用自己产品的这一种情况。
“吃自己的狗粮”实践在科技公司内部被广泛使用。其中,Facebook公开的海报里提到了这种实践的好处——让公司不同背景的人参与到产品开发,并且提供不同的视角,而不是仅限于开发人员;给整个组织一次合作的机会,增进团队感情;培养主人翁意识。
阅读本文,您将了解到什么是“吃自己的狗粮”,为什么要“吃自己的狗粮”,以及如何利用这一实践方法提升自己的产品。
作为SonarQube授权合作伙伴,创实信息持续关注代码质量与安全领域的最新动态与实践,为中国用户带来全球范围内的优秀解决方案,帮助企业实现开发安全运营一体化。
当遇到问题时,您需要有一个可以信任的解决方案来帮助您快速解决。但在这个充满了无限选择的世界里(多亏了互联网),人们很难相信那些未经测试和陌生的东西。在寻找正确的解决方案时,您会求助于那些使用过您考虑选项的人,来确保做出正确的选择。然后,您可以通过他们的建议,自信地解决问题。
选择正确的业务解决方案也是如此。您可能更倾向于选择已被推荐公司使用、测试和证明过的产品。在科技领域,这个概念被称为“吃自己的狗粮(dogfooding)”,现在也被翻译为“内部测试”。
“dogfooding”或“吃自己的狗粮”一词最初出现于1970年代的Alpo Dog Food广告中,一位美国著名演员在向观众推荐Alpo狗粮时将Alpo喂了给他自己的狗。在科技界,传说在1988年,微软传奇人物保罗·马里茨利用这一概念挑战他的同事,让他们自己使用公司的产品,以确保他们可以为客户提供价值。
不管它的起源如何,“吃自己的狗粮”能够一直存在,一定是有原因的。通过自己的实际使用来确认产品的真正价值,这是一个不争的事实,Sonar公司也坚信这一点。
如何开始吃自己的狗粮
“吃自己的狗粮”是一种明确地展示出您对自己产品信心的方式,通过每天使用产品来确保它们通过现实场景的测试。但在科技产品方面,它并不像Alpo狗粮那么简单。这台机器中的每个齿轮必须协调工作,以使产品按预期运行。
通过“吃自己的狗粮”,您不仅可以使用您的产品,还可以依赖它们并尽可能地将它们集成到您的开发和生产工作流程中。这将有助于您在最终用户之前预测挑战、把握机遇。但是,如果您的组织还没有这样做,该从哪里开始呢?以下是几条入门原则:
1、确保您有正确的访问权限
如果您都没有权限接触到您的产品,也就无法开始“吃自己的狗粮”。无论测试环境还是现实环境,您都要确保可以像最终用户一样,每天使用该产品。就像您的最终用户将帮助您“站在他们的角度出发”一样,反过来,这也可以帮助您更好地了解他们面临的挑战,以及他们使用您的产品所取得的胜利。
2、建立“为什么”机制
在为产品解决问题或提出创新建议时,首先必须清楚地了解它的重要性、为什么您决定开展这项工作,以及预期的结果。考虑如何将其融入您的产品蓝图中也很重要。
3、循序渐进
您可以选择将事情分解为有意义的小更改,给最终用户带来循序渐进的价值,而不是追着一个大的版本跑。因为当您跳过这些“小步骤”时,您可能会忽略关键的依赖关系,或因为忽略了细节而造成返工。循序渐进有助于缩短迭代、实现现实目标,并最大限度地投资于真正有用的解决方案。
4、创建一个时间框架
通过主动为团队定义一个明确的交付时间框架,您可以将以下的影响降到最低:为了填补时间而承担太多压力,或给sprint阶段预留的时间过少。这样一来,你所承担的功能增量是现实中可以实现的。这有助于团队保持专注,并清楚地了解需要做什么才能满足时间框架。
5、促进反馈循环
反馈是发现你是否在为用户创造价值的关键。最可靠的反馈往往来自最终用户,以及您自己尝试产品的经验。每个团队成员都有责任要求并提供既专业又有效的反馈。只有当团队在给出反馈后调整了它,反馈才是有效的。
当您将代码发布到生产环境并开始使用它时,才是真正的关键时刻。这是测试它是否在现实世界中以预想方式工作的最重要的机会,依旧还是“吃你自己的狗粮”。
Sonar将它付诸于实践
在Sonar,我们每天都会吃“吃自己的狗粮”。我们不仅使用我们的清洁代码产品,还在整个组织中广泛使用这一概念。从网页开发周期到网站,从营销到帮助台,从内部流程到公司文化,我们都在使用它。我们利用像开放论坛这样的工具来引入计划,并自由地持续提供有针对性和建设性的反馈。
“吃自己的狗粮”影响了我们每个团队的运作方式以及产品的发展轨迹。在开发周期中,我们利用相同的清洁代码产品和实践,来交付数以千计的客户每天使用的清洁代码解决方案。这也使我们的核心方法论能够不断加强。
一个能够直接在产品用户界面找到,用来说明“吃自己的狗粮”如何影响我们的真实例子是:我们使用红色和绿色来传达信息,当色盲Sonar员工和UX设计师开始使用产品时,他们很快就发现了需要改进这个可访问性问题,才能满足他们的需求。上述的例子曾经用于内部开发和传播解决方案,现在,这种可访问性已经被集成到了Sonar的设计中,并成为了我们的首要考量。
“吃自己的狗粮”深刻影响了我们提供产品质量的方式。虽然我们更喜欢美味的咖啡而不是Alpo狗粮,但我们将继续“吃自己的狗粮”,提供市场上最好的清洁代码产品。
作者介绍:
LIZ RYAN
Sonar产品营销经理
文章来源:https://blog.sonarsource.com/eat-your-own-dog-food-or-risk-falling-behind/
代码质量与安全 | “吃狗粮”能够影响到代码质量?来了解一下!相关推荐
- 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?
文章目录 如何评价代码质量的高低? 最常用的评价标准有哪几个? 1. 可维护性(maintainability) 2. 可读性(readability) 3. 可扩展性(extensibility) ...
- 情人节还没过完,谁说你就只能吃狗粮呢!
2.14是虐死狗不偿命的情人节 在这个尴尬的节日里,单身们只会在心里暗暗诅咒全世界的出双入对,都是失散多年的亲兄妹. 可是,2017年还有这么多情人节没过,你真的打算一直单下去吗? 趁这个如火如荼的情 ...
- 哺乳期间宝妈有些东西不能吃,吃了会影响宝宝
喂奶的时候,相信很多妈妈都听过"你在喂奶,这个不能吃""吃这个对宝宝不好"--细细数来,感觉可以吃的食物母乳喂养时吃的就剩不多了.想想看,从怀孕开始到断奶,有些 ...
- 编程笔试(解析及代码实现):猴子吃桃。猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个…的C++、Java、Python、C#等语言代码实现
编程笔试(解析及代码实现):猴子吃桃.猴子第一天吃了若干个桃子,当即吃了一半,还不解馋,又多吃了一个. 第二天早上又将剩下的桃子吃了一半,还是不过瘾,又多吃了一个.以后每天都吃前一天剩下的一半再加一个 ...
- 全面质量管理理论中的五个影响产品质量的主要因素
早上看书看到一句话说的很有道理,理论来与实践,高于实践 然后讲到一个案例:说订单激增的情况下,怎么能在现有的情况下完成? 有的人说是找外包.招人等等,这些别人肯定也能想到,这时候应该说我什么时候可以去 ...
- 影响游戏配音质量的关键因素
随着游戏质量的提高,玩家对于游戏声音的要求也越来越高,尤其是游戏配音,给予玩家身临其境的真实体验.游戏厂商对于配音都采用外包的形式,那么有哪些因素会影响游戏配音的质量呢?一起来看看. 1.设备:专业级 ...
- P78-P79:城堡游戏代码修改:StringBuffer、封装来降低耦合、代码质量、StringBuffer
** P78-P79(城堡游戏代码修改:StringBuffer.封装来降低耦合.代码质量): ** P78-P79(城堡游戏代码修改:StringBuffer.封装来降低耦合.代码质量): 一.评判 ...
- 影响数字音频质量的因素
影响数字音频质量的因素 1.采样频率 2.量化位数 3.声道数 4.数字音频的数据量 1.采样频率 2.量化位数 3.声道数 4.数字音频的数据量
- 代码逻辑分析_双十一模块 79.34% 的代码是怎样智能生成的
作为今年阿里经济体前端委员会的四大技术方向之一,前端智能化方向一被提及,就不免有人好奇:前端结合 AI 能做些什么,怎么做,未来会不会对前端产生很大的冲击等等.本篇文章将围绕这些问题,以「设计稿自动生 ...
最新文章
- websocket 代理tcp_netty实现websocket请求实战
- linux查看证书位数,查看Linux系统是32位还是64位(getconf WORD_BIT误区)
- 实现ModelDriver接口的功能(转)
- python识别节假日_Python3自动签到 定时任务 判断节假日的实例
- python矩阵输入_Python基础之矩阵输入
- redux reducer_如何通过约定创建Redux reducer
- App Support
- java 集合工具类_Java集合中Collections工具类总结
- 【tricks】深度神经网络模型训练中的 tricks(原理与代码汇总)
- BJFUOJ 1429
- 小心c语言中的无符号类型-尤其是涉及到大小比较
- vue开发常用css,js(持续更新)
- AI识宠,拍照就能知道宠物品种,提供鼻纹识别、狗脸识别、宠物身份建档等
- Ubuntu 安装搜狗中文输入法
- 保姆级Git入门教程,万字详解
- 二阶混合差分的几种差分格式
- java pdf模板 表单 多页_java使用itext操作填充pdf模板,(根据一个模板生成多页数据)...
- HI3518E按键驱动和应用代码
- 三维凝视估计,没有明确的个人校准2018
- 【人机交互技术】人脸表情识别技术综述(感觉写的比较简单)
热门文章
- 设置navicat数据库主键自增 1062报错以及result in duplicate entry '' for key 'primary'
- CPU的架构:x86、arm、mips、龙芯等
- hdu 3466(dp)
- Thinkphp5汉字转拼音
- 大学总结之影响我最深的十本书
- 看了一部电影,爱上一首歌
- 点云 3D 目标检测 - RangeDet(ICCV 2021)
- [ProblemSolving]关于utorrent未响应的解决方法
- BZOJ4012 [HNOI2015]开店 (动态点分治)
- Dmc雷赛板卡仿写(二):库文件导入报错PVOID未声明的标识符