当前位置:首页 > 芯闻号 > 充电吧
[导读]项目开发的完成并不意味着产品的面世

从学生到工程师的转变

上学的时候,自己无数次去北京,可是这次去北京,心情总是有点复杂。这是我毕业后参与的第一个项目,项目是跟北京的一家公司合作的。在做这个项目之前,自己从来没有做过项目,所以自己心里没有一点底,自己能胜任么?能不能与他们很好的交流?带着疑问,我们到了封闭开发的公寓,舒服的开发环境,老工程师谦恭的态度让我的疑虑打消了一半。通过与他们的交流,原来他们在做第一个项目的时候也有类似的想法,我的心情渐渐的平和了许多。

小的时候,老师经常教导我们如何好好学习,成为一名科学家或工程师,那时候自己对这一切是多么向往呀。随着研究生毕业自己的愿望也成了现实。从学校到公司,随着环境的转变,自己也从一名学生变成了一名“工程师”,至少名片上是这样写的。其实我心里明白,现在的我与学校的那个单纯的学生并没有多大的改变,只是比学生时的收入丰厚了一点。我经常问自己,我是一名工程师么?答案我心里很清楚,如果每个工程师都像我现在这样,如何实现四化呀!

随着与工程师们的逐步了解,我明白了怎样才能成为一名工程师,首先我要做的就是漂亮的完成自己一生中第一个项目。渐渐的,心头的压力随着自己想法的改变也越来越轻。加上积极主动的开发心态,自己对分配的工作得心应手,自然也得到了同事的认可。与此同时,自信心彻底把恐惧心理击溃,自己用更好的心态来面对进一步的开发。对我来讲,这个项目开发的过程,是从学生到工程师的一个成长的过程。在设备公司打印出第一张发票的时候,喜悦之情溢于言表,这也许是一名工程师最真诚的笑容。

一.    从零开始
工欲善其事,必先利其器。作为项目开发最基本的条件,首先要打建方便的开发环境。面对一个全新的开发环境,大家都在同一条起跑线上,只有根据相应的资料进行实践。不要以为这是老工程师们的工作,这对自己来说是一个非常好的动手和学习的机会。根据项目需求,打建相应的开发环境是一个工程师最基本的素质,没有人永远为你打建好现成的开发环境。由于我们购买的开发环境都是从国外过来的,再加上代理商没有非常好的技术支持,这更需要我们自己动手了。

一开始还算顺利,硬件环境很快就打好了,最关键的地方出现了问题,计算机与仿真器的通讯怎么也连接不上。试过了各种方法,本来就不得力的技术支持也没了注意。大家开玩笑说,我们回家吧,仅仅是一句玩笑,也反映了当时大家的心态。话虽然这样说,大家从来没有放弃,各种方法的调试从来没有间断过。工夫不负有心人,直到2003年11月××日下午,我们几个人在休息,“行了”,一个正在调试的工程师大叫一声,这一声把我们几个下了一跳。看到他脸上得意的笑容就知道,问题已经解决了,这种成功的喜悦让人羡慕,又有一点点嫉妒。为了庆祝这一重大突破,那天晚上我们找了一个比较好的饭店,把酒言欢,好好庆祝了一番。

这里面虽然没有我太大的功劳,自己还安慰自己,没有功劳也有苦劳呀,就这样,自己也深深体会到了成功的喜悦,那天晚上回味了好久好久。就是从那刻起,自己就下定决心作一名出色的工程师,让朋友和我一起分享成功的喜悦。

二.    桃源深处
现有芯片技术资料大多数都是英文的,仅有的几种国产芯片,也崇洋媚外,说什么英文是通用的国际语言,我们要走出国门,走向世界。其实大家都知道,人家日本好多产品都走向世界了,也都有一份日文的资料,还有什么可以辩解的么?也许你们的资料都是COPY来的吧,翻译都省了。本科的时候自己英语已经过了六级,在加上研究生三年的修炼,对自己的感觉还算不错。厚厚的英文资料看了一页又一页,回过头来一片空白。每次看资料,仿佛自己走进了桃源深处。这样下去效率真是太低了,后来想了个办法,自己先读一下资料,讲一下自己对内容的理解,然后大家一起讨论,好多问题都恍然大悟,这样既加深了理解,又提高了效率。

三.    你准备好了么?
开发不但要在思想上有充分的准备,还要充分准备开发所需的各种条件。“兵马未动,粮草先行”充分体现了准备工作对于战争的重要性。项目开发同样如此,又很多的准备工作要做,比如开发平台的设计、打建、人员配置等。

开发平台就像根据地,优秀的开发平台可以事半功倍,反之将会大大降低效率,甚至会全军覆没。我们这次开发对开发平台进行了精心设计,并在开发过程中逐步完善。整个项目能够顺利的进行,优良的开发平台起了至关重要的作用。

根据开发项目的特点和要求,各类项目开发人员配置应该有预期的配置,比如测试软件开发人员、专业测试人员等。这次开发由于过分依赖设备公司测试软件开发方面的支持,实际上设备公司提供的是非常成熟的应用产品,并非测试软件。在这种环境下测试一种正在开发的产品,难度可想而知了。也就是在这一步,遇到了相当大的挑战,一切都凭着自己对业务流程的理解,结合设备公司技术人员的支持,才步履蹒跚的走完了这一步。虽然这一步走完了,但是留给我们的恐怕步仅仅是测试结果吧?如果一开始我们就配备了相应的测试软件开发人员,这一切会不会完成的更出色呢?

四.    爱美之心,人皆有之
一个项目的开发,就像一个孩子成长的过程。整个过程会经历各种挫折和诱惑,我们要学会去呵护,引导。一个人的不良习惯大多是在未成年的时候养成的。编程也是一样,工程师的编程习惯往往也是在自己的第一个项目中形成的。网上有不少介绍这方面的文章,认真学习学习,看到他们赏心悦目的demo,难道你不为之心动?看这样的代码,简直是一种享受。项目一开始,我们是翻译了一个软件的代码,当时觉得是在浪费时间。到后来真正自己动手写代码的时候,发现自己不自觉的得心应手了。
一个项目通常是有多个人共同合作完成的,良好的编程风格不但看了赏心悦目,同事也是对其他同事的尊重,也赢得了同事对自己的尊重。良好的编程风格还有利于问题的发现和解决,比如汇编语言中标签(label)的定义,其实LABEL完全可以凭着自己的意愿来定义,可是,如果每个人都这样想,整个项目岂不是像一锅粥?因此,需要预先设定一些定义规则,标签应该能表征模块的功能或特征,当其他同事看到你标签的时候,就知道了该程序所在的模块,及其实现的功能。

五.公私分明
作为一个底层开发工程师,大多数模块都是用汇编来开发的,汇编的可读性差,良好的编程习惯显得尤为重要。作为一个独立的模块,就不应该对其他模块产生影响或者被其他的模块影响。比如寄存器的使用,调用者不要依赖于子函数不改变你的寄存器,这对于大家来说师公共的,不要把他作为自己的私有财产。同时,子程序也要注明自己使用的寄存器以及变量,以便上层在调用的时候有的放矢。每个工程师都应该根据设计文档,分清楚哪些师私有财产,那些是公有财产,不要侵吞公有财产哦!不过自己也不要大公无私了,把子的财产充公。

五.    记得写日记
提起写日记,那是很遥远的事情了。可以说,我压根就没有写日记的习惯,即使写过日记,也是在老师的监督下完成的。刚到公司的时候,没有什么项目作,自己做了点小玩意,也算是实习吧,做了一个188的小系统,虽然最终也不是很成功。当时负责我实习的老师是开发部的经理(现在是公司的技术总监了),在他的熏陶下,自己渐渐养成了写日记的习惯,虽然当时不是很正式,事情多的时候天天写,没事的时候就写的少了。后来在开发的时候,写工作日记形成了一种习惯,工作今天有什么进展?今天的计划完成了么?工作中解决了什么问题?明天有什么计划安排?这样一天下来,自己还稍有成就感,接下来的一天也明确了目标和方向。工作日记对于项目负责人来说更是至关重要的,有利于保持清醒的思路,清楚目前工作进度,有条不紊的安排下一步的工作。

六.    当好管家
代码和文档是整个项目的核心,今年春节过后,代码,测试都已经做了大量的工作,我们的项目已经初见雏形了。与此同时代码、测试文档的维护的工作量愈来愈大。当好管家并不是想象的那么潇洒,其实这是一件非常无聊而又高度认真的工作,稍有差池,整个工作就会倒退一大步,甚至会从头再来。我们的这项工作做的比较细致,没有出现什么问题,整个文档基本上是每天都要备份,每当有重大突破的时候也要备份。文档管理并不是每个人的责任,自己更新的文档要做好详细的、认真的记录。
从北京回来,在设备公司调试的时候,发现调试结果怎么也不对,而且出问题的模块是北京那边的工程师写的,与那边的工程师交流不方便,如果让我们找出问题的所在,简直是云山雾罩。仔细想了想,我决定从备份中找原因。仔细查看了每天的备份说明,说明中包含了当天的进展,修改情况,谁修改的,以及修改的日期等等详细情况。没有费多大劲就找到了问题所在,原因是前段时间修改的一个文件没有保存,还真的好好感谢备份的文档。开发过程中,这种事情是不可避免的,关键是如何避免,如果问题真的的发生了,如何去解决。做好备份,有备无患总不是件坏事把。
强调代码的重要性,并不是说测试文档可有可无。测试文档反映了这个项目的进展情况,测试文档不但要求有,而且要完备,能根据测试文档重现测试的结果。一个项目不仅仅要保留最终版本结果,必要的中间过程也是不可少的,如何高效的恢复开发过程中的现象,完备的测试文档是最有效的方法。
设计文档是整个项目的基础,它是在项目开发之初设计的,但事实是,计划不如变化快。随着项目的进展,最初的设计又很多不禁合理的地方,甚至是错误。这样一来,设计文档要有实时性,不断根据实际情况的变化而更新。

七.    真金不怕火炼
前面我们提到过,在打建平台的时候,最担心的地方出了问题。如果这是偶然,那么其中有必然的原因。最担心的地方,通常是还没有真正领会的地方,出问题也是必然得了。作项目,不要怕面对错误,发现错误是一种好现象。任何一个项目都是一个不断发现错误,不断修正的过程,微软那么牛的公司还整天出问题呢!这可不是自我安慰哦。没有最好,只有更好不是很好的反映了这个过程么?
测试的目的就是为了寻求更好的结果。测试,首先要端正态度,不要把测试作为开发的附件,二者对于开发过程是同等重要的。其次,测试软件的开发要跟上。这次开发,我们没有自己的测试软件开发,一切都依赖于设备公司。最终设备公司提供的是一个比较成熟的应用产品,把一个初步开发的产品,在一个成熟应用产品下进行测试,这一步跨越太大了,很多问题都被覆盖了,同时给解决问题带来了很大的困难。

八.    作项目更要做产品
项目开发的完成并不意味着产品的面世。项目开发是面向公司内部的,而产品则是面向客户的。如何让用户选择我们的产品是这个过程的主要任务。项目开发实现了产品的个性功能,并保证功能的完善和稳定,这是作为一个产品首先保证的。在产品功能相仿的情况下,如何让客户选择我们的产品,这就需要我们懂得包装自己。不仅有外表上的包装,更主要的是为客户的应用或进一步开发提供最大的方便。比如提供进一步开发需要的开发包,相应的开发工具等,并在可能的情况下提供人力上的支持,这对于客户都是很有诱惑力的。作为产品,应该不断得从客户那里获得反馈信息,进一步完善产品,整个过程相辅相成得。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

近日某厂员工爆料,公司程序员因线上流量异常BUG事故,被公司进行处罚。处罚的结果是被要求将去年发的 4 万多年终奖归还给公司,否则就收取滞纳金并辞退,逾期将以每天万分之 5 的利息收取滞纳金。

关键字: 程序员 BUG 事故 年终奖 工程师

2023年10月18日,中国在第三届“一带一路”国际合作高峰论坛期间发布《全球人工智能治理倡议》,围绕人工智能发展、安全、治理三方面系统阐述了人工智能治理中国方案。

关键字: 人工智能 大模型 代码

我们看到这么多的安全问题,部分原因在于我们对待安全的方式:安全性通常被认为是事后考虑的问题,是在开发结束时才添加到设备上的东西。然而,复杂的系统,尤其是嵌入式系统,有一个很大的攻击面,这让攻击者有机可乘,能够在“盔甲”上...

关键字: 代码 嵌入式系统 软件漏洞

近日,运营商乱收费冲上热搜!一名刚被辞退的工程师向河南电视台都市频道节目爆料了联通公司业务创收的丑闻。

关键字: 工程师 运营商 光猫 联通

本文中,小编将对嵌入式软件/硬件工程师予以介绍,如果你想对嵌入式软件/硬件工程师的详细情况有所认识,或者想要增进对嵌入式的了解程度,不妨请看以下内容哦。

关键字: 嵌入式 嵌入式软件工程师 硬件工程师 工程师

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP

曼谷2023年9月18日 /美通社/ -- 作为东南亚的旅游胜地,泰国一直在全球范围内吸引着无数游客的目光。泰国旅游和体育部近日公布的报告显示,今年前7个月,泰国旅游业总收入约为1.08万亿泰铢(约合人民币2233亿元)...

关键字: BSP GEN 国美 AN

哥伦比卡尔达斯2023年9月22日 /美通社/ -- 近日,天合跟踪与中国电建签订拉美地区哥伦比亚泰普伊光伏电站跟踪支架供货协议,将为其提供108MW智能跟踪系统,其中包含开拓者1P智能跟踪支架、智能算法、以及智慧云平台...

关键字: 光伏电站 跟踪系统 控制器 BSP
关闭
关闭