Jackson Simmer在Unsplash上拍摄的照片
早期:当我进入软件行业时,我是一个低级的编码员,完全没有生产力。我每天在办公室呆了12个小时,什么都没送。
我在AOL/Yahoo聊天室闲逛吗?我是在为其他公司/客户兼职吗?我从9点到6点和同事聊天了吗?

我对这些选择不是很兴奋。
当最后期限迫在眉睫时,我(经常和其他一些开发人员)在团队会议上被挑出来。没有侮辱。团队领导会居高临下地给我指派一名助理(主要是小组领导),他将握住我的手,直到我在截止日期前交付。
原因?现状
尽管没有写1%的LOC,但那个集团的领导会窃取我年度评级的一部分。
交货结束后,我会问自己:发生了什么事?现实曙光了:专题片定于2周后发布。我只在截止日期前2天就掌握了我的依赖关系。
我没有勇气在下一个功能分配中强调它。原因?现状:只有小组领导才能规划工作流程,工作流程如下:
第0天:向开发人员分配功能/错误第1-N天:开发人员与组长一起澄清要求,小组负责人将成为客户和开发人员之间的渠道。没有关于嘲笑缺失部分的讨论,因为包括团队领导在内,没有人知道软件开发中存在这样的事情。第1-N天:如果开发人员凭直觉想出一个模拟策略,突变规格将使其无效,客户将因突然的需求变化而受到(内部)的指责。截止日期减去2:所有依赖项最终得到解答,编码开始截止日期:交货或失效小组负责人设计了开发工作流程,如果没有他在场,针永远不会移动。
这种程度的勺子喂养+依赖地狱是卑鄙的。我讨厌自己需要它。但我无法改变这个工作流程。我甚至不知道考虑改变它是我的工作。
它之所以存在,是因为业务是围绕着琐事构建的。我的小组负责人接受了客户的要求,需要一个填充物来证明他每天10小时的账单是合理的。因为他是一个负责任的高年级学生,这项任务必须看起来值得他付出代价,尤其是我们所有人——他的爪牙。
为了使其发挥作用,他狡猾地编织了一个错综复杂的依赖网络,并成为最有价值的交付品——代码的唯一中间人机构。
源代码控制密码?向他提出请求。他会在一两天内为你得到它。开发数据库的唯一访问权限(而不是经常最大化的共享访问权限)?尽快通知他。他将咨询访问经理(再次,一个座位加热计费设备),决定必要性级别,并分配它。客户端错误跟踪访问?哇,你必须对客户可见。别忘了:我授予了访问权限!
如果开发人员在规格中发现错误,她将无法直接更新它。她必须私下通知组长,以保持他在团队组长面前的出色身材。代码?都是你的,小子们!
你犯错了吗?拥有它!
这是一种领导力品质,你获得报酬是为了获得MBA,干杯!这是一家技术离组织中心最远的服务公司。如果有人技术熟练,这并不意味着他会和开发人员坐在一起,在一天内进行故障排除或编写一个简单的算法。这只是意味着他/她能够用装有技术术语的红色和蓝色盒子进行PowerPoint研讨会。如果有人问起编程/配置问题,他/她会回避这个问题,经常贬低询问者(这个会话不是针对低级的东西!
)当我被分配到美国的一个客户站点时,我遇到了竞争对手的咨询同行。那时,我了解了开发人员应该有多少足智多少,以及他能凭借这种足智多少成长。
在客户现场,如果我们收到不完整的要求,我们可以拒绝客户,他们会微笑着离开,却带着V2回来。如果我们不了解业务,他们会和我们坐在一起几个小时,经常试图了解我们将采用的编程结构。
这些都不是竞争性/激烈的——而是普通的好奇心、知识共享,最重要的是,发现有能力和敬业的人。
就在那时,我想辞职。
但这很难。作为一家客户驱动的服务公司的低级承包商,我无法控制我的日常事务。在某种程度上,由于荒谬的美国移民法,客户无法控制我的命运。
我的服务公司老板做到了。
对世界来说,我是一名程序员。但在内部,我觉得编程是只有美国宇航局科学家才能执行的功能的名称。此外,创建MS Office的开发人员。或者窗户。或者雅虎和AOL信使。是的,Hotmail。
我想加入他们的公司。但我看不到清晰的道路。获得学位似乎太令人生畏了(我一开始就没有CS)。这很昂贵。它还需要9点到7点以外的严格准备——由于我的服务公司肆无忌惮的簿记,我通常的例行公事。
在沿着客户郁郁葱葱的伊利诺伊州办公室长途散步时,我一直在思考我想用我的职业生涯做什么。
这从来都不是钱。是的,金钱是驱动力,但仅限于阻止某人掌控你的职业生涯。拥有一份高薪工作会增加你对忘恩负义的老板的影响力。然而,向上看,对于程序员来说,桌子上没有太多的钱,除非你是一个浮夸的初创公司创始人。
但最重要的是,在屏幕上看到我的工作结果的魅力吸引了我,让我看到了这一行工作。是的,这是编程。
我想辞掉我的工作,但不是编程。
我鄙视自己在服务行业。
我决定质疑那个全盛会和不工作的中间人。我想表现得像我的竞争对手顾问一样,他们可以在2小时内编写功能,过去几天的需求更改、头脑风暴、思维导图和精神解构/重建对象/功能树。
我想用心了解编程,以证明我超越那些肮脏的中间人的立场。
我有一个选择:我可以等待轮到我成为高级组长——这就是我所鄙视的角色。我可以选择成为一个更好的人。
但如果不知道什么能形成更好的程序员,我只会进行辩解之争。我在服务环境中失去了所有的勇气。
在服务行业工作了7年(这只教会了我我不想做的事情)后,我决定追求产品路径。
产品路径—快进到敏捷时间:第一家产品公司在糟糕的政治中占有公平份额。它很糟糕,但工作的最佳部分仍然突出:代码是高质量的,多层的,很好的解耦的,并且可以高度配置外部工具。
最棒的是,我有无限的时间在上面。这使我能够发现设计模式,创建对象关系,并为可扩展设计实现系统思维。
当我因为政治不好而离开那家公司时,我的血液仍然非常喜欢编码。
我成为一名全职自由职业者,随后在北欧产品公司担任了一系列角色。起初,一切都很顺利。开发商统治了。
但很快,金钱之河就干涸了。公司被收购或失去客户。事实证明,他们都没有采取具有成本效益的措施来保持在市场上的相关性。
他们都没有遵循敏捷。
我一加入这家伟大的敏捷驱动的产品公司,就被会议淹没了:JIRA门票、每日会议、冲刺计划、冲刺复古和PI(计划增量)活动。
感觉很好。敏捷宣言自豪地声称开发人员发号施令。我觉得很重要。
没有中间商,只有开发人员对产品所有者。
是的,有一些糟糕的敏捷组织不为开发人员提供任何东西,开发人员对一切负责。
然而,优秀的敏捷组织用足够的材料武装了他们的开发人员:设计输入、精心制作的规格、经开发人员同意计划的冲刺——人们还能要求什么呢?
我很幸运能成为一个好的敏捷组织的一员。
作为开发人员,我们有令人兴奋的事情要做。这里有一个小部件,那里有一张图表。子屏幕中的可扩展列表,由于有足够多的客户无法单击它,因此进行了反转。
然而,有些事情出了问题。我们所拥有的特征缺乏任何连贯性。通常,我们发现自己帮助分析师纠正事情,这增加了我们的辛酸,因为分析师无法通过编码来回报任何帮助。
是的,我们可以要求更多的时间,但它有其局限性。如果网络平台团队在3个月内交付(因为他们可以找到开源组件),移动平台团队(均为原生,因此是独立的)将被迫匹配该时间表,否则整个上市时间指标将受到影响。
分析模块是一个孤儿代码,其开发人员早已离开,存在巨大的差距。结果?每个团队每个季度都会提供令人兴奋的东西,但业务分析师无法衡量它。
没人想修复它。因为分析是一个非功能性的要求,没有人拥有它。
产品与实施的作用分离是一成不变的。尽管程序员有能力,但该产品仍受到这种刚性的影响。
产品所有者太有创造力了,没有发现如此简单的瓶颈。他们不断提出我们的竞争对手窃取的功能想法,并以某种方式赚了巨额钱。他们很少认为,由于低转化率加上核心业务,用户获取和参与度——是当今时代任何产品成功的基本原则,往往没有货币回报。
要真正了解为什么一个功能有效/无法工作,需要深入+诚实的用户调查——这是任何公司都无法衡量的指标。评论只是触及了表面。
在他们天真的头脑中,PO认为开发人员是敏捷宇宙的主人,并且有足够的武器来完成他们的工作。如果开发人员认为一个功能很复杂,他/她可以延长截止日期。开发人员总是可以控制他/她如何交付X。但考虑到A、B和C过去已经交付过,他不能说必须交付Y和Z而不是X。产品与实施的作用分离是一成不变的。尽管程序员有能力,但该产品仍受到这种刚性的影响。
因此,尽管有非常强大的业务层模块和广泛的原始UI组件,但该产品未能对客户产生巨大的影响。
作为开发人员,我们经常梦想着我们的新组件出现在一些流行的开发博客中——但我们很少有时间致力于这种社区工作。即使我们这样做了,科技传道也不存在,领导层对此最不关心。
我们每个季度不断听到的唯一数字是获得的用户数量,以及在我们的网络/移动平台上花费的用户小时数。
优秀的开发人员不断放弃低薪工作,而PO则不断获得巨额补偿。
结论:Agile从中间人那里夺取了权力,并将其交给了产品组织,绕过了开发人员。
尽管没有CS背景,但验证了自己是一名程序员,我觉得我想在经济退休之前退出编程。
我不害怕GenAI,因为它可能会让我被解雇。
在像我这样的好组织中,领导们不会因为一些副驾驶产品而解雇开发人员。
我感到无能为力。
Agile从中间人/团队领导那里获得了权力,并将其交给了产品组织,绕过了开发人员。
我感到受到琐碎的洞穴的威胁,开发人员已经发现自己在GenAI之前就已经陷入了。糟糕的敏捷组织用管理拳头让开发人员崩溃了。在良好的敏捷组织中,开发人员已经变成了产品所有者不断翻转的开关。
有了GenAI,这个洞穴将永远变得更深,将最具创造力的开发人员推向黑暗的最远端。
我为他们担心,因为他们太虚弱了(很可能也更老了),无法开始他们的副项目,并就他们的技术/产品能力发表声明。没有人会资助他们,因为从理论上讲,他们无法与技术巨头竞争/被收购——这些巨头是由认证产品所有者驱动的,他们一直在玩弄投资者的资金和程序员的才能。
我只是祈祷他们不要被解雇。因为当这是一场人与机器的战斗时,雇用一个50岁的编码员的机会比拥有一个诚实的服务公司中间人要少。
这种情况我很快就会看到。这就是为什么我想放弃编程。
在它离开我之前。