(最初于2014年6月12日发布在macoscope.com/blog上)
我一生都是软件开发人员,但是大约两年前的一天,我换了首席执行官的职位,并用Xcode和vim交换了Google Spreadsheets和Apple Mail。
虽然这个故事可能有点不寻常,但许多软件开发人员正在创办自己的公司或成为某种形式的经理,这在很多方面与我所经历的相似,尽管这种转变并不总是如此。极端或突然。
在这一小部分中,我想分享我在过渡期间的一些经验以及回顾的经验教训。 我希望它对你们中的某些人有价值。
- 现在很忙? 稍后阅读您的文章,而不会丢失或忘记!!!
- 优化大脑表现的4种简便方法
- 2017年挑战自我的52种新方法
- SaaS播客:退出Facebook如何帮助Fred Stutzman建立自由
- 成为更好的学习者:– Humaira Bashir –中
通常,软件开发人员的日子是这样的:

有时,令我们沮丧的是,有一次会议发生。 考虑一下Scrum站立式或其他与项目相关的讨论。 如果有计划,那会更好,但是即使有计划,在我们今天的第一部分中,我们仍然感觉“我们没有太多时间”,然后,“实际上没有足够的时间来开始非常复杂的工作了。问题。”

就高效工作而言,这样的日子远非完美。 没有开发人员喜欢在困难的事情上被打扰,并且知道这种大的打扰将要发生,这会严重损害我们的生产力,这是毫无疑问的。
如果您到目前为止与我在一起并且一致同意,请查看第二天的计划。

实际上应该看起来像这样……

……这几乎就是我现在的日子。
开发人员的噩梦,对吧? 我觉得是这样的。 因为这是编制代码与领导(或管理)组织的工作周期有何不同。 我并不是说任何一个都比另一个更难。 我只是说这两者是极端不同的,因此需要完全不同的方法。 至少出于您的理智。 如果您完全不用担心疯子,并且喜欢不断地,意料之外地打扰自己,那么就不要再继续阅读了。
如果不是这种情况,请允许我指出一些我通过艰难的方式学到的东西(因此您不必这样做):
停止编写代码。 现在。
在我与Daniel(我们的首席执行官)交换职位之前,我正在管理两个团队的两个项目,并为我们的一位客户提供部署支持,同时一直努力保持Code Pilot的维护。 因此,即使过渡到新职位并不是一朝一夕的事,而且我正在逐步接管Daniel的职责,但我很快就到达了一个要履行大部分“旧”职责的地步。 在我本应提供的代码中尤其明显。 “哦,这是个小问题,让我在通话之前自己做” –我会说。 最后,大多数情况下,要么呼叫失败,要么代码不存在。 实际上,这两种情况越来越普遍。 如果我要指出当时最大的挫败感根源,那将是我不完全放弃Xcode。
所以停止。 停下来。 卸载IDE,删除所有文档,地狱—如果有帮助,请放弃编译器。 没有小的修补程序,没有快速的构建。 不。 请别人去做。 向他们展示他们是否不知道怎么办。 如果最初需要花费更多时间-很好。 告诉人们他们必须等待。 至少您将有时间告诉他们一些事情。 下次,它将变得更加容易。 每个人都会知道您还是无法做到。 没有编译器,还记得吗?
井井有条并提前计划。
如前所述,在时间管理方面,成为开发人员相对容易。 您不一定需要复杂的任务管理系统。 截止日期,优先级,提醒,预定的活动,会议,文书工作-并非如此。 您所需要的只是一个管理良好的项目,一个问题跟踪器,优先任务,仅此而已。 这是很常规的东西。 您只需要对所有内容进行编码,一个任务一个任务,一个冲刺一个冲刺。 也许甚至有人在监视您的时间,将所有新内容保留到下一次迭代为止。
对于经营公司的人来说,这是非常不同的。 你需要出去见人。 未雨绸缪。 确保有时间到达那里。 在那儿呢? -嗯,与此同时可能发生一百万件事。 有人生病,有人需要加薪,提出新项目,重新安排电话,轮班会议,进行新文书工作。 并不断。 然后,回到办公室,当您坐在办公桌前思考“现在我终于可以做一些真正的工作了!”时,此时会弹出电子邮件通知,您首先需要处理200项新工作。 在您甚至还没有开始缠头之前,有人就敲了您的门,想要讨论一些事情,或者“只是问一个简单的问题。”而且您必须对人友善,还记得吗? 充满爱心,热情并且总是带着微笑。 即使那一刻你想要的只是将所有鲍尔默放在他们身上。
您必须找到一种方法来管理该混乱,即使它感到不堪重负。 我尝试了很多东西,但是只有少数东西能坚持下去。 所有这些都非常简单:
- 收件箱归零-做到这一点。 去做就对了。 答复,删除或转换为任务和存档。 不要把它放在那里。 您的收件箱不是您的工作清单。 真。 对我来说,“收件箱零”是迄今为止感觉更井井有条和掌控的最简单方法。 我还尝试了Yesterbox技术,并时不时地使用它,尤其是当事情变得非常艰难时。
- 事物-我喜欢它,但我讨厌它,但总是在一段时间后回到它的身上。 简单,iOS + OS X,同步效果很好,并且非常灵活。 对我而言足够了。 在功能和设计方面落后于竞争对手,但如果您知道自己想要什么,还是会削减。 如果您不喜欢Things,请查看OmniFocus。
- 日历-绝对不是软件开发必不可少的工具,但是对于管理您的时间来说非常重要。 这里没有太多要解释的东西,要知道什么时候必须发生什么。 另外,将其与您的同事共享,以了解谁不在办公室,何时不在办公室。 在活动注释中保留您的Google Hangouts链接或地址。 而且,请不要手动计算时区差异。
- 提醒或Due.app-让我们面对现实-没有人整天盯着日历。 迟早会有一些东西被遗忘,警报配置错误,混淆,延迟。 但是对于非常重要(或重复)的事情,请使用Due Due bug you。 一段时间后,您可能会开始讨厌提醒,并感到自己像奴隶一样。 在此之前,请学习使用它们以发挥自己的优势。
- 实际管理您的时间-停下来思考一下自己的时间表。 一周中的哪一天最适合开会? 您什么时候最有效地回复电子邮件? 早上还是在床上睡觉? 刚到办公室后? 最好的时间做更多有创意的东西怎么样? 从事合同工作? 您何时更喜欢拨打电话? 尝试建立例程,并利用它们发挥自己的优势。 这将使事情变得容易,或者至少减轻压力。 宇宙将调整。
- 计划并同步交流-而不是在您每次有渴望去做的时候随机安排别人问他们问题并检查事物的状态,而是安排一个简短的,每天或每周的会议。 另外,请准备好议程,这样您就不会浪费每个人的时间在不重要的事情上,同时讨论所有问题。 试用您的日程安排。 您真的每天必须在办公室吗? 也许只在星期二和星期四可以吗? 考虑一下在家里(或咖啡馆)呆几天,在安静的环境中做所有需要集中精力的事情,剩下的一周时间与同事开会,交流和闲聊。 当您停止尝试同时适应这两种截然不同的活动时,您会感到更加放松。
- 专注-如果您在注意力集中和完成任务方面遇到问题,则可以使用某种方法来解决此问题,至少可以在某种程度上进行。 查看Pomodoro技术(在下一篇文章中,我将写更多有关如何在工作中使用它的信息),Focusbar(免责声明:这是我们的应用程序)以及使自己摆脱Facebook,新闻网站和其他干扰因素的方法。
有大量出色的时间管理技术可用,甚至有更多与此主题相关的应用和书籍。 我本人建议从经典开始:斯蒂芬·科维(Stephen Covey)的《高效能人士的七个习惯》和大卫·艾伦(David Allen)的《把事情做好》 。
阅读两者,并尝试实现似乎最简单的一些事情。
代表井
“高管自杀的最可靠方法就是拒绝学习如何,何时以及向谁委派工作。” —杰西·彭尼(JC Penney)零售连锁店的创始人詹姆斯·卡什·彭尼(James Cash Penney)。
委派似乎是新手经理的第一要务。 优秀的程序员经常说:“我会做得比别人更好。”这可能是对的,因为当您擅长某些事情时,您会追求完美,而成为开发人员通常会将您排在任务食物链的末端。 很自然地,您或您的同伴的IDE就是您要做的事情。
很难委派任务的原因不仅是让其他人先执行您板上的内容似乎效率低下,而且还需要放弃该过程。 您不能继续告诉人们如何做他们的工作,因为那样的话,那真的只是浪费时间。 您需要告诉他们预期的最终结果是什么,可用的资源是什么,以及最终如何评估执行情况。 那放开 不要微观管理。
顺其自然,如果做得正确,事后你会感到一阵惊喜的惊喜,重担从肩上抬起,让人感到非常高兴,有人可以和你一样好,甚至更好。 一直以来,您都在完成另一项任务。 我认为,这是我们最接近两地分配的条件。
切记从委派开始-在开始执行任何任务之前,请先考虑一下组织中没有其他人能比您做得更好。 或者,至少有人会妥善处理此事。 并认真思考,因为不认识这仅仅是基本授权问题的另一方面。 它在您的任务列表上,因此显然您应该是这样做的对象,对吗? 错误。 即使您无法提出其他人将任务委托给您,也许您尚未考虑在公司中担任职位? 进行调查。
如果您有兴趣学习更多有关良好的委派方法的知识,我想再次推荐由斯蒂芬·科维(Stephen Covey)于25年前撰写的旧的《高效人的七个习惯》 。
或Google“管理委派”。
码。 不过要小心。
当我说您应该停止编写代码时,我的意思是您不应再专业地进行编写。 由于开发人员的工作与执行人员的工作之间存在根本性的差异,您根本无法承诺基于代码的截止日期并可靠地按时交付。 正如您使用的工具不同,您的优先级和关注需求也不同,即使潜入的熵也不相同。
话虽这么说,您仍然可以并且可能应该利用自己的开发技能来发挥自己的优势。 成为开发人员执行人员可以带给您巨大的领导优势。 您可以快速整理一个脚本,以帮助您测试假设,使日常生活更加自动化或提高工作效率。 少量的代码也可以保护您的业务和/或您自己的福祉和绩效,并在每次变得太疯狂时提醒您。
最好坚持使用工具箱中的一种工具。 您将没有太多时间跟上该技术,因此只需选择其中一项即可。 我本人发现Ruby是一种完美的通用语言,可以帮助我完成各种各样的事情,但是只要拥有许多开放源代码库,任何高级语言都可以使用。
让我列出到目前为止我做过的一些事,这些事对我有很大帮助:
收获报告
由于我们以小时为生,并按小时收费,因此我从事iOS和OS X开发工作,所以时间==金钱,就是为了赚钱。 每个人都记录他们在Harvest中从事特定工作所花费的时间。 我需要知道我们“赚了”多少钱,人们的表现如何,以及所有项目在发展速度方面是否都步入正轨。 我绝对可以从登录Harvest并通过几个报告获得所有这些信息,但是我们需要一直保持最新(至少每天一次)。 因此,我创建了一套脚本,每天早上向参与项目管理的每个人报告以下参数:
- 谁花了多少时间工作并产生了多少收入?
- 实际上有多少时间是可计费的(不是内部分配,开源等)?
- 每个项目总共花了多少时间,这带来了多少钱?
- 那天的“可结算性”是什么(占可结算时间的百分比)?
- 产生了多少收入?
- 图表中显示的上述所有数据与前7天的数据如何比较?
- 你知道吗? 这很棒。 早上我要做的第一件事是快速浏览收件箱,然后打开我们的收成报告(尤其是较长时间的图表,记录趋势),我已经知道我们的工作状况。
就在最近,我将脚本连接到Google Spreadsheet文件,在该文件中,我们尝试根据每个人和每个项目的工作来建模需求。 这使我们能够立即查看某人是否工作过多(或不足),以及我们是否在每个项目上共同花费了约定的时间。
实际上有三个这样的脚本–每天,每周和每月一个。 他们每个人都显示了我们相对于几天,几周和几个月前所做努力的当前绩效。 以及每个参数距计划路线有多远。
AppFigures审查报告
这是团队中每个人都能得到的。 该脚本使用AppFigures API查找新评论,并将其每天发送给我们。 很好地完成了星星,旗帜,翻译等等。 我决定从我们的用户到整个团队开放“打脸” /“欣赏烟花”之流,所以每个人都有机会在乎。
Twitter警报
几年前,在诸如say.net之类的社交监控工具问世之前,我们想知道我们的小营销技巧是否奏效。 Twitter对我们而言非常重要,因此我决定编写一些简单的东西,以报告我们想知道的所有内容(通过正则表达式)。 我很快就做好了准备,当有人提到我们的一个应用程序时,它立即通知了我们。
招聘
这是我要打开TextMate的最新操作之一。 我们正在成长,并一直在寻找出色的iOS和OS X开发人员。 我创建了一组脚本,可以在github上查找人们并检查他们是否符合我的要求(已加注/观看过的与我们正在使用的技术相关的存储库的百分比,活动,声誉,位置); 如果他们看起来不错,我会尝试与他们联系并邀请面试。
Twitter也是如此-我查找他们是否关注iOS超级巨星,谈论或偏爱有关Xcode,iOS的推文以及我感兴趣的位置的推文-如果这样做,他们很有可能会收到邀请尽快而不是后来从我那里进行面试。
我可能会将两者合并为一个,并同时添加一些LinkedIn自动化。
只需认真学习以下引文,并在开始下一个小项目之前始终重复三遍即可; 它将帮助您完成日常工作:
“如果您仅有的工具是锤子,我想把所有东西都当作钉子来对待是很诱人的。” —迈向存在心理学的亚伯拉罕·H·马斯洛
请记住,如果您在成为高管之前已经是软件开发人员多年,那么您自然会倾向于基于代码的解决方案,而不是领导人员。
我一生都是软件开发人员,但是大约两年前的一天,我换了首席执行官的职位,并用Xcode和vim交换了Google Spreadsheets和Apple Mail。
(最初于2014年6月12日发布在macoscope.com/blog上)