前端和后端开发者应该成为朋友

还没有读者喜欢这篇文章。
words logical and radical

Opensource.com

Natalie Kozlowski 是 CodeGuard 的前端 Web 开发者。她是一位自学成才的程序员,拥抱开源,并将在今年于罗利举办的 All Things Open 大会上就 如何与你的前端开发者互动 发表演讲。

在这次采访中,我在会议之前采访了 Natalie。我更多地了解了她的背景,比如她如何获得专业写作学位,是什么让她从事了目前作为前端开发者的工作,以及她如何将开源方式应用于她的工作。

Interview

你能告诉我们一些关于你自己和你的背景吗?

我毕业于密歇根州立大学,获得了专业写作学士学位。毕业后,我搬到佐治亚州亚特兰大市,在 CodeGuard 担任前端 Web 开发者。CodeGuard 是一个为 Web 提供网站备份、监控和恢复服务的公司。作为前端开发者,我不仅负责应用程序的所有前端代码,还负责我们所有的设计需求。

就设计而言,我已经学会了热爱各种各样的活动。我最初在 Photoshop 中创建 Web 设计和界面设计,然后扩展到学习 Illustrator,为我的工作创建自定义徽标和图标。在那之后,我进一步拓展,并开始喜欢上平面设计的各个方面,例如 T 恤设计、信息图表设计、海报设计、数字漫画插图等等。即使在今天,我仍然会在空闲时间参加 T 恤设计比赛,只是为了好玩!

我也非常喜欢各种各样的开发学科。我曾参与过 PHP、Node.js、Ruby 项目,当然还有所有我能接触到的前端框架/库/语言/预处理器!我喜欢学习新技术,并喜欢用我从未使用过的新工具来挑战自己。我将前端开发视为我所热爱的两件事之间的平衡:设计和开发。

我在 CodeGuard 参与的一些知名项目包括我们主页的重新设计、我们主页的移动优化,以及我们公司 T 恤的设计。

在工作之外,我喜欢通过在亚特兰大周围远足和骑自行车来保持活跃。我的其他爱好包括在社区乐队演奏打击乐器和学习韩语。

作为一名专业写作专业的毕业生,是什么让你成为了一名前端开发者?

你不会相信我被问到这个问题有多频繁!不过我喜欢回答这个问题。


查看完整的 All Things Open 演讲者访谈系列

在密歇根州立大学的专业写作专业中,你可以选择专攻三个方向之一。我选择了数字与技术写作方向,这让我对代码(主要是 HTML/CSS)有了一些了解,对 Web 设计最佳实践有了很好的理解,并且对如何为 Web 写作以及如何关注你所创建内容的数字修辞有了很好的理解。基本上,我的专业专注于网站最重要的东西:内容。当时我的专业和方向的另一个名称可能是“用户体验设计”。

我喜欢我的专业,但与此同时,我发现自己越来越被编码和开发所吸引。我非常重视我在专业中学到的用户体验和写作技能,所以没有转专业到计算机科学之类的专业,而是通过免费的在线资源以及我在本科期间获得的 Web 开发实习/学生工作自学了编码。

到我大四结束时,我肯定更认同自己是“后端”开发者,但我仍然对 Web 设计非常感兴趣,并且对运用我的专业所教的平面设计技能感兴趣。最终,前端开发对我来说是我的设计爱好和编码爱好之间的一个很好的平衡。前端开发让我可以在我想的时候变得技术化和痴迷技术,同时也让我能够关注用户体验和我正在创建的事物的美感。在这一点上,我认为我真的不能再选择一个学科而放弃另一个学科了(只做 Web/UI/UX 设计师或只做 Web 开发者)。我喜欢前端开发让我两者都能做!

所以为了回答这个问题:我认为我的专业确实为我成为前端开发者做好了准备,尽管在这个过程中也需要大量的自学和动力来塑造我自己成为我想成为的专业人士。并非所有人都一开始就看到我的教育与我的职业之间的联系,但在我解释了我在学校的历程之后,大多数人都会理解我今天是如何走到这一步的。

我绝对认为开源技术使我的开发自学成为可能。我认为,作为一个年轻的学生,能够尝试开源项目和库对于我成为今天的我至关重要。如果没有这种接触,或者说没有这种进入开发世界的机会,我可能早就因为感到挫败而放弃了,认为入门门槛太高或者超出了我的能力范围!我很感激我能够发现开源世界。

开发是开源项目的核心。这些团队(通常是分散和自组织的)可以从您领导开发团队的经验中学到什么?

我认为沟通是任何开发项目成功的关键。每天上午 10 点,CodeGuard 的所有开发者都会聚集在一起进行早会,我们在会上讨论昨天做了什么,今天计划做什么,以及我们的工作中可能遇到的任何开发阻碍。

这些 15 分钟的简短会议对我们的流程帮助很大。例如,当团队构建某些东西时,我的同事 Jonathan 和我可能永远不会在同一个功能部分工作,但是了解他的代码部分是如何工作的仍然对我来说非常有价值。将来我可能需要修改他的代码部分,或者在其中添加内容,并且对他构建的内容有很好的了解将为我节省大量时间,或者为任何在该功能上工作的开发者节省大量时间。

在提交新代码和互相审查工作时,我们也大量依赖 GitHub Issues 和 GitHub Pull Requests。GitHub 内部的评论系统已成为团队进行大量沟通的地方,也是我们解决许多问题的地方。

作为一个团队,我们也是一个非常健谈的群体。我并不是说我们 постоянно 在办公室里大声交谈,但我们确实使用了一个名为 HipChat 的群聊服务,该服务充当我们所有系统警报和我们团队大部分日常讨论的中心。我们为开发者对话、支持讨论、我们正在提交的代码等设置了单独的聊天室。我们甚至有一个单独的聊天室来讨论办公室的温度,以防有人想调高或调低恒温器。最后一个有点傻,即使 *我们* 也意识到了这一点,但我想强调的是我们沟通很多,并且我们使用多种服务/平台来做到这一点。我们团队的某些成员也经常远程工作,因此让每个人都了解最新情况对我们至关重要。我们的每日早会肯定有帮助,以及我们使用的其他一系列工具。如果团队成员当天远程工作,我们会确保通过视频电话让他们参加我们的早会!

开源方式是关于开放交流、快速原型设计和参与的。您是否在日常工作和与后端开发者的协作中应用了这些特点?您是否从中受益?

我认为我确实拥抱了这些特点。我工作过的大多数公司都 практикуют 敏捷开发,所以我习惯了快节奏的环境,在这样的环境中,“MVP(最小可行产品)”的快速发布,然后进行迭代是做事的方式。我们在 CodeGuard 也做了很多结对编程。作为唯一的前端开发者,意味着我总是与后端开发者结对。我喜欢认为我们已经找到了一种很好的合作方式,分享知识并有效地协作。这需要练习!

即使我不结对编程,我仍然会与后端人员进行相当多的互动。我认为,促进这种类型互动的工作环境(设计师与后端开发者密切合作,前端开发者与后端开发者密切合作,开发者与销售团队或营销团队密切合作等)最终会产生更强大的产品。我认为这是真的,因为团队的每个部分最终都会比他们被隔离到自己的角色时更多地接触到团队的其他工作部分。我认为,更好地了解团队中的其他角色可以使工作在长期内更有效率。因此,任何团队都可以从中受益!

您能否分享一个您(和您的团队)基于开源构建的用户体验或 Web 应用程序的示例?

我们在 CodeGuard 肯定拥抱开源技术。我们的主要应用程序是使用 Ruby on Rails 构建的,我们使用许多其他开源技术将所有内容组合在一起。

我们的一位开发者用 Go 语言编写了一个名为 s3goph3r 的工具,用于将内容并发地流式传输到 Amazon S3。我们使用 Amazon S3 来存储我们所有的备份,他创建的工具是我们在 CodeGuard 遇到的问题的一个非常需要的解决方案。他在 GitHub 上开源了这个项目,到目前为止,社区对它的反应非常积极!人们甚至开始下载它并为代码库做出贡献。这是他第一次开源一些东西,我记得他开玩笑地说,他不确定他对有人为他的项目提交他们的第一个 pull-request 感觉如何!

有什么最后的想法吗?对您的演讲的先睹为快或给开源开发者的提示?

我的演讲实际上是关于团队沟通,以及后端开发者和前端开发者如何在项目上最好地合作,以使每个人都高兴并按时完成截止日期。我在上面提到了我认为良好的沟通在开发项目中有多么重要。我肯定会在我的演讲中深入探讨所有这些!

我将从作为前端开发者但也作为设计师的立场来谈论我对这个话题的看法。我认为任何开发者都可以从听取这次演讲中受益,无论您是在从事开源项目、私有项目、编写 Ruby 代码还是 Perl 代码,或者 Lisp 代码等等。我已经与足够的开发者交谈过,知道在某些工作场所,开发者和设计师是严重隔离的。就像,根本没有任何互动!

我的演讲深入探讨了为什么我认为我们这样做是在损害我们自己和我们的产品,但也探讨了人们如何开始在他们的工作场所改善这种情况。

查看完整的 2014 年 All Things Open 演讲者访谈系列。

Avatar
前 Opensource.com 和 Open Organization 版主/大使。

评论已关闭。

© . All rights reserved.