阅读更多

5顶
1踩

非技术

我老爸常对我说,「孩子,别太着急。慢点来,你完成工作的速度会更快。」

 

我曾在旧金山湾区的很多高科技创业公司工作过。现在已经有52岁,我编程的速度不快,却经过深思熟虑再开始。我就像是一个写代码的设计师;随着你的深入阅读,这一点将会变得非常显而易见。

 

最近,我和一些年轻的程序员一起做项目,他们信仰快速开发,迭代修改,这使得我缓慢的编程遇到了困难。这份工作,鼓励我们在同一个代码仓库里面工作,就好像是一大锅汤,如果我们一起不停的大力搅动,一个奇迹就会从中诞生。

 

实际上并不会。

 

这帮程序员信仰“所有的工程师都是可以被取代的”这种谬论,因而没有人需要为这些代码的任何方面负责;任何一个程序员可以在任何时候,改变代码的任何部分。毕竟,我们有像Github 这样特别赞的服务,来管理和合并来自任意数量的程序员们提交的任意数量异步开发的代码。只要每个人都频繁的提交(commit),不破坏任何东西,那么所有的东西都会好好的。

 

扯犊子。

 

你不能期许省略设计过程。这一过程在人类文明开始时就存在了。当下最新最灵巧的开发工具,不论它多么灵巧,也不能替代那些建造了大教堂、铁路和拍出长篇电影的最佳实践和现实中的合作。

任何编程都没能创造这样一个工具,可以减少软件开发的时间,让一群猴子以它们可以接受的速度来工作。

 

心律不齐

 

在这样一群信仰快速开发的程序员中,做一个我这样缓慢编程的程序员的代价,就是某种形式的心律不齐——因为我自己的编程节奏都被其他程序员那机枪似的迭代开发搞乱了。我的编程风格是这样,由一些不同尺寸和时间尺度的弧线组成,开始是时候是探索、试验和出错,使用一些hacks和临时变量。基本上是在做一些构建工作。程序初露端倪。稍后,我会回头去做些修改。最后结束的时候,是完整实现的代码(「打扫战场」是完成我这个工作循环的一个必要的部分)我编写代码的这一流程与策略、设计方案、架构的出现是同步的。

 

有时候,当一个成熟的方案出现后,我会回头重新开始。因为我觉得我会有更好的点子。有时候我错了,有时候我是对的。在一个方案完整的呈现在我面前之前,我是没有办法去知道对错的。

 

总之,先回到“一锅汤程序员”吧。问题是这样的:总体上,软件生态系统并没有停一停的意思——没有机会去引入设计过程,那么怎么能有人,而且是快速开发程序员,做出好的设计呢?



 

那些认为快速编程和慢速编程一样(除了速度以外)的程序员,他们并不理解设计过程。同样,神经学家现在认为,像流体一样穿过大脑的神经元放电会产生颞混响,这和思考,意识息息相关,好的设计是需要花费时间的。

 

慢速编程运动

 

维基百科记载:「慢速编程运动是慢速运动的一部分。这是一种软件开发哲学,强调仔细的设计,高质量的代码,软件测试 和思考。 尽量避免豆腐渣工程,垃圾代码和过快的软件发布。」

 

维基百科同时还这样描述「慢速软件开发」:「作为『敏捷开发』运动的一部分,世界上各个软件开发者团体期待更有预见性的项目,意在获得可持续的职业生涯,同时保持工作和生活的平衡。他们进行了诸如结对编程代码审查代码重构等实践。这产生了更多可靠的,健壮的软件」

 

在旧金山湾区,那些由风险投资支持着的软件开发,火急火燎地开在快车道上。

 

资金被投资在研发过程中的那些非自然的需求上,实际上应该把它留给设计演进过程中那些符合自然节奏的点。快,并不总是一件好事。实际上,放慢速度有时候意味着快。数字科技是如何侵占我们自然的节奏的,这一个主题在 Rushkoff 的Present Shock 中有所阐述。

 

还有一个问题:对科技近乎宗教般的痴迷——以及对工具的迷恋。人们想知道为什么软件很糟糕(没错,它很糟糕)。软件之所以这样糟糕,主要是因为纸上谈兵。快速开发的程序员会编写一些工具,来帮助他们使用其他的一些工具,他们利用这些工具来编写自己的代码。

 

这就是我为什么认为我们需要一些年长的人,女性、教育者和艺术家参与到软件开发中。更多人与人的交流,更少工具与人的交流。我指的不是做一些外围的工作,提供问询或是装饰UI。我的意思是深入内部——确保软件能够和用户产生共鸣。

 

我庆幸自己不是打字员。

 

我的一位朋友是一个成熟的女程序员,她曾有过这样精彩的吐槽:「软件开发不是比谁打字快。」每个人都明白这一点,但是时常这样提醒自己也不是什么坏事。

 

Brendan Enrick讨论过这样的问题。实际上,程序员们不停地用手指在键盘上猛戳,就好像这种肢体活动是和编程同步的。但是实际上编程是这样一种行为,它把思考、设计、语言、逻辑和一些心理层面的东西变成某种可以存放在电脑内存中的形式。



 

我的夫人经常会走到小院里,问我:「你在编程吗?」通常情况下我的回答是「是的」。实际上我正在用钳子修剪枝叶,或是到处施肥。

 

植物、泥土和剪刀和编程有很大的关系,就像与键盘和发光的屏幕一样。

 

我们正在从工业时代和经济纪元过渡到一个可持续发展的年代。是的,新的软件和新的商业需要增长。但是需要具有可持续性,它们要慢慢的,有爱的增长。就像美酒,就像宝贝。

 

关于作者: Lingfeng Ai ( @hanxiaomax )

  • 大小: 76 KB
  • 大小: 46 KB
来自: 伯乐在线
5
1
评论 共 6 条 请登录后发表评论
6 楼 尘土飞扬 2015-01-14 10:00
bewithme 写道
老板就叫你一天完成你还能拖到第二天么?

这样的老板主持的公司,基本就是个皮包公司,不过,国内有不是皮包公司的软件企业吗?好像还没有
5 楼 尘土飞扬 2015-01-14 09:59
dyp1984 写道
在中国52岁的程序员,肯定找不到工作,这也是中国做不出一款世界级的软件的原因之一吧。

深有同感,整个国家都在短平快的短视中折腾,以为能够赶英超美,其实根基不稳,大厦再高,倾倒的也越彻底。基础行业的人才流失,注定会造成核心竞争力的缺失。
4 楼 bewithme 2015-01-12 15:45
老板就叫你一天完成你还能拖到第二天么?
3 楼 kanme818 2015-01-10 16:45
敏捷和迭代开发已经变成了不想搞清业务需求的借口了
2 楼 dyp1984 2015-01-10 15:28
在中国52岁的程序员,肯定找不到工作,这也是中国做不出一款世界级的软件的原因之一吧。
1 楼 ykssky 2015-01-10 01:09
文章简言之: ctmd agile...

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 程序员人生:技术人员的职业发展规划

    说个大白话,一个TL管了N个人,他至少要能保证大家的输出所产生的价值,至少要高于这个团队的工资、奖金、五险一金、OPEX、CAPEX等等吧。这个TL为了大家输出的有价值,他是不是需要能: 能对所负责领域的业务特点、...

  • 【本人秃顶程序员】美女程序员观点:程序员最重要的非编程技巧

    这是来自一位美女程序员Ali Spittel的观点,至少可以看看美女喜欢和怎样的男程序猿打交道: 当我想与我希望的程序员合作时,我更多地考虑非技术技能,而不是技术技能,是什么非技术技能使得某人成为一名优秀的同事的...

  • 一位39岁程序员的困惑:知道得越多编程越慢怎么办?

    Zilk1988 年 14 岁时就开始编程,此后尝试过几种职业,最终还是在 1997 年决定成为职业程序员(又称码农),现在已经 39 岁,对此选择依然无怨无悔。 但是后来他发现一个问题,自己的经验越丰富,完成项目或任务的...

  • 28岁程序员从字节退休:IT是改命的唯一出路吗?

    有人说:每个人30岁以前改变命运的机会只有三次,出身、高考和择业。对于大部分普通人而言,决定人生走向的第一次机会大概是在22至28岁。这个年龄阶段恰好面临着人生最重要的一次选择...同样是在28岁,字节程序员郭...

  • 在中国当程序员,35岁是分水岭?这些新路你知道吗?

    程序员都应该看看

  • 北京44岁程序员失业,感叹:编程估计没戏了,想去卖煎饼果子

    点击上方 "程序员小乐"关注,星标或置顶一起成长关注订阅号「程序员小乐」,收看更多精彩内容每日英文It doesn't matter how slow you ...

  • 程序员职业发展与规划:我要做一辈子的程序员吗?

    经常听一些同学说:不知道下一份工作该去哪类公司做些什么,我的职场人际一团糟老板不重视我,我现在成长的非常慢所以又想跳槽了,我看不到公司的发展前景好迷茫,其实这一切的困惑都来源于没有做好职业规划或者你...

  • 独立开发者:我为什么要学游戏编程?

    对于一个比较小的团队或者是单枪匹马的开发者来说,很多的人都需要时是多面手,最近,一名独立游戏开发者在博客中讲述了自己数十年的游戏研发经历,他表示,游戏策划是需要有一些编程知识的, 因为只有这样你才可以...

  • 程序员这条路,技术往深度走还是广度走会比较好?看完这篇文章你就明白了

    来自老程序员的心声

  • 揭开程序员身上的「专业面纱」:非科班程序员,都来自哪些专业?

    【文章来源微信公众号:每天学编程】 专业选择重不重要?这几乎成了每年高考后的「全民话题」。有人说「专业决定就业」,有人说「职业无关专业」。对于程序员群体而言,大学专业对他们的职业选择发展又有着怎样的影响...

  • 2021 美国硅谷程序员调查:平均年薪 80 万,后端人才“吃香”

    Celential.ai 的《2021 年硅谷软件工程人才报告》中,没有大学学位的自学 SV 软件工程师的百分比 五、湾区是国际教育的大熔炉 我们一开始就提到 Celential 可以帮助初创公司招募多元化人才,这一发现在一定程度上...

  • 未来可期的 AI 编程:到底是程序员的终极解放还是失业的开始?

    不论是业内(编程)还是业外,人们对于 AI 编程的观点都是:未来可期 ——GPT,他好像什么都能干,也好像什么都干不好。所以,在这篇文章里,我将继续总结与其他人聊天的观点。对应的思路总结,也可以在 ClickPrompt...

  • 40岁后学习编程是否太晚了?7点技巧让学习变得轻松有趣

    很多人经常会问:“在什么时候学习编程才合适?...编程是一项很花脑力、精力的高压工作,在40岁后才开始学习编程,是不是太晚了?Damian Wolf给出的答案是“不会晚”!Damian是InfoWorld,DZon...

  • 推荐给程序员们的十条编程原则

    也许作为有一定工作经验的你来说,你已经知道了,或者已经有熟悉的大佬告诉了你,但是大多数都是靠自己一步步实践积累而来。掌握编程的这些技巧,并将他运用到实际的工作中才是最重要的

  • 人力资源经理绩效考核表.xls

    人力资源经理绩效考核表

  • 智慧环卫管理平台建设方案Word(211页).docx

    一、智慧环卫管理平台的建设背景与目标 智慧环卫管理平台的建设源于对环卫管理全面升级的需求。当前,城管局已拥有139辆配备车载GPS系统、摄像头和油耗传感器的环卫车辆,但环卫人员尚未配备智能移动终端,公厕也缺乏信息化系统和智能终端设备。为了提升环卫作业效率、实现精细化管理并节省开支,智慧环卫管理平台应运而生。该平台旨在通过信息化技术和软硬件设备,如车载智能终端和环卫手机App,实时了解环卫人员、车辆的工作状态、信息和历史记录,使环卫作业管理透明化、精细化。同时,平台还期望通过数据模型搭建和数据研读,实现更合理的环卫动态资源配置,为环卫工作的科学、健康、持续发展提供决策支持。 二、智慧环卫管理平台的建设内容与功能 智慧环卫管理平台的建设内容包括运行机制体制建设、业务流程设计、智慧公厕系统建设、网络建设、主机和储存平台需求、平台运维管理体系、硬件标准规范体系以及考核评价体系等多个方面。其中,智慧公厕系统建设尤为关键,它能实时监控公厕运行状态,保障公厕的清洁和正常运行。平台建设还充分利用了现有的电子政务网络资源,并考虑了有线和无线网络的需求。在功能上,平台通过普查、整合等手段全面收集环卫车辆、企业、人员、设施、设备等数据,建立智慧环卫基础数据库。利用智能传感、卫星定位等技术实现环卫作业的在线监管和远程监控,实现对道路、公共场所等的作业状况和卫生状况的全面监管。此外,平台还建立了环卫作业网格化管理责任机制,实现从作业过程到结果的全面监管,科学评价区域、部门、单位和人员的作业效果。 三、智慧环卫管理平台的效益与风险规避 智慧环卫管理平台的建设将带来显著的环境、经济和管理效益。环境方面,它将有力推进环境卫生监管服务工作,改善环境卫生状况,为人民群众创造更加清洁、卫生的工作和生活环境。经济方面,通过智慧化监管,大大降低了传统管理手段的成本,提高了监管的准确性和效率。管理方面,平台能够追踪溯源市民反映的问题,如公厕异味、渣土车辆抛洒等,并找到相应的责任单位进行处置,防止类似事件再次发生。同时,平台还拥有强大的预警机制功能,能够在很多环卫问题尚未出现前进行处置。然而,平台建设也面临一定的风险,如部门协调、配合问题,建设单位选择风险以及不可预测的自然灾害等。为了规避这些风险,需要加强领导、统一思想,选择优秀的系统集成商承接项目建设,并做好计算机和应用系统的培训工作。同时,也要注意标准制定工作和相关法律法规的制定工作,以保证系统建设完成后能够真正为环卫管理工作带来便利。

  • apache-parent-10-14.el7.x64-86.rpm.tar.gz

    1、文件内容:apache-parent-10-14.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/apache-parent-10-14.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

  • 用于卫星通信的CTS天线

    用于卫星通信的圆极化CTS天线研究

  • 人事档案登记及查询系统.xlsx

    人事档案登记及查询系统

  • 12 -防损部经理绩效考核表1.xlsx

    12 -防损部经理绩效考核表1

Global site tag (gtag.js) - Google Analytics