这篇文章是为了:需要与开发团队、程序员、程序员和工程师打交道的非技术创始人、管理人员或销售人员。学习技术沟通技巧,“说开发人员的语言”,以提高项目成果和可交付成果
Written by:亚历克斯·森森,阿什利·伯顿,泰勒·布朗热
在没有太多技术背景的情况下经营一家软件初创公司是极具挑战性的。在没有技术合作伙伴的情况下这样做会增加一层额外的难度。当你考虑到产品所涉及的技术的不断发展时,跟上技术的发展似乎是不可能的。开发人员开始看起来像是在说一种完全不同的语言,你会觉得自己完全被排除在外。
无论你是否有一个技术合伙人,这些问题比你想象的要普遍得多。这一切都归结为一个问题:如果您不知道如何将这些想法转化为编写软件代码,您应该如何将客户问题转化为软件解决方案?
在RIC中心,我们与经历过这一切的客户一起工作。在本文中,这种情况将通过十个在软件开发企业中担任不同角色的个人的观点来探讨;包括非技术创始人、首席技术官和开发人员。这将有助于你作为一个非技术企业家如何与开发者交流自己的想法。
本文探讨的主要概念包括:
我们将通过与RIC中心网络合作的公司和创始人的案例研究来说明这些想法
- 来自vGIS公司的Alec Pestov。有技术背景的好处
- 来自SurfEasy的Chris Houston-了解编码的基本原理
- 来自ResQ的Mark Oleniuk-缺乏技术背景的挑战
- 来自RIC中心董事会的Andrew Opala-优先考虑信任和诚实
- 来自ClinicSense的Daniel Ruscigno-了解影响
- Weever Apps的Steve McBride-成为客户的声音
- Jon Senson, Unity3D游戏开发者和程序员-客户如何更好地指导外包开发人员
- 来自Lucky VR的Jeff Lande——共同制定路线图
- 红巷资本的Vishal Kothari-确认客户请求
获得技术背景有多重要?
如果您正在阅读这篇文章,那么您很可能没有技术背景。显然,在领导企业时,知道自己在说什么总是一种资产,所以这绝对是一种资产理想的知道如何编程。但是学习如何编程需要很多时间。即使学习足够的知识来为开发人员提供技术规格也可能是乏味的。正因为如此,你需要判断花时间获取技术背景是否值得。无论如何,提高你的技术沟通能力是很重要的。
显然,在做这个决定时,你需要考虑你的独特业务的品质,因为更复杂的技术比简单的应用程序更能从你的知识中获益软件开发方法,体系结构设计模式,编程语言和ide在做这个决定时。下面的案例研究将帮助您了解工具箱中拥有技术沟通技能的好处
有关在哪里学习编码或只是学习编程的信息,请参阅本文关于自己开发软件的文章.
有技术背景的好处-亚历克·佩斯托夫来自vGIS Inc .)
Alec Pestov是vGIS Inc.的创始人兼首席执行官,该软件程序将传统的Esri GIS(地理信息系统)数据转换为增强现实可视化和全息图。从他的母公司Meemim开始,他成为RIC中心的客户已经四年了。Pestov在vGIS的团队由他自己和13名开发人员组成,这使得他成为他们在业务方面唯一的联系人。因此,他每天要花两个小时左右的时间与开发团队讨论产品的下一步工作。
Pestov本身是技术方面的专家,12年前曾从事技术咨询工作。他不能自己为产品编程,但有足够的知识来判断代码是否正确。他的经验也使他能够更好地估计代码需要多长时间。对软件开发有一定的了解在以下情况下尤其有用将他的设计目标传达给UI团队.
总的来说,Pestov觉得自己有足够的知识来“认识到应该如何设计东西,以及谁能够设计它们。”
有了这种级别的技术背景,与开发团队的技术沟通是高效和有效的。误解更少,期望更有效。
了解编程的基本原理- Chris Houston来自SurfEasy
克里斯·休斯顿(Chris Houston)是SurfEasy的首席执行官和创始人。SurfEasy是一家专注于大公司安全的VPN服务公司,后来被两次收购。Houston现在在Symantec担任移动产品开发副总裁,Symantec是SurfEasy最新的收购者。20多年来,他一直在创建科技公司,这让他有了大量可以借鉴的经验。
休斯顿承认,根据他的经验,非技术的创始人通常不知道如何编程。然而,他敦促创始人督促自己更多地了解事物是如何工作的,以及软件开发需要什么。了解编码语言和工具,开发方法、框架和体系结构让你更容易认识到你的项目想法的局限性。没有这样的背景,很难培养足够的技术沟通能力。
总的来说,当事情确实可能的时候,你只是不想被强迫去相信它是不可能的。用他的话来说,“在这个过程中,不要被那些试图利用你的公司(欺骗)。”掌握软件开发过程的一些基本知识是管理科技企业的关键。
幸运的是,根据Houston的说法,学习编码正变得越来越容易。事实上,他7岁的儿子正在学习AI编程!
缺乏技术沟通能力的挑战——马克·奥伦纽克ResQ
Mark Oleniuk是Get ResQ Ltd.的联合创始人和管理合伙人,该应用程序为餐馆组织按需维护和预防性修复。他是一名注册专业工程师(P.Eng),但当他进入软件行业时,并没有开发背景。和其他两位联合创始人一样,奥莱纽克也没有感到压力找一个技术联合创始人.尽管在他的团队中缺乏技术领导,ResQ通过将开发外包给软件开发公司成功了;最终,团队引入了一位开发主管。
尽管他们取得了成功,但奥伦纽克确实回忆起了由于缺乏技术沟通能力而产生的一些挑战。他说,这通常会导致ResQ团队和第三方公司开发他们的产品.一般来说,软件的不同部分如何组合在一起的术语很难理解。当他们需要的时候,还有语言和时区的障碍与公司海外部门沟通.
Oleniuk的团队严重依赖Slack、Bitbucket和Jira等沟通工具来保持内部开发人员的稳定与第三方开发者页面相同.他说在开发过程中“一路上有很多东西要学”,因为他能够从经验中获得对软件开发有用的见解。尽管奥伦纽克能够在没有知识的情况下继续经营自己的生意,但他也同意“有一个知识渊博的人站在你这边,你永远不会出错。”
优先考虑信任和诚实- Andrew Opala来自RIC中心董事会和密西索加投资者网络
Andrew Opala在他的职业生涯中曾在创新软件公司担任过广泛的领导和开发职务。在领导和创立创业公司的过程中,他积累了丰富的经验和知识,现在他通过董事会的职位将自己的智慧传授给RIC Centre的客户。
虽然学习软件开发显然是有用的,但Opala确实有用不将学习编程视为在非技术岗位上领导企业的重要方面之一。
相反,他建议科技企业家在与有技术倾向的同行打交道时,优先考虑信任和诚实。这可能包括技术联合创始人、项目经理或开发团队本身。不管在如此高风险的项目中信任别人有多么困难,你只需要找到信任他们的方法。信任那些负责开发的人可以让你专注于业务和销售。这通常归结为选择一个你信任的技术联合创始人;奥帕拉表示,与拥有技术型联合创始人的人相比,单个非技术型创始人获得外部资金的可能性要小得多。
如前所述,诚实也是关键。这包括在非技术创始人和负责开发的人之间保持透明的沟通,以便每个人都能参与到这个圈子中来。在整个开发过程中为技术交流和报告构建一个通用的结构使这一切变得更加容易。
技术背景有多重要?
- 技术背景可以帮助您判断一个项目需要多长时间才能完成,它应该如何设计,以及代码是否按照您希望的方式工作
- 了解软件开发工作的基本原理可以防止开发人员的不准确声明和估计
- 由于术语复杂,不具备技术沟通技能可能会导致与外包开发人员的沟通中断
- 对开发人员的信任和诚实比知道如何编程更重要,只要你选择值得信任的联合创始人或开发人员
为开发人员提供业务见解
作为软件初创公司的非技术人员,您的角色可能涉及销售、市场营销、运营等多个方面。正因为如此,您与开发人员的关系很大程度上归结为将您从客户研究中获得的想法带给他们。这不仅仅是关于精通技术沟通,还涉及到理解如何以技术人员能够接受的方式表达业务需求。
运行一家精益软件初创公司的一个重要方面是不断迭代新的想法,其中大多数的灵感来自于用户反馈.您需要能够有效地向开发人员传达您的愿景。这里有两个企业家找到了处理这种情况的方法的案例。
了解影响- Daniel Ruscigno从ClinicSense
丹尼尔·拉斯奇诺(Daniel Ruscigno)是ClinicSense的联合创始人,这是一个针对按摩治疗师的实践管理软件系统。他是否真的会称自己为“非技术”联合创始人还不清楚,因为他在大学里学习计算机科学,后来转学市场营销和经济学。凭借在软件公司担任产品经理和项目经理的经验,Ruscigno在这些情况下必须使用技术沟通技巧。
在为开发人员定义任务和特性时,Ruscigno发现让他们了解他们所做的工作如何影响项目的业务方面是很重要的。从本质上说,他希望他们看到“这是你为什么要做这个工作,这是预期的业务结果。”Ruscigno发现,当开发人员能够看到他们的工作如何直接影响客户时,他们会对项目更加依恋。例如,一项拟议的功能可以让客户更快地浏览应用程序,从而获得更方便的产品,从而吸引更多的客户。
Ruscigno还利用通信工具保持在开发团队的顶端。具体来说,他使用Jira来跟踪开发人员所处的项目阶段。
成为客户的声音- Steve McBride来自鲈鱼的应用
本文作者史蒂夫•麦克布莱德是Weever Apps的首席执行官兼联合创始人,该公司提供基于云计算的软件产品,为企业客户提高生产率和利润。麦克布莱德在销售方面有丰富的经验,但在软件开发方面缺乏经验,他在Weever Apps担任客户的代言人,而技术含量更高的联合创始人则负责开发。
然而,McBride在向软件设计团队传达客户需求方面扮演着重要的角色。然后,设计师将这些需求传达给开发团队。他发现让设计师和开发人员了解客户需求的最好方法是让他们参加客户会议。这样,他们就能获得第一手的信息,了解用户正在经历什么,以及他们希望改变什么。用麦克布莱德的话说,“顾客说他们需要什么比老板说的重要得多。”
McBride还意识到,了解每个开发人员对有效沟通起着重要作用。有些人过于乐观,有些人则悲观;您需要找出哪些描述了每个开发人员。了解团队中每个人的心态可以让你更好地制定计划。例如,您可以根据提供时间的开发人员来评估时间估计是比应该的短还是长。
总结:为开发人员提供业务洞察力
- 当开发人员理解他们所从事的任务的业务含义时,他们会更加关注项目
- 当开发人员直接从客户那里听到客户的需求时,沟通客户需求会更加有效
- 了解你的开发人员,这样你就能知道谁的估计和主张更悲观或更乐观
提供更好的指示并保持在(while)循环中的技术沟通策略
如果你不理解上面标题中的编码参考(如果你能称之为双关的话),你可能想去了解一下温习编程基础知识.
除了传递客户的需求,许多非技术创始人经常发现他们需要向开发人员提出新的功能和项目,而没有技术联合创始人的支持。重要的是,规范应该由具有足够技术知识的人提出,以制定开发人员可以实际使用的指示。即使对那些没有责任的人来说,保持与开发的紧密联系也能让你时刻关注公司各个领域的动态。监控项目进展对市场营销、估计发布日期、获得资金等都很重要。
下面的观点可以让你了解如何有效地应对这些棘手的问题。
客户如何更好地指导外包开发者——Jon Senson, Unity3D游戏开发者和程序员
Jon Senson是一名经验丰富的开发者,曾在多家电子游戏开发公司工作过。他在这些公司的工作包括对内和为客户编写和更新游戏。
为客户开发需要大量的技术交流,而技术交流往往不够充分。当客户的规范没有经过深思熟虑和设计时,森森常常难以利用它们。当您为没有对设计有良好理解的开发人员制定指示时,这些规范通常是不可用的。计划的各个部分通常不能以一种可能在特定软件平台上工作的方式组合在一起。
Senson建议,在将规范交给开发人员之前,应该让有UI经验的人进行一些输入。他说,至少,客户应该对如何做到这一点有一个基本的了解面向对象和软件开发的一些基本框架工作。这样,您至少可以从开发人员的角度编写有意义的指令。如果客户能够将他们的想法用图表表示出来,这也是非常有帮助的UML,或者至少做一个线框他们想要的东西。总的来说,在开发之前了解软件是如何规划的将会产生对开发人员更友好的指示。
正如你所看到的,将你的想法转换成更技术性的格式是让开发者创造出你想要的内容的关键。只是说“给我做一些做这个的东西”并不是将你的设想变成现实的方法。Senson提倡雇佣一个项目经理或任何技术人员,在业务人员和开发人员之间充当翻译角色。他们可以作为双方之间的联络人,跟踪变化,以便每个人都了解项目进展。作为一名创业公司的创始人,你可能不得不自己戴上这顶额外的帽子。
一起制定路线图,杰夫·兰德幸运的虚拟现实
杰夫·兰德(Jeff Lande)是Lucky VR的创始人,这是一家开发在线虚拟现实赌场游戏的公司。他围绕自己的三个爱好建立了这家公司:扑克、科技和创业。在没有软件开发技术背景的情况下,兰德雇佣了一个合同开发人员来构建原型——这个开发人员后来成为了他的技术联合创始人。随着业务的发展,Lande的团队已经发展到17名开发者和美工。对于这样规模的团队,兰德需要找到有效的方法,将客户的需求转化为开发人员的计划。
Lande并没有花时间学习编码,而是通过花时间与开发人员一起工作,使自己变得足够有技术含量,从而与开发人员保持在循环中(我希望您仍然在考虑while循环)。在开发过程中与他们在一起能够让他获得一些关键知识;至少在某种程度上,他能理解发生了什么。
另一位企业家,HiredHippo的首席执行官兼联合创始人Adam Gellert,也有同样的感受。他声称,非技术创始人需要在开发过程中问很多问题,以了解工程师是如何思考的,并保持对进展的了解。学习技术沟通很像学习一门新语言:当你沉浸其中的时候,你会学得最快。
Lande会根据客户反馈为新功能排序,并与开发人员一起制定开发路线图。路线图是一个项目的战略计划,概述了项目的时间线和过程。与开发者的紧密合作让Lande和Lucky VR团队在开发过程中拥有一个紧密的反馈循环;开发更新和特性,收集客户反馈,并相应地调整路线图。
因为Lande在开发过程中始终处于循环中,所以他能够获得更准确的反馈信息,即完成任务需要多长时间,或者需要对某个功能进行哪些修改。总之,直接与开发人员合作,根据客户需求创建路线图,是将您的想法转化为开发团队的计划的有效方法。
总结:提供更好的指导和学习技术沟通技巧的策略
- 不考虑软件设计基础知识而给开发人员的指示可能是无用的。具备一定程度的技术沟通能力是至关重要的。
- 指导和计划应该尽可能从开发者的角度来创建;不管你是自己学习还是雇人做翻译工作
- 花时间与开发人员直接合作并询问大量问题能够让你在开发过程中更轻松地保持在循环中
- 与开发人员一起制定项目路线图是将客户需求转化为开发计划的有效方法
这些技术交流的想法如何适应一个成长中的公司
到目前为止,围绕培养技术沟通能力所讨论的想法主要适用于中小型软件初创公司。但作为一家公司,这些观念是如何改变的呢成长为一个更大的企业?显然,当团队规模增长到原来的十倍时,与每个人直接沟通就困难得多了。本节使用一个案例研究来探讨大公司中的业务人员和开发人员之间的关系。
验证客户请求- Vishal Kothari来自红巷首府
Vishal Kothari目前是Red Lane Capital的管理合伙人,并共同创立了RedKnee,现在更名为Optiva,为电信行业提供业务支持系统软件。20多年前,当他与三位工程师同行共同创立红膝公司时,该公司只有大约15名员工。从那以后,当他去年离开公司时,公司已经发展到大约1500名员工。Kothari表示,公司在最初的五六年里经历了很多变革,并在大约七年后终于推出了一款更专注的产品。
另外三位联合创始人中有一位是有才华的软件工程师,科塔里觉得在经营公司时,没有太多学习编程的必要。他发现软件开发非常简单,他说:“如果你解决了客户的问题,你就可以和软件开发人员沟通,并相信他们能把问题解决好。”当你在一家大公司工作时,你不能花时间去微观管理每个开发者;相信他们能做好他们的工作,这样你就可以专注于你在公司发展中的角色。显然,你仍然需要有效且一致地记录并与开发人员沟通功能,但要避免将每天的每一分钟都花在担心开发上。
在RedKnee, Kothari的方针一直是花大量时间与客户相处,了解他们的痛点。他们在全球约有500名客户,但把资源投入到与客户面对面交谈中是一项非常重要的任务。亚搏体育客户端app下载公司的每个部门都以客户为中心,专注于为客户提供最好的服务。也就是说,这导致了许多来自客户的反馈和想法。
与客户互动的大公司收到的建议铺天盖地。但如果你路过每一个给开发团队的建议是,他们最终会在大多数客户实际上并不需要的功能上浪费大量时间。科塔里说:“他们可能会要求从A到Z的所有东西,但你需要确认他们想要什么。当你最终创造出一大堆东西时,客户可能只需要5件东西。”你还需要把他们想要的东西翻译成一个简化的版本,这样仍然可以解决他们最重要的问题。
就像初创公司一样,大公司仍然需要这样做验证的想法在他们开始建造之前。因为您不能只是为客户定制商店,所以验证可以让您查看客户问题是常见的还是影响很大的。如果它们确实是常见的,那么您就将其传递给开发人员,并向其发展。随着公司的发展,使用验证过滤掉客户的建议仍然很重要,这可以确保你不会浪费开发者的时间和公司的资源去为一个不必要的功能规划路线图;亚搏体育客户端app下载这将导致范围蔓延和功能膨胀。
随着公司的发展,RedKnee聘请了经理来验证客户的意见,并将他们的建议转化为路线图,发送给开发人员。他们在创建既代表客户的观点又从开发人员的观点来看可行的开发计划方面发挥了关键作用。这也在很大程度上消除了研发团队与开发人员持续沟通的需要。这里的关键点是,从开发人员的角度来看,这些计划仍然需要由具有良好技术沟通能力的人监督。
总结:这些技术交流的想法如何适应一个成长中的公司
- 在一个成长中的公司,当你信任开发人员的工作时,你就可以专注于你的业务角色
- 花时间与客户相处会产生大量的客户反馈,这些反馈需要通过客户验证进行过滤
- 在将客户的建议传递给开发人员之前对其进行验证,可以简化沟通并更有效地使用资源亚搏体育客户端app下载
- 可以聘请某人在客户研究和开发人员之间进行转换,以保持双方的最佳利益
一些用于技术交流的有用软件工具
正如在上面的几个案例中所讨论的,工具是与您的软件开发团队保持有效沟通不可或缺的一部分。下面是关于本文中提到的工具的更多信息。
有关用于与。沟通的工具的信息外包软件开发人员,请参阅本文。其他对创业公司有用的软件工具也可以在这里找到。
松弛
Slack在科技界正以快速的速度受到欢迎,它允许远程开发人员进行协作,就像他们给朋友发短信一样。Slack可以替代你的团队的电子邮件和即时通讯工具,提供一系列易于浏览的对话。你不希望重要的信息丢失在某人繁忙的电子邮件帐户中;Slack组织个人对话、团队群聊或与合作企业的对话。快速消息可以包括投票、视频,甚至是紧急事项的推送通知。您还可以共享文件,进行视频对话,并集成其他一些工具。
Slack是将员工、团队和业务合作伙伴之间的技术交流精简到一个集中平台上的最佳方式。
使用Slack的RIC中心公司:ResQ, Lucky VR, analyly, Routible
Bitbucket都
Bitbucket由Atlassian开发,是软件开发人员常用的版本控制系统。版本控制系统允许软件开发人员在项目上进行协作,同时将代码从单独的任务中分离到分支中;不同分支上的代码更改稍后可以合并。它们是跟踪更改并将新版本与以前版本进行比较的好地方。
版本控制对于没有技术背景的人来说有点困难,但是一旦你掌握了它的窍门,就可以详细了解项目的进展。BitBucket尤其为代码分支提供了详细的访问控制,并提供了一个管道工具,允许开发人员在平台上构建和测试他们的代码。当与Jira或Trello等项目管理平台集成时,Bitbucket可以让你及时了解开发人员在做什么。
使用Bitbucket的RIC中心公司:ResQ,分析
Jira
同样由Atlassian开发的Jira是一个为使用敏捷方法进行软件开发的团队优化的项目管理平台。项目管理平台是当您无法面对面时与团队进行协作的好地方。大多数包括项目计划、团队聊天、待办事项列表和任务分配的可视化表示。Jira尤其拥有先进的敏捷项目管理功能,包括scrum板、看板、路线图和问题报告。它还可以与Bitbucket等其他Atlassian平台无缝集成,因此您的业务的多个部门可以在一个地方进行协作。Jira是项目管理平台中比较昂贵的选择之一,因为一个只有1到10名员工的小团队每年的成本是100美元,而大型团队的成本要高得多。
如果您正在寻找一个完全支持使用敏捷项目管理的平台,那么使用Jira是不会出错的。
使用Jira的RIC中心公司:ClinicSense, ResQ, Lucky VR
总结:软件初创公司的技术沟通技能
- 掌握一些技术知识可以帮助您做出更准确的时间表估计,更好地了解开发人员正在做什么,并保护您免受开发人员的不准确声明和估计
- 相信您的开发人员能够正确地完成工作,而不必对他们进行微观管理,这会让您有更多的时间专注于业务
- 当开发人员了解业务结果并直接从客户那里听到客户的问题时,他们会更加关注项目
- 指示和计划通常是不可用的,除非它们是由能够从开发人员的角度制定的人制定的
- 花时间与开发人员直接合作,问他们很多问题,以帮助保持在循环中
- 将客户的问题转化为功能路线图,与开发人员一起,将产生更好的开发计划;有人可以被专门聘用为这个职位
- 当你得到大量的客户反馈时,验证每一个建议,过滤出哪些建议是值得构建的,这是很重要的
- 软件工具是与开发人员沟通的宝贵资源;使用开发人员习惯使用的工具,而不是让他们使用您喜欢的工具