HTC台湾工程师不具名采访

来源:android sphere

在台湾的资讯论坛上看到一篇文章,内容是对HTC一名工程师的采访,这篇采访问到了很多尖锐的问题,比如HTC内部工作压力是否很大(HTC早前曾出现过工程师过劳死的丑闻),HTC是否想过研发自家的操作系统,以及HTC的手机研发,硬件规格制定,UI设计等多方面问题。作为HTC的用户从中可以窥见这家公司的企业文化等多方面讯息。

受访对象:高工时工程师(不具名)

访问时间:2011年6月12日

访问人员:吴文杰、李卿澄

外传HTC公司在美欧之产品与台湾有很大的差异,请问就你所知是事实吗?理由是什么呢?

这问题也太针对我们公司了吧。

台湾消费者对于手机的购买习惯与国外差很多。先回答理由。我们对于买手机,与欧美市场、甚至日本有很大的差别。像我们在台湾买手机大部分习惯是跟手机零售业者、通讯行买;在国外这种事情很少,国外通常是跟电信商买,手机绑电信商。我们出给国外的手机是出给电信商而不是自己当零售业者开店来卖,每个电信商都有不同需求。规模大的电信商,要求可以比较多,如果这个电信商愿意出比较多的钱,来提供某些规格的手机,我当然就可以给他比较好一点的规格,所以,这个问题,我们来看的话觉得不是事实。

对公司来讲,应该说,出给每一家电信商的手机都不一样。不应以国内外来看,而应该以不同营运商来看。事实上我们每一个计划跑得时候,电信商的要求是公司最大的考虑,因为我们公司…不能算代工啦,我想讲代工可能比较好一点,我们不做OEM,我们做ODM,所以我们跟电信商一直有密切的合作关系,也因为这种市场特性,不会去得罪电信商,大部分时候都是迎合电信商要求,以前常常可以看到电信商客制化的手机,这方面我们花了蛮多的心力。如果向三星这种做比较大的,就比较不像我们可以给电信商这种要求,我们现在规模也变大了,但是我们跟电信商的合作模式还是如此,但是我们可以看出来这几年状况好很多,我们可以比较以我们想要的规格来跟电信商谈,也是因为规模做大了。

HTC公司的设计与品管流程是如何互动与配合?

品管这件事情,你如果说是软件喔,这…太痛苦了。我们公司的软件规格到出货前都有可能改。公司一直在宣扬的公司核心价值dynamic ,如果是我自己说的话-毫无原则、毫无纪律可言。比如说,一个邮件程序的规格定出来之后,三天两头就改,那,工程师这边也是三天两头跟着改,你们觉得这东西真的有品管可言吗?

问:规格一直改,也没有时间Debug?

我们当然有跑压力测试呀有的没有的,但规格一直在改,有时后到出货时都还有bug,我自己觉得我们公司… 有啦有啦有品管可言,但是规格常常在改,这方面我觉得做的不是很好。我觉得我们在软件上的设计比同样是做智能手机的厂商好很多,我们真的花了很多心思去了解使用者。 有些公司反而专注再外型、规格之上。

问:如果规格一直改,那code会不会很糟糕?

如果有在追我们的产品,我们有一个人机接口,更新速度很快,其实还有很多bug,不过最近几个月有正视这些问题,有发了一些严格的规定在控制。

有帅哥/美女工程师在里面吗?(工作环境的男女比例?)

看楼层啦,我自己部门19个人一个女的,可是品管就反过来。

问:男女比例会与专业能力有关吗?外界可能会有一些刻板印象?

我觉得专业能力跟性别没有关系。我觉得可能是因为工时啦,所以研发人员女生比较不愿意做。

工程师一定要爆肝吗?

可以分成工作时间长和工作时间晚两个部份来讨论。

工作晚的话,这件事情我觉得是恶性循环。其实大家集中密集来公司大概是早上可是问题是老板比你更晚来,没有人管你几点来,只会在意你几点走。有些主管不会在意这些,但大环境如此,晚上打电话找不到你会觉得你不认真,星期天晚上两点打电话找你都会觉得理所当然。

工程师一定要爆肝吗?看公司。

有一个部份要替公司辩解一下。有些人会需要半夜在公司是因为客户在国外,要跟客户联络什么的,所以他们早上可以不用来。

工时长的话,我觉得,因为台湾的大老板没有人力也是一种成本的观念。对他们来讲,劳工工作八小时和十八小时的成本是一样的,没有加班费呀,他们一句责任制就压死你啦。

HTC Logo

 

工作内容?会不会很单调?还是充满挑战?

看部门。如果是一些比较不会有新东西的部门,我们有些部门…例如说他在写一个计算器,就是版本更新时,换几个图而已,他们这种部门就比较轻松,相对也比较单调。

像我自己这边的话,每天睁开眼睛又是新的挑战。

问:像是Spec又改了?

我的部门不管spec,比较属于优化的部份,永远都会有新的挑战。

常常碰到一些应用程序,想都想不到怎么会写出这种鬼东西,要跳下去跟别人一起解决问题。每天都是新的挑战。像android的版本一直更新,每次来…这个就很痛苦。

问:要在Android上面做一些更动?

我们更动很多,所以每次有新版本来就会很痛苦,我看到市面上对Android phone改最多的应该就是我们公司。

问:都快要可以写自己的Android了?

我们不是没想过要发展自己的操作系统喔,不过后来被取消了,后来发现没有意义,如果量不够大,平台最后还是会死掉。所以说会不会很单调或是充满挑战?要看部门。

面对这样长的工作时数,是什么样的理由让你愿意持续努力?

我们公司内部真的有很多人是充满理想、热血,真的有,但这些人的热情在现实中很快会被消磨殆尽,但我不会认为这是产业的普遍现象啦。进来之后你会发现很多公司跟理想中的不一样,我是以我们这边研发部门来说啦,你们应该也知道台湾很多RD不是真的在研发,而只是在coding。

问:两者之间的差别?是理论和实务的不同吗?

人家开spec出来,你把他coding出来,我不知道哪里有研发。不过我们公司真的有研发,像Magic Lab,他们那边的工作性质和我们差很多,我这边有很多充满热情的人进来很快就被磨掉,通常最快离职的也是他们。

我们公司流动率很高,当我09年进公司,04年进来的人已经资深到跟主管差不多,不过这一年来因为股价狂飙,走的人有明显变少。若以进来年份排顺序好了,我进来两年,我已经差不多排到50%了,所以你可以知道我们的流动率是非常高的,很多人是充满着理想,觉得这是一家做出很棒产品的公司。我们自己也觉得公司产品很棒,但是内部的环境会让很多人无法达成理想。

问:流动率高是业界普遍现象吗?

在我们公司比较严重,这也是一些bug一直de不出来的原因。人都走了,有些code还不如砍掉重练,有一些应用程序,过去有很严重的memory leak,后来人走了,来一个新人,他不去修,后来就砍掉重练,流动性高就会变成这样子呀。

工时很长?是,但是还是要看部门。也有很爽的单位,每天大概下午七点多就可以下班,而且钱很多。

工时很长,看部门。不要提那种特例,主要有产出的部门的工时都很长。我们从农历年就告诉我们六日加班要一直到五月,一不小心就到六月。

问:工作时数不会影响效率吗?

会呀,可是有些公司就是希望人一直在这边呀,我们有过一周工作时数约是九十几到一百小时,不过那是最忙得时候。有产出的部门工时都很长,而且这件事情我们认为短时间内不会变好。

问:如何面对长工时?用笑容来面对?

如何面对长工时呢?我是例外啦,就只能哀怨的倒数了。

什么理由愿意持续努力?扣掉有理想的大家一定是为了钱才进来的,只要不像是我们这种一毕业就进来的,在业界有待过的都知道这家公司对员工的操劳的相关风评不是很好。用什么态度面对?大概还是为了钱。可是为什么流动性还是这么高喔?最后大家会发现其实根本没什么钱。

问:有理想的人会被消磨掉理想,那有理想的人应该如何发展

一个有理想的人要慎选部门。他们会提出一些很有创意的想法,然后会跟大家说一起来做吧,虽然不是每个意见都会成功或实行,但是这很合理,本来就不是所有的概念都可行,有一些可行的,如果是有理想的人应该会为此感到满足。所以如果你是有理想的人,不要来有出货案子压力的实战部门,他就是一直拿着时程一直压你,然后spec一直改。

在求学阶段时所想象未来的工作是什么样子?与现在的工作内容相符吗?

我们曾经以为会跟大三、大四和研究所待在实验室差不多,实际上是有一些差异的。

大家在念书的时候就是被Deadline追着跑的,可是在像这种公司工作,一天可能会有好几个Deadline,每一天都被Deadline追着跑。我相信除了大三下以外,大学部大部分被Deadline追着跑都是特定的时候,以我自己来讲,会被Deadline追着跑是因为我平常都不写作业,应该说在念书的时候,没有办法体会每天都被人家追着跑。

你要想想看,每天都是期末考,每一天,而且不是早上考一科,下午考一科,是每个小时都在考一科,每个小时都在考,每天都在考,一个礼拜七天,我们是算日历天不是工作天,我们一星期是七天。所以如果你们要想象未来的工作是什么,这个部份不只是我们公司。像有些同学在晨星、联发科等,如果要进这种公司要想象的就是像刚刚讲得那样,每天都是期末考周,每个小时都在考试。

问:最实际的状况是像说,我一小时候有一个案子要交出去吗?

做一个东西可能同时可以提供给两三个案子用,问题是,写程序一定会有bug,软件品管那边的人就追,会一直要修,同时要修问题,spec也会改,又有新的要求,你也会有一些问题,这些都在追着你。

但是这间公司的流程管理很差,每一件事情没有优先级观念,只要有事情就是ASAP,事情多但是所有的事情都是ASAP。像我这星期四请假,当晚收信有两百八十几封信。我只是一个资深工程师,可以想象主任工程师、主管他们一天是什么样子状况。

我觉得这个问题,我们那时候想象大概就是一星期一个Deadline,现在大三应该是待在202吧,可能会就是星期一个Deadline,或是有时候没有Deadline。如果有人要知道未来工作是什么样子,我提供的信息就是就每天都是期末考,一天八科以上,一星期七天这样。这样就可以想象未来的工作。

念书的时候,project搞砸了、作业搞砸了、考试搞砸了这些都是自己的分数,可是出来工作,东西搞砸了,那个压力和对自己的成绩负责是另外一回事,会承受的压力绝对远大于…也不能说做烂了,扣一点分就不做,当然可以摆烂,你不爽可以把我开除呀,如果是这种心态我当然没话说,可是如果不是,当然不要有这种心态。这种Deadline的压力和作业期末考的压力完全是两回事。而且出来工作有太多政治上的考虑、问题。

问:团队内会分党派?

不是,所谓的政治问题不是这个意思。像是一个问题过来了,念书的时候,我就是做出来,跑完测资可以过ok就好了。工作不是这样,我们常常在搜集证据,每个人都over loading,工作量爆掉,我们要收集证据说,哪个部门常常出包害我们也连带出什么问题,然后要发信给大老板们说以后有我们的问题他们要先看,我这只是一个例子,还有很多很多的状况,你还花很多心力在这种事情上面。这些都不是在学校时我曾经有想象过的。

问:这样会不会造成没有自己的生活?

对呀,没有自己的生活呀。我维持了有三、四个月就是家里、公司。一直到四月还五月初才跟同届的同学约吃饭,这是大概是四个多月来第一次离开家里公司这条路。并不是说我的个性如此,而是没有时间。有时间难得可以休息都回家睡觉了。不会有自己的生活。没有自己的生活,薪水又不高,工作内容又不符合预期,那为什么还要在这里呢?

问:所谓薪水不高是?有到十万以上吗?

跟工作付出的心力不成比例。年所得平均有。

问:国外会不会比较好?

国外好很多,国外对于劳工工时概念与台湾完全不同,差很多。

在公司工作和在求学阶段比较,最不能适应的一件事是什么呢?

不是说不能适应,是没有想到。大家都可以念到台大资工系毕业。能力都不是问题。我甚至觉得计能力而言,以大部分业界的需求,甚至不需要台大资工系这种这么操的训练方式出来的学生,跟业界比起来实务跟学校的操法也完全不一样啦。不能适应的是搞政治那一套,人与人之间的问题比程序还要复杂,不过我相信工作都是这样啦,这应该是学校与出了学校之后的差别。

举一个简单的例子,有一只手机,玩某一个应用程序会导致系统重启,大家就开始厘清,为什么只有这个应用程序会出事,到底是谁的问题,系统就怪应用程序,应用程序就怪系统。像我的部门有另外一个责任,就是刚刚讲负责稳定度嘛,这时候就要跳下来厘清到底是谁得问题,这个就是吵翻天呀。

问:会有很多的时间在开会上面吗?

看开会的人主持会议的能力。有的主管会让大家都站着,大家都站着大家都泪就会赶快把会开完。

问:大家太急会不会造成效益…?

开会之前很多东西就要准备好呀。

工作上所需要、面对的问题,与大学时候所学习到的知识的相关程度?

还是看部门。以我自己部门为例,因为我不是逻辑、硬件有关的部门,我可能只有数字系统设计跟数字电子学跟我没有关系。如果是逻辑部门这两个当然很重要。对我而言,系上的课程没有一门不会不需要。

你以为我们真的在coding的工程师,线性代数没有用吗?线性代数用来分析一些内存问题这些都是有用的,有一些程序背后逻辑要设计时,这些都是很有用的,机率,当然也很有用呀。

问:如果刚刚有两门课是因为工作类型而比较不需要,剩下的课程其实都需要?

对,真的都需要。从大一开始举例,c/c++,java一定都需要,UML很重要,UML这门课真的不应该放在大一,应该放在高年级,真的要对系统概念比较熟悉才知道那些东西在干么,实际上在做部门间的分工、整个程序设计的流程以及模型都很重要,这真的是很重要的一门课,我很后悔大一那时候没学好。

问:我想大家都有机会后悔。那业界真的会用UML来做沟通?

会,而且真的很重要,会很严谨。就不会再有解释,就是flow画出来,就是这么回事。你们现在还没大四,大四除了数据库就是专题。数据库真的是很重要的一门课。一个sql下去,会写跟不会写的效率真的差很多。

系上的课,我回想起来我不觉得有什么不重要的。很多人会怀疑compiler到底有没有用,compiler好重要,对于coding出来东西的效能有很大的影响,要实际知道这一行真的编译下去会变成什么样子,才有办法想象要怎么改善效能。

在大学的时候很少有课会要求效能,大部分是要求正确性。出来业界的体悟就是,实际上一个产品,正确性是不够的,RAM用越少越好,不是有个标准,而是大家会一直问你,真的不能再少吗?快,还要更快。这很多东西跟以前在学校不一样。我自己觉得,在学校时对效能和内存的要求都比较少。

相关程度?我觉得高度相关,但是学校还少教了很多东西。应该也不是少教,都有教啦,只是没有要求。没有要求的部份大家就自然只是知道而已。

问:有些人说课本上的知识在业界派不上用场?

像Android是一个全新的东西,他里面很多架构都自己来,像他底层是用Linux kernel,像以前学的系统程序、操作系统这些都会用到,但google又自己迭床架屋,加了很多东西上去,如IPC,google又自己加了一套自己的IPC,在学校学到的观念拿出来用一切都说得通,但是细节都会不一样所以刚开始看到会觉得很奇怪为什么这样搞,还有很多例子都是这样,但大观念没什么变,所以我觉得学校很多课程不要觉得他不重要,以后会遇到什么都不知道。

对于大家都在Android 3.0,为何HTC推出的新平板仍仅采用2.3?

这个问题非常非常简单,因为google不给我们code呀。

因为当我们想要做平板的时候,那时候其实是2.2,我们有很多东西都是守口如瓶,其实我们平板做很久了,其实从Android 1.x 的时候就开始做,那时候其实很不适合平板就放弃了。一直到2.1~2.2在做就确定是要出了。会做这么久的原因是因为公司想要跟其他家平板不一样,公司花蛮多心力在想,要如何跟其他家有差异,如果是一个有理想得人作到这个部份,他应该会很开心,因为我们在这个地方真的花蛮多力气的。

刚刚讲了很多负面的东西,是因为我们是实际上要负责一个东西实作成败压力,有些像做概念性、市场研究、使用者经验研究的那种,公司花蛮多心力研究的。

问:Google为何不给code?

大家都以为我们跟google的关系很好,其实我们从2.2开始我们都是等Open source。2.2比Open source早一个星期拿到,以前2.1是只要Google有新code就拿到,从2.3开始是等Open source。

我们自己内部工程师的想法是,因为我们发现Android很多问题都没有回报给google, 所以google就不高兴,而且我们对android接口改太多,几乎不认得那是一只android phone,我们公司要让使用者觉得这是一只htc手机,而不是这是一只windows phone或android phone,让使用者有相同的使用者经验。应该google为此不太爽。像有同学学长在其它公司工作,他们都知道sony、motorola、三星早早就拿到,我们都比较晚拿到。

想要进入职场要有些什么准备?

一定要忘记自己是台大毕业的。我想信很多人会一直把这件事情放在心上,不管是有意或无意,总是会有一些这种想法,不管是觉得优越还是荣耀,但是一毕业出了校门就请把他忘了。

我觉得这件事情要忘掉,因为真的不重要,当然你会碰到有些人说你台大毕业耶怎样怎样,人家会对你有一些期待,但是听听就算了,重点是一定要忘记这件事情。然后说实在台大毕业他是有什么了不起?第一个是这件事情一定要调整好,出去外面大家就是看绩效、表现。从你报到的第一天开始你是哪里毕业的就不重要了。然后要严正驳斥校长说的不要在意薪水。我自己把他这句话诠释为如果有个工作是你充满热诚、是梦想的话那不要在意薪水。但工作是为了赚钱,怎么可以不在意薪水?

如果对一些技术性层面的东西你有非常高的期许的话,这边真的在软件方面的技术,至少在android team这边,我觉得我们在很多方面甚至走在google前面,很多时候是我们发现问题,然后我们自己解决掉。对于很想磨练技术的人进来,可以学到很多东西。

问:目前为止,业界的主管都是直接用有那种管理背景的吗?

没有,有很多是研发人员升上去,不过不会有这家公司从基层干上去。职位升迁最快的方法是跳出来,不是在这边待的久。在这边待久,这个会累积快没错,但是用跳的会累积的更快,包含职位。

问:没有专业背景怎么领导?

我们公司什么东西都叫你ASAP,理由之一就是有很多项目经理,他们不懂什么事情是重要的,如果你要当PM,最好还是有几年工程师的背景。学校出来就做这个,我觉得还是会被唬得一愣一愣的。

没有专业能力,就无法分辨什么是重要什么不重要。例如手机自己会重开这个问题,可能的原因有千百种,如果品管报了一个手机重开,那他到底原因是什么?到底严不严重?这些都要有能力分辨,才要来追这个问题到底要不要赶快修。如果原因是硬件问题,你要叫软件的人去解吗?我们公司有时候会有工厂有问题,要软件的人去看。

问:这种负责管理的人不具专业能力的问题为什么没有解决?

因为上面没有发现这种问题呀。因为产品还是照样出来呀。像那种半夜两点会打电话给你的都是那些项目经理,说有东西好急喔,他们是有多急?项目经理其实很累,因为不会做事情才会累,他们又不是真的下去coding,事情真的有这么多吗?都在打电话。

我看过最好笑的事情,上星期端午连假,有个东西我星期天晚上就已经处理完了。隔天过了24小时,项目经理却发信,说那个谁赶快把这些问题厘清,后面还加ASAP,我就回信说我24小时前就已经回了。他就不敢讲话了,他连自己的事情都没有做好,那每天都工作到这么晚,难道是我的错吗?

项目经理不是主管,他可能职称是工程师。他的身份可能跟我一样大,甚至比我小,也不是他可以管我,是他要统筹整个案子事情,成败他们要负责。

问:主管会有专业背景吗 ?

会呀,研发人员的主管一定都是专业人才,这个倒是没有问题。项目经理没有专业能力是一件很糟糕的事情。

工程师会不善交际吗?

其实是否不善交际还是个性的问题,可能只能说工程师不会将交际能力做为一个门坎,虽然有些部门会有这样的需求,比如说比较偏管理的工作,但大部分的状况下交际的能力是不会影响到工程师这份工作。

对于未来工作的重要能力及大学课程?

review code是一个蛮重要的能力,全部从头写几乎可以说是不可能,而在review code的时候学习用一些tool也是很重要的,除了像gdb一类的debugger之外,学会使用看performance的工具也是很重要的,现今系上的课比较偏向准确度的训练,在performance的部分就相对比较少(此处是指尚未做课程改革的时候),还有一件事情是大家都会很习惯助教给的测资,要养成习惯测试,自己去想自己去生,各种可能的情况,可能让你的程序爆掉,这种应该要从大一就要有习惯。

 

收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部