什么定义了“软件开发人员”角色


10

我是一名初级软件开发人员,并且在一家公司工作不到一年。

虽然我一直以为软件开发人员意味着要开发软件和CODE,但是我的任务更多是在管理工作上,例如设置Jenkins,SQL Replication等。

这些类型的工作是否包含在开发人员角色中,或者开发人员仅开发软件?我应该和我的经理谈这件事吗?这是公司评估“发展”技能的常用方法吗?


9
取决于你的尖顶老板是谁。
Neil 2013年

每个公司对角色的定义都会略有不同。询问您的经理,这个角色需要承担什么责任和期望。
伯纳德

4
在一段时间内,木匠不得不装载木材,推独轮车等。这都是工作的一部分。如果您是一个没有经验的木匠,那么您可能要比高级木匠做更多的事情。
布莱恩·奥克利

1
软件开发>编写代码。如果软件开发人员不知道如何设置/使用和/或不知道(诸如Jenkins之类的工具的)价值,那么根据定义,他们将是(非常)初级的软件开发人员。考虑一下它在职培训,并为自己感到幸运,因为你不在一个必须在自己的虚拟机上运行自己的CI服务器的环境中工作,而该虚拟机必须在自己的时间上维护,以保持一定水平的软件质量。是预期的,但实际上,如果在其(大多数是手动)“过程”中不允许使用此类工具,则不建议使用。
迈克尔,

Answers:


11

在我看来,他们之所以聘请大三是因为他们负担不起大四,而不是因为他们实际上想要大三(他们可以投资并指导,直到他们成为大四)。我管理过一个团队,这个团队的决定由不了解的经理强加给他们。

他结束了所有不幸的工作,例如为用户创建了培训视频之类的东西,现在我仍然对此感到内,但是我承受着交付的压力,并且期望增加开发室的人头只会加快工作的速度。 。

这很不幸,因为它使您和您的老板处于棘手的位置。

他可能没有任何可信赖的工作,而他可能拥有的任何前辈都不会从他们的日常工作中分心。一种简单的解决方法是给初级的许多非开发任务,他也不想浪费高级开发者的时间。

但是由此产生了一些问题。

首先,他给您提供的开发工作确实需要高级开发人员。特别是,应该由正在构建软件并知道痛点在哪里的人来设置构建服务器。

其次,初级人员的用处不大。五年之后,您仍然会执行相同的任务,因为您仍然无法获得实际开发工作的信任。

第三,大三学生最终会(就像您一样)意识到他们没有帮助自己的职业。初级人员素质低下,而不是缺乏(和寻找)经验的假设在这个行业中是一个可怕的但很常见的错误。

所以,是的,和你的老板坐下。但是要了解他所处的困境。看看您是否可以达成解决所有人问题的安排。您将需要一名高级导师,并且您当前的一些任务将需要转嫁给高级经理。这将减慢项目速度,但从长远来看,它将获得回报。这就是您需要联系您的老板,可能还需要联系他们的老板的要点。另外,请查看是否可以找到可以减轻成本的回报。

如果不能,那么您可能想去别处。


这些不是“高级开发人员”任务。这(詹金斯)只是以下说明。高级开发人员(根据经验)决定路径,初级开发人员遵循路径。如果一个初级开发人员抱怨设置jenkins,我会寻找另一个初级开发人员。进行设置所需的时间少于发布此问题并阅读答案的时间。(我知道,因为我已经设置了hudson / jenkins多次。并且进行了数据库复制。如此多次。)“只要这样做,”您就会知道如何做。如果您从不学习如何做任何事情并期望领导,那么您只是培训中的PHB。
迈克尔

@michael_n:完全不同意。设置Jenkins与设置整个构建环境之间的区别在于,它可以减少所有开发人员的工作量,同时允许安全的一键式部署等。这就是Junior可以为您提供的区别以及当被要求设置构建服务器时,高级会给您什么。
pdr 2013年

……但我同意你的看法:“设置Jenkins与设置整个构建环境之间是有区别的。” 究竟。因此,我想这取决于您是否从字面上解释这个问题(我做到了)。安装詹金斯是一个下午。设置make / ant / maven版本需要几天的时间,并且很容易会花几周的时间,并且必须做对。好的管理者可以分解经验,并根据经验进行委派(在这方面,我过去是一个糟糕的管理者,我选择自己做所有事情,只是因为这样做实际上会更快。但这无法扩展,并且“团队”)
。–迈克尔

@michael_n:明白你的意思。我想,我对经理的期望往往较低。特别是出于经济原因而不是未来计划雇用初级人员的人。
pdr,2013年

7

我发现“软件开发人员”一词与“程序员”同义。因此,软件开发人员是一个主要职责是编写代码的人。在我的第一份工作中,我的头衔是“开发人员”,而我的主要职责是设计和编码软件。但是我认为这个词没有确切的定义。不同的人使用它的方式不同,因此含义变得模糊。

但是,为了使开发团队有效地工作,您必须设置以下各项:CI服务器,SQL复制,部署到测试服务器,监视测试服务器,构建归档等(也许并非所有情况都适用) 。

这些任务在项目的初始阶段将占用大量时间,但是一旦运行良好的设置,这些任务将占用较少的时间。

不幸的是,开发人员宁愿编写代码也不愿管理构建服务器。因此,通常,这些无聊的任务落在初级开发人员手中,因为高级开发人员承担着更重要的任务。

我还没有任何公司使用这些任务作为评估技能的方法。

如果您对当前的职责不满意,建议您与直属经理联系。


1
根据,术语之间存在差异。
伯纳德

1
也可根据
smp7d

2

这取决于。似乎不同的公司对此定义不同,对于某些公司来说,它是一系列技术功能的总称。对于某些人来说,这只是一个标题。之前问过同样的问题,我得到的回答类似于“只有开发人员才能在我们的组织中做到这一点”,我可能会说,但这不一定会使它发展。

理论上的答案是,开发人员(与编码器/程序员相比)是一个“解决问题”的人,即使他们与“编码某些东西”无关。

您想编写更多代码,所以也许要求您的经理执行更多编码任务,或者通过编码来完成您要做的一些事情?您提到了可操作的东西,因此也许其中一些可以由DevOps框架(请检查Chefpuppet)完成,这将使功能更高效并接近开发。


2

期望开发人员具备一些系统管理技能的情况并不少见。作为高级开发人员,我估计大约有5%的时间用于此类任务。

但是,如果您不进行任何编码,那么您可能应该与您的经理谈谈获取编码任务。毕竟,您想积累编码经验。作为程序员,您比作为系统管理员也更有价值。


1

如果代码没有正确地构建到应用程序中或无法访问正确的数据,那么它并不是非常有用的,因此您列出的活动似乎与开发人员的工作非常一致。我还应该补充说,软件开发人员在文档和测试方面也混在一起。这些是软件生产中必需的活动。

如果您的公司拥有可以为您做这些事情的专家,那就太好了,但是如果没有,软件开发人员将负责一切工作,直到(可能包括)将应用程序部署到生产中并在那里提供支持。


0

对于中小型公司的开发人员来说,承担一些服务器管理员/ DBA /常规配置任务是相当普遍的。

但是,如果这些任务开始成为您的主要职责,则取决于您的职业目标,可能需要担心。尽管您可能会以一般技术人员的身份在某些公司中壮成长,但是当您需要搬到新公司时,可能会在过渡中引起很多问题。如果您不进行任何传统开发,则需要确保在简历中清楚说明。如果您想在描述了一段工作经历后获得一份直接发展的工作,则您可能不得不接受一些您在行业中多年所获得的“超额资格”。

另一方面,可能有些公司正在寻找具有不同技能的开发人员。但是随着当前在面试中编写代码的趋势,即使您刚开始从事这项工作需要很少的代码,您也将需要具有一流的编码技能。

如果您不想卡在当前职位上,我一定会尽力纠正这种情况。

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.