首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为项目经理或非程序员的程序员?

作为项目经理或非程序员的程序员?
EN

Software Engineering用户
提问于 2014-01-26 19:42:52
回答 4查看 1.8K关注 0票数 7

我们是一个程序员团队,正在雇用一个只会成为项目经理的新员工。我们的项目只是编程项目,我们不知道如何决定谁将是项目经理的最佳人选。

我们能从我们的编程领域找到一位高级程序员吗?

或者我们必须找到一个正常的人(经济学或管理学)谁从来没有编码在他的生活?

编辑

项目经理will_

  • 为开发人员创建任务
  • 监视我们的票务工作流程是否受到尊重
  • 警告开发人员,他们是否跨越了估计的工作时间?
  • 管理每周财务时间表
  • 帮助客户并回答他的问题
  • 设置客户端和开发人员之间的会议(因特网会议)

和类似的东西。

现在,当我写这篇文章时,我发现这里没有IT任务。但是,客户会问些简单的问题,以及一个受过教育的It人员能够回答哪些问题呢?显然,我们不能一直为此困扰程序员。这是我们怀疑的主要原因。

EN

回答 4

Software Engineering用户

发布于 2014-01-26 20:11:39

经理的角色是什么?

第一个案例:团队和项目经理

如果他处理团队并组织项目如何完成,那么实际上,如果没有技术背景,这样的经理可能会成为一个真正的待遇,这将导致项目失败。对于这项任务,您需要一个了解以下内容的人:

  • 与其他工作相比,开发人员是如何工作和思考的:
    1. 他们的动机是什么?
    2. 为什么要尽快生产新的功能?
    3. 为什么比较两个开发人员的原始生产力是如此困难?
    4. 开发人员真正需要什么样的技能(如沟通技巧)?
    5. 等。

  • 如何管理项目,特别是:
    1. 什么是技术债务,为什么要将其考虑在内?
    2. 软件开发项目中减少风险的技术是什么?
    3. 迭代开发给项目带来了什么?
    4. 为什么不能立即交付可见特性的任务,例如重构,往往比仅仅交付另一个功能更重要?
    5. 为什么可以来回走,而不是朝着一个目标前进呢?
    6. 为什么“尽快解决这个错误”/“尽快交付此特性”在几乎每一种情况下都是疯狂的?
    7. 原型和坚实的生产代码之间有什么区别?
    8. 等。

  • 从一开始就应该把重点放在哪些方面。虽然一个经验最少的开发人员团队不会忘记进行单元测试或定期重构,但他们可能过于专注于自己的工作。有时,他们忘记了UX、安全性、部署或最终用户文档,仅仅因为这不是他们的工作,而当产品看起来不可用、不安全、对系统管理员来说是一场噩梦或缺乏基本文档时,往往为时已晚。它属于经理,以确定一个成功的项目所需的所有任务,并找到完成这些任务所需的资源。光有一群程序员是不够的。

第二个案例: IT与非技术世界

之间的中介

如果他的任务是确保技术人员和非技术利益相关者之间建立良好的关系,那么一个学习管理的人,但对技术人员只有浅显理解的人,可能是可以的。

即使如此,还是要选择一个了解软件开发的特殊性,并且已经对几个项目失败有过专业经验的人:雇佣一个把开发人员当作“玩电脑的人,却永远无法完成任务”的人将是一场灾难。

让我们考虑一下编辑中包含的要点:

为开发人员创建任务

那是什么意思?你是说用户故事吗?如前所述,如果不知道如何在团队中创建这些任务,就无法回答这些问题。

监视我们的票务工作流程是否受到尊重

如果不是,会发生什么?

  • 好的答案是:“回顾将用来找出哪里出了问题,以便解决之前的问题,并根据团队的速度调整日程。”这需要技术背景。
  • 糟糕的答案是:“项目经理会对团队成员大喊大叫,告诉他们要么开始更快地编程,要么会有人被解雇。”这不需要任何特定的技能。

警告开发人员,他们是否跨越了估计的工作时间?

见前几点。

管理每周财务时间表

这里不需要任何与IT相关的技能。但是管理人员应该意识到软件开发的特殊性,包括这样一个事实,即通常不可能预测一个特性的实现成本。

帮助客户并回答他的问题

比如“我们什么时候开下一次会?”不需要技术背景。例如,“在频繁丢失连接的情况下,是否仍然可以使用我们在上周讨论过的同步机制?”需要了解项目的内部工作。

设置客户端和开发人员之间的会议(因特网会议)

这里不需要任何技术技能。

票数 12
EN

Software Engineering用户

发布于 2014-01-27 06:05:49

TL;DR:替代解决方案-旋转项目领导

在我的工作中,当每个项目出现时,我们轮流进行项目领导。项目只是进入下一个版本所需的任何一组工作,而不是与实际的代码基绑定。领导负责所有必要的尽职调查,以使项目取得成功。未成功开发,但已成功发布和部署。这意味着领导必须与运营、客户、其他涉众和程序员协作。

为什么要这么做?我发现这有一些好处。作为一名首席工程师:

  • 一旦业务问题得到很好的理解,他们就可以轻松地分解完成项目所需的任务。
  • 它们通常可以提供开发成本较低但满足业务需求的替代方案。
  • 他们更有可能知道最危险的地方(至少在开发中)。
  • 开发团队之间,甚至更大的技术团队之间,误解的可能性更小。
  • 对于没有明显的跨团队依赖或协同开发的项目,项目通常可以更早更快地启动。
  • 熟悉代码库可以进行更准确的计划和开发,并了解哪些事情可能会花费大量的时间,然后才能与客户沟通。

我不能强调,上述几点对于我过去从事过的、遵循这种模式的各种业务来说,有多大。

这对可能成为项目负责人的人提出了特殊要求。

  • 他们需要能够看到更大的图景,并能够在微观和宏观之间进行转换。
  • 他们需要能够与客户和其他非技术人员沟通。
  • 他们需要和别人好好合作。
  • 他们需要了解如何分解一个项目,以便完成其他工作。
  • 他们需要考虑部署和运行软件所需的内容。
  • 他们需要与运行软件的人一起工作,并在整个项目的整个生命周期中与他们合作。
票数 2
EN

Software Engineering用户

发布于 2014-01-27 12:58:17

一个好的项目经理将专注于您正在生产的产品--它满足了需求,并将为这些需求提供指导。他还将为团队提供组织,这样它就能在重要的事情上富有成效地工作。

你需要这样的人吗?如果是这样的话,一个以商业为导向的家伙更有可能习惯于这种角色。

高级程序员在管理客户、他们的需求或组织团队方面可能没有足够的经验或技能。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/225569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档