作者是各自领域的专家,并就其所展示经验的主题撰写文章. 我们所有的内容都由同一领域的顶级专家同行评审和验证.
伊桑·詹姆斯的简介

Ethan James

Ethan是一个热情的Javascript开发人员,写得很干净, 语义HTML5和CSS3和它所构建的网站一样响应.

Years of Experience

14

Share

这篇文章是给你的, 一个勇敢的企业家,心中有一个申请的想法,银行里有一点钱. 你在餐巾纸上涂鸦的图表将扰乱整个世界, 满载现金的卡车已经送到你家了. 确保他们准时到达, 这里有一些简单的技巧,使您的生产周期顺利运行.

你需要项目经理的原因

“计算机程序是人类创造的最复杂的东西”, dice Douglas Crockford. 你可能以前没听说过这个名字,但对于一个程序员来说,它很有名. 他目前是PayPal的高级软件架构师, 并开创了各种各样的尖端技术,这超出了本文的范围. 他对如何在大型项目中工作有很多知识.

En cuanto a mí, 我已经编程13年了,仍然有一些时候,每个项目都把我带到一个未知的领域. 有很多不同的技术, 就像以惊人的速度设计的新技术一样, 我从来没有觉得我完全意识到发生了什么. 虽然每个项目都有其独特的挑战,但也有一些不变的挑战:

  • 这个项目有时间的压力.
  • 预算比我想要的要小.
  • 我的费用比客户想要的要贵.
  • 我的听力不像客户希望的那样完美.
  • 客户没有像我希望的那样完美地解释事情.

显然,我们需要一个保姆. 必须有人介入制定游戏规则, 让每个人都诚实,确保我们没有忘记一些重要的事情. 必须有人促进各方之间的沟通.

这个人,这个英雄,就是项目经理.

为什么产品经理是一个盒子? Él es un gato. 猫喜欢盒子.

当我开始写这篇文章时,Toptal并没有提供与项目经理的合同, pero ahora si lo hacen. ¡Sinergia! 我只能想象阅读下面的建议所带来的力量,他们意识到他们错过了一个大好机会.

程序员不是好的项目经理的原因

把认证放在一边 项目管理学院(项目管理学院),项目经理能带来的最重要的东西就是经验. Como resultado, muchos programadores serían gestores de proyectos bastante decentes; tenemos más experiencia que nadie con proyectos técnicos y nuestras mentes analíticas son expertas en la catalogación de información y el establecimiento de objetivos concretos.

显然,你支付给我们的钱足够让我们合理地期望自己能够管理不同的任务,而不是强迫自己支付别人的时间, ¿verdad?

嗯,首先,你付钱给我们编码.

当我们从编程的麻木中走出来,决定优先考虑什么, 或者讨论本周实际要做的工作数量, 代码停止编写. Después de esto, 返回“区域”至少需要10分钟, 尤其是当我们刚开始的谈话给我们带来压力的时候, que es probable, 特别是当我们讨论函数的优先级时. No es gran cosa, lo sé, 但所有这些都是为了更有效地利用昂贵的资源.

最重要的是,关注细节并不能让你欣赏大局. 如果这篇文章没有给你留下任何东西, 试着理解这一点:当我花了一整天的时间研究一些特定的bug时, 我的大脑看不到更大的图景.

当我修复这些漏洞时,我的大脑会奖励我, 我想我已经做了伟大的事情,现在我可以去玩电子游戏了。. 当有人提醒我主页还是不工作的时候, 这是一个完全的惊喜,因为我花了一整天的时间在我的大脑中填满了整个项目中非常小的一部分的非常详细的知识, 我忘记了其他的一切. 这就是我的大脑工作的方式, 许多其他程序员也有类似的心理结构.

脾气暴躁的猫程序员不能成为一个好的项目经理.

当我们从编程的麻木中走出来做决定的时候, 代码停止编写.

客户不是好的项目经理的原因

Pues bien, 如果我们程序员不想承担项目管理的责任, 然后责任落在你身上, el cliente. Es tú dinero. Es tú visión. 无论如何,你要对这一切负责.

然而,你也有很多事情要做.

许多客户都是日常工作的凡人, 就像我们其他人一样, 有些人甚至患有拖延症或健忘症. 虽然这肯定不是对你的描述,但请考虑拥有一个 专业Rememberer (专业回忆者)周围, 这样你就可以回到让项目保持活力的重要工作中去.

Si has trabajado en, o supervisado, 类似范围的技术项目, 也许你是一个很好的项目经理. Si no es así, por favor, 不要低估那些能预测可能出现的问题的人的价值. 时间估计总是只是估计,错误往往会在最不合适的时候出现. 是否值得其他(即使只是兼职)员工付出代价, 知道流程中需要哪些部分的人, 或者他们可能需要, la mayor atención.

例如,做质量控制. 适当的质量控制对于从任何项目中得到你想要的是至关重要的, 这从来没有得到应有的关注. 一个好的项目经理将充分利用有限的质量控制资源,并确保程序员的质量,以确保您的安全. 有时我们会偏离我们的深度,有时我们会犯错误. 需要一个技术上有能力的人担任监督角色,以确定您的程序员是否有一个糟糕的一天, o si él o ella son, de hecho, 这对项目来说是一个糟糕的补充. 从一开始就纠正人员问题可能会让你的项目生死攸关.

Por último, incluso tú, oh glorioso cliente, 有时你需要一点验证和/或平衡. 这对我来说很难写, ya que nosotros, 我们程序员并不以直言不讳而闻名. 我只想说,我参与过许多项目,在这些项目中,客户确信一切都是最优先考虑的,绝对有必要实现一切. 虽然我毫不怀疑这是绝对正确的, estos clientes, por desgracia, 他们无法控制一天的小时数. 他们没有得到他们想要和/或应得的积极结果, 我觉得这个结果是可以避免的,如果客户给了一个项目经理的权力来评估工作量,并且非常机智, pero con firmeza, 保持事情在控制之下. 大多数技术项目所需要的不幸的个人判断决定是很难做出的, 当你的想法和你的钱处于危险之中,电脑不在乎你或我是否哭泣和尖叫. (我知道这是真的,因为我已经试过很多次了).

管理技术项目的不完整的技术清单

你是否决定忽略超过1个.你想自己管理你的项目, 或者如果你要雇佣某人, 但你想了解更多的过程, ésta lista te ayudará. 我从未(正式)担任过项目经理, 所以我不能说任何项目经理会使用什么工具, 但我在所有这些技巧上都很成功:

Milestones

当开始一个新项目时, 大多数人直观地知道,将项目分成稍微易于管理的部分是很重要的, 就工作而言,每一份工作可能从几周到几个月不等. 在项目开始时, 有一个初步的会议来设定这些里程碑或具体的点是很好的. 对你将如何到达那里有点模糊也可以, 最重要的是在每个阶段之后进行监督, 为了从对项目的理解中获益, mejorada, 并确保项目阶段(或多或少)与最初认为的规模相同.

时间的估计

我们程序员绝对讨厌估算, 因为我们知道他们会出问题,会被用来对付我们. 他们错了也没关系,因为根据定义,他们是基于一堆谜题. 他们被用来对付我们也没关系, 因为我们的工作很舒适,你不会因为偶尔感到压力而失去任何东西.

所以,当你开始一个新阶段的工作时,不要犹豫,询问估计. 您应该期待对每个重要特性的一两行解释, 以及对该功能所需时间的粗略估计. 我通常会做出乐观的估计,然后翻倍. 很多时候,这些额外的时间都花在了看不见的障碍上.

Historias de Usuario

用户故事是对应用程序中单个功能的简短描述. 作为重要特征的记录是有用的,应该是一口大小, 能够适应一个插头和, a menudo, 伴随着一幅小画. Más importante aún, 它们充当了客户想要什么和程序员必须告诉计算机什么之间的桥梁. 这些故事对你来说足够简单, el cliente, 几分钟内你就能理解了, 但足够详细,让我们, los programadores, 我们可以充分利用你.

对于一些关于用户故事的快速信息,我发现这些教程 Mountain Goat Software y Roman Pichler,质量高,简洁. 了解更多关于“敏捷项目管理”的整个理念, 试试Toptal的这篇博客文章 敏捷项目管理的终极介绍, de Paul Barnes.

创作(Mock-ups)

这不是一篇关于为什么你需要设计师的文章, 因为我觉得大多数客户都明白这一点, 但这是值得重复的,因为如果你向程序员展示一个精心规划和具体的设计,你会看到巨大的生产力收益. 每次我们必须做出设计决定时,我们都必须离开“区域”, 每次我们需要回去改变一些东西, 因为我们没有得到最终的草稿, bueno, 把账单拿出来,我不是在抱怨, 因为设计很有趣, pero en mi experiencia, 这是可以避免的额外计费小时的头号来源.

大多数设计师提供构图, 在Adobe Photoshop中也被称为“comps”, Adobe Illustrator或Sketch. 如果你自己做,你可以使用无数的在线工具之一,比如 Balsamiq o InVision. comp不需要有与成品相同的颜色和样式(因为这些可以很容易地在以后更改), 但是请花额外的时间来确保所有的ui元素都存在并经过验证.

Reuniones Stand-Up

长时间的会议有时是不可避免的, 但是不要让你的程序员负担过重,也不要占用过多的时间. He tenido clientes que parecían esperar que me acordara de todo lo que se dijo durante una reunión de dos horas y media; estaban muy decepcionados. 单口相声会议通常限制在15分钟内, 在这个过程中,你习惯了站着. 站立的事实应该确保每个人都参与进来, 以及保持会议简短.

Durante stand-ups, 每个人都绕着圈来做一个简短的情况报告, 让所有团队成员了解彼此的进展. 有关UPS支持的更多信息,请访问 ExtremeProgramming.Org. 如果每个人都远程工作,你不想每天都在Skype上见面, 你可以使用一个有趣的工具,比如 15Five,作为站立的替代品. 允许团队成员在方便的时候提供他们的意见, 你会问一些调查问题来获得更深入的答案.

Ticketing System

虽然任何人都可以保留一个便利贴和谷歌文档系统(每个任务用不同的颜色突出显示), 真的没有必要. 很多人都试图为你解决这个问题. Basecamp和Trello以其易用性而闻名, 而Pivotal试图将整个“敏捷”哲学封装在一个非常复杂的包中. 无论你的选择是什么,一个好的票务系统至少会让你:

  • Crear tareas
  • 分配优先级和交付日期
  • 链接任务和子任务
  • 分配不同的分辨率,如“完成”或“测试失败”
  • 显示分配给给定用户的所有任务

当项目经理向您展示40张亮红色的高优先级票据时,这些票据必须在当天交付, 你会真正理解这个项目愿景的价值.

你不需要使用便利贴来跟踪bug.

Control de Versiones

也许您甚至看不到项目版本控制系统中的代码, 但是版本控制(或版本控制)是我们拥有的最重要的工具之一, 可以想象到的最大备份系统.

大多数现代项目都使用Git, 但是,当您在公开发布一段时间的项目上工作时,有时会遇到Subversion (SVN). Github 允许您免费托管无限数量的公共存储库(以及, 包含世界上大多数开源项目), mientras que Bitbucket 允许托管无限的私有存储库,因此是商业项目的首选.

无论选择什么版本控制系统, 它远程存储我们的代码,以防发生任何事情, 以及每次我们“妥协”代码时的跟踪, 同时要求我们写一条简短的信息来描述我们正在做的事情. 这可以防止不同的开发人员覆盖彼此的代码, 允许我们查看在给定时间内所做的所有更改, 并允许我们创建新的代码分支来存储不会立即上线的特性. 它甚至有一个名为“culpa”的命令,显示谁对某一行代码负责, y cuando se cometió.

版本控制是最好的.

基于测试的开发

这是一种相对昂贵的做法, 这意味着它不经常用于预算限制为几个自由职业者的项目. Así que para comenzar, 你不应该因为不这样做而感到非常难过, 但我得向你介绍一下这个想法, 因为它提供了对抗bug的最佳防御. Básicamente, 您的程序员花费宝贵的额外时间编写测试(小代码块),以确保应用程序的某些部分以特定的方式运行, predecible y repetible. Por ejemplo, 你可以写一个测试,确保当你点击“登录”按钮时, 打开一个弹出窗口,其中有一个用户名字段.

证据的美妙之处在于,一旦我把它们写下来, 我可以用一个命令运行它们. 如果我有200个笔试, 我可以在应用程序的新版本发布后运行它们,以确保200个特性中没有引入bug. No es perfecto, 但这是我们能达到的最接近保证应用程序没有bug (bug-lite), por lo menos).

Para Cerrar

这就是我对项目管理所知道的. 我不确定有多少人能通过项目管理学院的考试, 但这是我在过去十年里通过网络项目收集到的所有材料。. Por supuesto, 我建议你雇佣一个人,以便从他们的经验中获益, 但我希望这些信息是有用的,即使它不是你有机会做的事情. 你将是这个项目的最高权威, 所以你对它的内部运作了解得越多, 你越有可能带领他走向胜利.

在这个话题上聘请一位顶级专家.
Hire Now
伊桑·詹姆斯的简介
Ethan James

Located in Brooklyn, United States

Member since December 6, 2015

About the author

Ethan是一个热情的Javascript开发人员,写得很干净, 语义HTML5和CSS3和它所构建的网站一样响应.

Toptal作者是各自领域的专家,并就其所展示经验的主题撰写文章. 我们所有的内容都由同一领域的顶级专家同行评审和验证.

Years of Experience

14

世界级的文章,每周交付.

订阅意味着同意我们的 privacy policy

世界级的文章,每周交付.

订阅意味着同意我们的 privacy policy

Toptal Project Managers

Join the Toptal® community.