我正在做我的博士学位。我的研究小组正在研究一个模糊的技术;我记得世界各地的少数人都进入了这项技术,它非常艰难,难以使用;它需要特殊的硬件,可用的工具和开发库非常粗糙。有一天,我们决定使用该技术开发一些软件;该软件非常简单,但需要在Linux shell上执行一定数量的任务,以修补openssl,并以特定的顺序在不同的shell上同时执行一些事情。我们努力工作,使README与结构化的说明制作,使其足够复制和粘贴命令,以便最终进行代码。
与写入自述文件相比,编写代码相对容易。我们使用了试验和错误方法来获得正确的指示以及当我们有一个版本,我们决定在干净的环境中测试它。这是一个壮观的失败。没有人应该这样做。我们了解到,每次出现错误时,试验和错误方法都会留下脏环境,我们选择另一条路径。我们花了接下来的几天用略有不同的方法重写了自述文件:每次遇到错误时,我们都清理了整个系统并从头开始开始。这确保了几乎完美的自述文件,但采取了相当大量的时间和精力(编译我们修补的openssl版本花了很长时间,而且它是第一个步骤之一,所以我们在那些日子里重新编译了这一天的次数)
作为开发人员而作为一个用户,我讨厌当我发现提供巨大价值的工具时,但它们很难整合或难以使用。
构建一个难以使用的工具,不适合您的用户。这意味着您没有花费一些额外的时间来优化用户体验,以平滑粗糙点,以更快更轻松地操作工具。你要求你的用户填补你留下的空白,就像你的时间比他们的时间更有价值。
我理解,在我们社会的执行中,执行的速度是一个关键的成功点,但我仍然认为你的主要资产应该是你的用户,用户的满足感和幸福是最有价值的东西。我也知道思维开发人员 - 首先需要很多时间。必须尝试一遍又一遍地写的,继续测试,以确保指令仍然有效,验证所有小角色外壳是否仍然适用。当然,可以为此编写自动化测试,但通常不容易测试这种类型的集成。但花费的时间很大程度上;开发人员会觉得你把很多爱放进了你的产品;删除的每个粗略点是一个将使用您的代码的新客户端。
用于开发人员使用的工具和框架通常必须与某种类型的代码集成。当集成并不容易时,很难整合,开发人员会受到沮丧,失去势头,并没有为客户提供伟大的体验。这就是为什么在SaaSform我们始终设计每个新功能思考它是如何使用和整合的,我们花了一些时间尝试平滑最粗糙的积分并使整体体验更好。
从一开始就完成了这一点,制作开发者 - 首先产品;我们确保测试我们的演示只是一个单一的标准命令(Docker-Compose Up),它集成了它的几分钟问题(少于30行代码,准备从我们的示例复制),那篇文档一起增长特点。我们还将相同的方法应用于Saasform本身的发展;作为一个开源产品,我们始终确保向项目提供有关一些问题报告或一些公关的项目很简单;我们还尽可能在我们的discord服务器中尽可能使用,因此潜在的用户可以与我们聊天,并且如果被阻止,可以找到支持。
到目前为止,我们为我们的工作感到骄傲,以及我们的第一个用户报告的易于整合使我们甚至是令人瞩目,即使这意味着在每个新功能的发布中越来越慢。