程序员不应该戴什么帽子?[关闭]


29

以我的经验,软件开发人员往往会戴上帽子,并以不同的职责担当多个角色。从不仅编码,有时还包括编写SQL,设计用户界面,设计数据库,图形处理乃至QA测试。

如果主要角色是编写软件/代码,那么开发人员不应该承担什么角色? 有吗

这个问题的意图不是因为开发人员无法胜任其他角色-而是具有其他角色实际上与主要角色相反,或者实际上应该是不主要编程的人的专门角色。


20
引擎盖...哦,等等..
ChaosPandion 2010-09-29

21
IMO程序员不应该穿着那些墨西哥大的阔边帽,因为帽檐会不断撞击显示器。
梅森惠勒

1
@Peter Turner:“最棒的程序员帽子”将是安装两个啤酒罐的那些新颖工作之一。只有,没有啤酒。红牛。
BlairHippo

4
该死的。如此有希望的头衔...
Nobody

4
@Mason,将草帽保持在监视器上方将屏蔽光滑屏幕中的反射。换句话说-技术。

Answers:


54

系统管理员。开发软件和处理IT基础架构是两个不同的技能集,看起来像局外人一样。(这全都在敲打计算机,对吗?)对于一家规模较小的公司而言,让The Computer Guy负责办公室中的所有计算机的诱惑将非常强烈。

如果您具备实际戴两顶帽子的技能,那就太好了;但这是可能比人们意识到的要花费更多时间的事情之一,而且如果您在进行过程中进行自我教学,很可能您做得不好。


7
这个。认真地说,仅仅因为我在计算机上工作并不意味着我可以修复基础架构。您只是在浪费开发人员的时间。
哈科·普雷托里乌斯

5
+1业余sysadmin可能造成的损害是巨大的。
davidtbernal's

而且,如果您获得了sysadmin的帽子,他们也可能会将您与设施管理员的帽子粘在一起,要不惜一切代价避免。
HLGEM 2010年

3
OTOH,我在一家公司的IT部门无能和缓慢的公司工作。我不会仅仅能够进行自己的防火墙更改...
Gabe Moothart 2010年

1
有人指出,我的老板没有打扮,但告诉他们,他将因安装计算机而变得肮脏。他们指着我,指出我应该这样做。我差点跳过去,把他们勒死了,但是我but着咖啡,说我不做硬件。
JeffO 2011年

35

您戴上雇主要求的任何帽子。这就是让您成为团队合作者的原因。这就是使您成为问题解决者的原因

人们太过被“开发人员”,“建筑师”或“分析师”的想法所困扰。拧紧。您应该是一个解决问题的人。代码只是您的工具。

解决问题永远不会过时。

如果我的老板希望我提供技术支持或建造计算机,那就这样吧。考虑到开发人员的薪水,它认为他们在浪费钱,但这是他们的事。我是来解决问题的。但是我可以做到,我会做到的。而且,如果我觉得经过一段时间后,我的才华被浪费了,或者我的工作满意度没有达到我想要的水平,那么我就有权利继续从事另一项工作。

但要问一个基本问题-没有帽子不戴。哎呀,如果他们要您拿咖啡,那就去做吧。解决他们的问题;只要知道,如果您想改变,就有权找到另一份工作。


5
@Josh:我认为那是那些“找到新工作”的情况之一。
亚当李尔

21
请注意这一点。老板倾向于利用那些愿意做任何事情的人。只要确保您得到正确的补偿即可。
托尼2010年

5
我认为Chris并不是在说“做任何事”(嗯,他有点迟了;我也不会为也没有给我喝酒的人买咖啡),而是说:“我是开发人员,我不会更换打印机墨盒”。
彼得·布顿

10
我不同意。可以很容易地说开发人员应该能够执行任何要求的操作,但这并不意味着他/她应该这样做。在这些情况下会出现一些重大的利益冲突问题。我不希望使用生产系统,因为当它们崩溃时,我会受到责备(“哦,好吧XXX上个月在那儿,所以我确定他搞砸了,因为他是开发人员,而不是管理员”)
MBonig

7
-1; 这里有一个真相,但是这种思维方式有一些明显的局限性,这个答案还不足以让人们认识到。当真正的根本问题是您的雇主在人事管理上抽水怎么办?我曾经看过一个办公室倒闭的情况,因为上层人士坚持将聪明,干练的工程师拔尖成为他们讨厌和做的很差的角色。有时会说“不!” 是您自己和老板都能做的最好的事情。
BlairHippo

29

测试员!

如有需要,请将测试人员直接从测试人员学校发送出去!

没有测试人员,人们会期望一切都可以正常进行,因为程序员是测试人员,他们非常聪明,因此应该可以工作。

我并不是说狗食不是一个好主意。我只是一名程序员,所以我认为测试人员非常重要。


4
好的专用测试仪肯定被低估了!
彼得·布顿

3
狗粮!?我只煮五星级龙虾!...这就是为什么当我把东西弄糟的时候我需要一个测试仪来告诉我。我做了东西,知道它是如何工作的。没有一个制作UI的人有资格对它进行全面的测试,仅仅是因为他们知道它是如何工作的,而不是与不这样做的人一起工作的。
Morgan Herlocker 2010年

15
一般而言,做一名测试员没有什么错。成为您自己的代码的唯一测试者是错误的。程序员在编写代码时会考虑一组假设,并且如果测试人员具有相同的假设,则他们将不会执行意外的部分,并且会遗漏许多错误。
dbkk 2010年

5
测试您自己的代码绝对是一个很大的禁忌。程序员可以涵盖很多其他内容,但是您自己的代码的实际功能测试(如果您不进行单元测试,无论如何您可能都不是程序员)是一个非常糟糕的主意。记住,用它进行狗食很好。
glenatron

3
+1-程序员在使用程序方面与非程序员有明显的不同。您是否会在“文件->保存”菜单项中发现错误?

26

您应该谨慎对待办公室硬件问题。这可能包括PC故障排除,服务器管理,备份,甚至电话系统工作。我错误地提到了我以前的硬件经验,最终我的硬件/故障排除职责与我的编程职责严重冲突。


告诉罪犯他们需要您老板的许可,并注册所有用于此的时间。

@Thor从我的老板那里来的工作方向是硬件。这对办公室很有帮助,但我当时无法专注于编程。
乔恩·昂斯托特

@Jon,如果老板说您需要这样做,那么...您需要这样做。然后,您可以与他讨论这是否令人满意,如果您无法达成协议,就该离开了。

+1我也发生了同样的事情。他们希望我不仅编写代码,而且还要与不知所措的供应商一起处理网络问题,这导致了很多压力。
Rich

16

程序员不应成为自己代码的唯一测试者

开发人员使用一组假设编写代码。如果测试人员具有相同的假设集,他们将不会在这些范围之外行使意外的功能,并且许多问题仍将未被发现。

而且,为了前进,开发人员没有很大的动力去破坏事物,而测试人员则是(可能处于潜意识水平)。

这并不意味着开发人员测试是无用的。相反,好的开发测试使测试人员可以专注于发现更深层次的问题。但是,开发人员测试不能替代专用测试器。


10

我可以马上想到两个。

  1. 技术支持。我不是在这里帮助客户浏览新网站或教他们如何使用功能。
  2. 尽管可能需要在流程的各个阶段与客户进行交互,但是除非您是一名管理程序员,否则您实际上不应该直接与客户就功能和设计实现进行沟通。

您可以说CSS / UI开发将超出编程“领域”,但以我的经验,这是当今必不可少的技能。您不能只是摆脱表而依赖其他人来正确实现它。我可能不喜欢实现设计或更改代码以处理新设计,但这是工作的一部分。

编写查询很好,Q / A测试也很好(并且IMO 应该是程序员的工作,可以找一个外部部门来做,但是首先您应该测试它)。服务器管理是一个灰色区域。根据项目的大小或是否需要专门的服务器管理员,可能会也可能不需要。


7
关于第2点,至少有一家公司的创始原则是编写代码的人应直接与客户交谈:中介化有其优势。
Frank Shearar 2010年

10

总的来说,根据我的经验,大多数程序员都不应该开发用户界面的外观和感觉-尽管我当然有能力开发UI(并且在构建原型或概念证明时经常创建一个UI),但这是最好留给人为因素的人(在我们的小公司中,是一位图形艺术家,他还负责屏幕布局并创建大多数手册和小册子)。

另外,开发人员不应进行质量检查测试-这是质量检查部门的工作(我工作的公司生产嵌入式医疗设备,因此这要求测试必须由单独的部门完成)。

另一方面,如果有背景,开发人员就无法设计数据库并编写SQL,我没有理由-我做了很多次。


2
+1同意编写它的开发人员进行的质量检查测试无法达到目的。
海绵

2
@JoshK 一些 QA测试可以由开发人员完成,但是主要的QA测试应该由其他人进行。如果您测试自己编写的应用程序,那么您将下意识地解决所有潜在的问题。关键是要发现开发人员无法找到的问题,一种可以说的新鲜的眼睛。
海绵

2
@JoshK @ChaosPandion同意,开发人员应该做一些事先的测试-但是它不应该被信任,因此请那些没有进行开发的人员单独进行QA测试。
海绵

5
-1:我不同意程序员不应设计GUI。我在一家小公司工作了8年,设计了所有用户界面。我一直遵循Microsoft出色的设计准则,并阅读了几本HMI设计书籍。我们仅将图形外包给外部插画家。
Wizard79 2010年

3
这里令我困扰的一件事是,暗示图形人员比程序员更适合设计UI。可能是您的图形艺术家擅长设计界面,但是在一般情况下,它可能会退化为令人困惑,无法使用,漂亮的界面,而不是您从定型程序员那里得到的令人困惑,几乎无法使用的丑陋界面。
David Thornley,2010年

8

技术支持

打电话给技术支持人员浪费了我大部分时间...

一些受欢迎的是:

  • “我的帐户已被锁定”或“我忘记了密码”
  • “我的[电话|键盘|鼠标|计算机]不起作用”
  • “我的电脑运行缓慢,您能检查出是否有异常情况吗?”
  • “为什么单击此按钮时X会发生?它应该在执行Y”
  • “我不断收到这些弹出窗口...。”或“我认为我感染了病毒”
  • “这个人不再在这里,你能禁用他们所有的东西吗?”
  • “我们有一个新员工,您可以使用登录名,安全卡,电话分机号,电子邮件等设置他们吗?”

6

任何使他自我管理的角色。在小型团队中,通常倾向于让一名高级开发人员担任项目经理,但同时又将他留在团队中担任程序员。这会导致各种问题,因为这个人作为程序员基本上是不受管理的。与其将所有任务委派给其他团队成员,他通常会被诱惑将许多任务分配给自己,尤其是最困难的任务。因此,最困难的任务(最有可能导致问题的任务)被分配给一个人,该人只有50%的程序员可以使用,因此对任何人都没有报告。当其他团队成员无法完成任务时,他会努力执行任务,因为作为项目经理,他对成功负责,而最安全的完成方法是亲自完成任务,不是吗?


5

对您无需开发,部署或维护的任何东西的技术支持,也没有接受任何培训的信息,也无法及时掌握最新的重大更改。我的部分工作是接听电话,询问客户为何无法正常使用互联网。我没有处理这一半的业务,所以我不能告诉他们任何用处。

不必提供技术支持,这没有问题。在尝试开发事物时,它是一名秘书/技术支持人员。

必须倾听人们整天的抱怨而又不能够告诉他们任何事情,这实在是太累人了。我建议不惜一切代价避免这种情况。


是的,全天必须多次转换个性非常麻烦。当您经常被打扰时,很难完成需要专心的任务。
Rich

5

销售部

一些可怜的bug爱好者必须这样做,但是肯定不应该是开发人员。


4

随着年龄的增长,我已经意识到,如果开发人员不自己进行部署,那是最好的选择(我为此费尽心思)。除选择权限外,他们对生产数据库没有任何权限。我们的代码少了很多错误(并且同一件事并没有多次出现,因为更改仅是在prod中进行的,后来的开发部署再次覆盖了它,然后仅在着急,冲洗和重复时才固定在prod上)必须开始将其交给其他人进行部署,并且由于部署不正确而被禁止进行快速修复生产更改。进一步,我们不再遇到那些意外的“不带where子句的突出显示更改了表中每个记录的更新”问题。


是的,是的,是的。切勿让开发人员有任何访问产品的机会,也不要让阶段非常有限(最好是没有限制)。如果没有其他事情,它可以减少他们所承受的压力。
ElGringoGrande

1
是! 我是开发人员,所以我不想访问所有这些生产资料。与其他人一起进行软件部署,这是对部署过程的另一项测试。(也许灾难的恢复也会有所改善。)
畏惧

3

艺术家用户界面设计师

大多数程序员在美术方面都很差劲,但是公司不会花钱去让艺术家为他们的产品绘制图像和图标,而只是使用“程序员艺术”-结果可笑。(直到Windows Vista,这是Mac和PC之间最明显的区别因素-Mac看起来很漂亮,很友好,PC让人眼花eyes乱)

以类似的方式,许多程序员对用户界面不是很感兴趣-他们主要关心他们的代码。他们只是简单地将成员变量的内容直接暴露于某些可编辑的字段中,而通常不在乎在表单上放置按钮和字段的位置,并假定这样做就足够了,从而导致软件无法使用。(整个手机行业对此深感愧until,直到iPhone出现,向他们展示您实际上可以制作出一个很好用的手机UI为止)

Lotus Notes是一个出色的例子,说明如果您没有专业的设计师来帮助程序员,那么这两种情况都会很糟糕。


2
“大多数程序员对artwook非常不熟练”和“许多程序员不太感兴趣”与“没有程序员感兴趣”和“所有程序员都不好”相同。我实际上已经认识了一对在这方面做得很好的夫妇。
MIA 2010年

1
@吉姆·莱昂纳多:的确如此。这就是为什么我说“最多”和“很多”而不是“全部”的原因。:-)
杰森·威廉姆斯

3

编写总体测试和测试计划。认真地说,伙计们,我可以编写自己的测试计划,但这意味着将我在编写内容时遇到的任何误解,错误的假设和认知错误都融入产品中。这是我唯一讨厌的一家公司。我现在所在的位置,至少我们有代码审查可能会抓住这些问题。


是的,在创建任何代码之前,大多数测试应与规范一起编写。尽管让开发人员根据他们接触的知识添加额外的测试并不是一件坏事。
彼得·布顿

3

尽量不要戴过多的“帽子”,要说出不应该做AB来吸引开发人员,这意味着优秀的UI设计人员可能会被忽视,因为有人认为程序员应该远离开发人员用户界面。

归根结底,每个人都会有不同的长处和短处,一个好的经理/主管/团队负责人应该知道指导员工的最佳方法,以确保人才得到适当利用。同样,如果您不习惯设计UI或与最终用户打交道,请让您的团队知道,以便您可以最大程度地减少在该领域的角色。但是,您应该准备在另一个区域进行一些其他工作。

另外,如果您戴的帽子太多(例如,程序员,UI设计人员,测试人员,业务分析师等),那么您要么在其中的某些方面做得不好,要么会精疲力尽。确保您知道可以处理多少顶帽子,并尝试将工作量保持在该水平左右。

除此之外,如果开发人员具有胜任该职位的技能,那么他们真的不应该戴“帽子”。


1

在以下情况下,我倾向于从事任何丢给我的工作:

  • 我事先警告过我的技能水平和可能的影响,而我的老板认为这可以接受
  • 有一个大师级别的人可以(可能会在某个阶段)帮助我处理意外的事情
  • 仔细阅读一些文档,在线提问等。

这样,我主要是为老板投保的,如果有人做错了,那至少是可以解决的。


1

开发人员是这种情况下的利益相关者(例如客户,所有者等),因此他们有权期望有意义的工作。我认为,这意味着有机会发挥自己的优势

因此,开发人员不应该戴上没有活力,不影响个人成长并导致最佳表现的帽子,并浪费时间为他们做这些事情的“帽子”。

除了不是唯一一个测试自己的代码的人,我认为任何“帽子”都可以,如果这对戴帽子的开发人员有意义的话。


1

“设计师”或“创意人”。您将从单纯地将应用程序界面的模型放在一起,到为下一个在线广告活动编写市场营销文字,或者在不知道x_x之前就蓝色的“正确”阴影进行无休止的讨论。


0

那顶戴着啤酒罐的帽子,带一根吸管。如果被抓住,这是个坏主意。

编辑:

这是我讨厌的帽子,但能带来丰厚的回报-这对我来说是一个很大的信号,说如果这件事坏了,完全是你的错。。。。。。。。。是-现在回到地下室...好孩子...就是这样。

怪帽子。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.