入职大厂,傻眼了......

每年五月,我都有幸和一批实习生工作一段时间,陪伴他们第一次体验真实的项目开发。

这是个非常愉快的经历,我们公司(Google)提供免费的食物,喝不完的饮料,还有各种健身设备。和学术界的辛劳相比,大型科技公司的软件开发岗真是又舒服、又轻松,又友好。

但是,实习生们经常对分配给他们的工作感到极其惊讶:

就干这点儿活?

我在这儿实习三个月,只是为了实现这么一个简单的Dashboard?

这和你们高大上的招聘广告上说的可不一致啊!

于是,他们开始计划如何给公司留下深刻的印象:

超额完成任务

快速完成任务

去帮忙干点儿别的活儿

......

三个月以后,他们匆忙地交付了一个精简的最小可行性产品。 

当然,这不是他们的错,在上课时,老师经常要求他们在几天内就实现一个算法,解决一个难题,甚至完成一个网站。

最优秀的学生会参加黑客马拉松,一边喝咖啡一边疯狂编程,两三个晚上就完成一个可以让VC投资的产品原型 。

这让他们感觉自己就是代码之神,如果能把同样的速度用到工作上,短期内能创造出多大的成就啊!

可是,在大公司,为什么他们就做不到呢?

1

代码冰山

人们很容易赖到大公司的官僚主义和过度的项目开销的头上:迭代计划会议,迭代反思会议,全员大会。。。。。。这确实是一部分原因,但不是全部。

对于年轻的、刚入行的计算机学生来说,代码在他们眼中是这样的:

5b4c7a27ba12564a03d5a520e441c8cb.png

当然,实习生们都很聪明,他们知道学术界和工业界的代码有哪些不同,他们会花点儿时间给代码加上注释,做点测试,code review...... 但是,他们依然不会意识到这座冰山有多深。

28fa8bfbb2bb2472ff6846221a0e5b67.png

稍微解释一下上图中的词:

A11Y:  accessibility,是指设计和创建可以被所有人,包括那些有残疾的人,使用的网站和应用程序。例如让盲人通过语音方式使用软件。

l10n : localization(本地化), 类似的还有i18n (国际化)。

GDPR:General Data Protection Regulation(通用数据保护条例),这是一项在2018年5月25日生效的欧洲联盟立法。GDPR 的主要目标是保护个人在网络上的数据安全,给予个人对自己的个人数据更多的控制权。

重要的是,冰山海面下的部分依然涉及到代码,也就是说,程序员的代码只有一小部分被用户使用,大部分都在用户的视线之外。 

但是在海面以下的部分提供了真正的冰山浮力:

没有测试,系统的功能早晚会被发现问题,没有可靠的开发工具,程序员很快就会失去动力。

没有针对和解决客户问题的流程,客户很快就会抛弃你,把业务搬到别的地方。

不是所有的新产品都会触及冰山的所有部分,但很多项目都会触及大部分冰山。

即使是个最简单的活儿,也会慢慢变成一个大项目,例如,你想把一些用户数据保存在服务器上,在你开始之前,就得考虑这些事情:

🗄  确保数据得到备份,数据丢失了,用户可受不了

🗑  允许用户随时删除他们的数据,包括备份中的数据

📲 允许用户下载他们自己的数据和元数据,以符合GDPR的要求

📚 设计你的存储系统以符合HIPAA,FISA和欧盟的数据本地化政策等法律

🚂 随着存储系统的改变,迁移现有的用户数据

📊 监控后端,处理停机事件,配额使用情况和安全漏洞

👮 控制和审计客户允许的代理对用户数据的访问

如果有实习生在一个夏天就完成这么一个完整的项目,那就非常让人惊讶,印象深刻!

2

4维元冰山

但是,你以为这就完了吗?

不!

我们在冰山之下还有一个完整的冰山:

6de9593424e0e62a92a9b5e7803aaa80.png

现在我们有了一个4维的元冰山!

这个元冰山依然是由代码构成的,只是和你的项目代码关联不大。

你需要用IDE来编写代码,用编译器来编译代码,用调试器来调试代码,用Git来管理代码.....

你需要用到各种操作系统,数据库,框架,编程语言,流程图,安全扫描工具,静态分析工具,自动化脚本......

你还需要白板,视频会议,电子邮件,Slack......

它们不会影响你应用的工作方式,但是会影响你的工作效率和应对问题的能力,不好的、不适合的工具会让程序员付出高昂的代价。 

最终,软件质量是由用户看得见的功能,看不见的代码,以及帮助编写代码的代码工具组成的。

只有当所有这一切都完美融合,才会创建出高质量的软件和服务。

3

代码冰山的影响

问你一个问题:

Uber、AirBnb、Tesla、WeWork、Netflix、Betterment、Flexport和Amazon这些优秀的公司有什么共同点?

答案是:

尽管他们的收入来自于像交通、物流、房地产、娱乐、金融和零售这样的古老行业,但他们都自称是高科技软件公司。

把自己说成是高科技是一种吸引投资的手段,更重要的是,这些公司都用软件来和别的竞争者区分开。

当传统公司的竞争者也想推出软件的时候,它们会发现这是一件挺难的事情。优秀的软件需要大量的思考、投资、人才和开发时间,任何一个不以软件为主的公司都难以承受软件的成本。

事实上,让高薪的实习生在更高薪的程序员指导下度过三个月的实习期,这件事就会让很多传统公司感到不安。

那些传统公司会关注他们的核心能力,然后建立一个小的软件开发组织,而不是重新构建他们的核心业务。如果需要一个应用程序,那就让IT部门做出来,什么?做不出来?要你们有什么用!还是外包吧。

以软件为导向的公司会将投资引入代码冰山的内部,AirBnB维护了一个受欢迎的动画库;Netflix使用定制硬件构建了自己的CDN;Uber开源了一个叫做H3的地球的空间划分和空间索引系统。

548d05200107832e3fa45fc310f5a093.jpeg

最牛的是亚马逊,这家零售业的巨头深深地投入到了软件之中,以至于将自己的基础设施都卖给了竞争对手。竞争对手即使是拥有全部的AWS能力,它们在软件世界中依然步履维艰,亚马逊清楚地知道这一点,否则它肯定会限制到底谁才能使用AWS。

d2e2c3b9c2115551af089db993a75fa0.jpeg

软件开发很难,如果领导者无法理解他们需要构建多深的“冰山”来支撑它时,就会变得更加艰难。

本文翻译自:https://medium.com/source-and-buggy/why-does-software-engineering-take-so-long-77a3f1832739,有删减,原作者Keaton Brandt。

近期精彩文章

内容概要:《中国HR+HER2-早期乳腺癌患者诊疗需求调研白皮书》聚焦于中国早期HR+/HER2-乳腺癌患者的诊疗现状和需求。白皮书通过定量调研,揭示了患者在确诊、复发风险评估、术后辅助治疗及长期管理等各阶段面临的挑战,包括对新药的期待、信息需求及信息渠道偏好。调研显示,患者对新型辅助治疗方案的疗效和生活质量提升寄予厚望,但也存在对不良反应的担忧。此外,患者在理解诊断报告、复发风险认知及获取权威信息方面存在诸多障碍。白皮书呼吁加强患者教育、优化医患沟通、提高新药可及性,以改善患者预后和生活质量。 适合人群:早期HR+/HER2-乳腺癌患者、家属、临床医生及相关医疗工作者。 使用场景及目标:①帮助患者更好地理解诊断结果和后续治疗方案;②为临床医生提供患者需求和挑战的真实数据,优化诊疗路径;③推动社会各界关注和支持早期乳腺癌患者的教育和管理,助力患者早日康复,重获高质量生活。 其他说明:白皮书强调了早期乳腺癌患者在诊疗旅程中面临的多重障碍,包括早期筛查覆盖率不足、复发风险认知偏差及医患沟通壁垒。为应对这些挑战,白皮书提出了多项改进建议,如加强乳腺健康教育、优化诊断结果沟通方式、提升患者对复发风险的认知、强化不良反应管理及构建权威信息平台等。
内容概要:本文档详细介绍了项目进度管理的知识体系,涵盖从启动到收尾的五大过程组,具体包括项目整合管理、范围管理、进度管理、成本管理、质量管理、资源管理、沟通管理、风险管理、采购管理和干系人管理。其中重点阐述了项目进度管理的六个核心过程:规划进度管理、定义活动、排列活动顺序、估算活动持续时间、制订进度计划和控制进度。每个过程详细描述了其定义、输、工具、输出及相关补充信息。例如,在规划进度管理中,介绍了进度管理计划的内容,包括项目进度模型制定、准确度、计量单位等;在定义活动中,讲解了活动清单、活动属性和里程碑清单的构成;在排列活动顺序中,描述了紧前关系绘图法(PDM)和箭线图法(ADM)的应用;在估算活动持续时间中,介绍了类比估算、参数估算、三点估算和自下而上估算等方法;在制订进度计划中,详细说明了进度基准、项目进度计划、进度数据、进度网络分析等概念和技术;在控制进度中,讨论了数据分析、关键路径法、项目管理信息系统等工具的使用。 适合人群:项目管理人员、项目经理、项目团队成员及其他对项目进度管理感兴趣的人员。 使用场景及目标:①帮助项目管理人员掌握项目进度管理的核心流程和方法;②为项目经理提供详细的进度管理工具和技术指导;③协助项目团队成员理解并应用进度管理的最佳实践。 其他说明:本文档不仅提供了理论知识,还结合了实际操作中的工具和技术,旨在提高项目进度管理的效率和准确性。读者可以通过学习本文档,更好地规划、执行和监控项目进度,确保项目按时交付。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值