`
helpbs
  • 浏览: 1162915 次
文章分类
社区版块
存档分类
最新评论

第七章:新的开始

 
阅读更多

新的单位,新的开始。我们集体来到新的单位,初始目标就是实现新的排版软件。为了体现与原有的软件不同,增加了网络解决方案,因此软件也定义为网络组版软件。

随后的一年时间,我们一批人一直在对网络组版软件进行重新的需求定义,设计规划和编码实现。但最终明白一个道理,行业性的软件,水是挺深的。没有积累,很难成功。这个行业的用户,基本上就是用两家公司的产品,都已经有几十年了,一个新的软件,很难打开这个市场,因为难以得到信任。

最后,网络组版软件无疾而终。我们这批人,也进行了重新打乱分组,有的去干日本活了,有的去做欧美活了。我们剩下几个留下来,继续在国内部门。而这时,正好是我现在所在的公司合并到我们公司,合并后作为国内部的一个分部门,称为国内二部。我这个没有其它部门要的(惨啊),就被分到新的部门了,因此也认识了现在的公司的领导和同事。

新的部门主要从事航运领域的系统研发。包括船舶管理,船队管理,船舶跟踪和电子海图。由于我做过组版软件,因此参与了电子海图系统的开发。可以说,这是我人生的一个大转折点,至少一直延续到现在,决定了我此后近十年的方向。

当时项目经理安排我实现航线设计模块,按他的计划我能在两三周完成就行。结果我用了五天就完成了功能。这让项目经理对我刮目相看。此后电子海图系统基本上都由我来完成,一直延续到今天。

在做电子海图系统的过程中,我终于形成了我自己的开发模式。如同我之前说的骑自行车的例子一样,突然之间发现自己已经到了一个崭新的高度,豁然开朗的感觉。至少到目前来说,我的这些方法还是行之有效的。但如同让你描述突然会骑自行车是怎么个感觉时,你可能很难描述清楚原因。只有自己反复努力尝试后才会体会到。因此,当在CSDN上看到有些人帮助解决问题,动不动就用全局变量,静态变量等方法时,我就很不赞成。也许这些方法能解决他一时之需,但却让他失去了更好的实践机会。

很可惜,由于公司合并的最初目的是为了能够上市。但随着上市希望的渺茫,以及公司对国内二部不重视,最终在一年后,两个公司又分解了。国内二部不存在了,但我却未能跟着新公司离开,开始了在国内部颠沛流离的生活。

由于我个人坚持使用VC,不愿意改变,而部门却基本上没有VC的项目,因此我再次被下放到日本部。开始了长达八个月的PG生活。但也让我体验了一个大连最为热门的外包生活。对此我有以下几点体会:

1. 日本人编码不行

我们当时做的是一个日本人编写的建筑支援系统。从VB升级到VB.NET。整个工程,出现了大量的全局变量,统计下来超过2000个。很多全局变量不知道在何处被修改的。这是这个项目最大的难点。

另外,日本人对封装有一定的思考,但却用不对地方,不该封装的地方进行了封装,该封装的地方却重复写了几十遍。

2. 日本人管理一流

日本人的管理,绝对是没的说。甚至可以说到死板的程度,这也使得国内的程序员们完完全全沦为技术工人。可以说,日本人不需要他们的创造力,必须完全按照日本人的设计进行实现。

我们在开发过程中,发现程序每次运行后,主界面出来的越来越慢,最后要一分钟左右。对开发造成了严重影响,因此我和从国际部调来的一个同事对这部分进行了检查(说句实话,日本部的PG没有能力解决这个问题),发现是由于日本人代码中的非法封装(我对于第一点体会中乱封装的定义),先从一个表中读取记录数,然后在一个循环中,反复调用数据库查询语句来获取记录,结果当记录数越来越大时,这个循环的效率无法用语言来表达。改造也很简单,只需先完成联合查询就可以了。

修改之后,程序启动从先前的一分钟提高到一秒。当我们兴冲冲的告知日方时,却得到他们的抱怨,认为我们未经他们同意就进行修改。

日本人对任何一项修改,都会出式样书,哪怕界面中某个标签的位置,大小,颜色等等的微小变化。在国内的项目,是绝对不可能做到这样的。

3. 外包项目在国内基本没有技术含量

我不知道是否所有外包项目都是和我做过的这个项目类似。一般中国企业接外包项目,都在日本有个机构,比如当时公司在日本就有个分公司,负责项目洽谈,以及一些前端的分析设计,然后到国内进行开发。

国内开发的人员,就是完全按照预定的式样书进行开发。不需要你进行任何发挥,任何创意,必须严格按照要求完成,哪怕是错误的。因为当日本人发现确实错误时,他会重新发式样书,重新完成。而与国内项目不同的是,日本人会承担这个责任,承认这部分工作量,因此会额外给费用。

所以,做日本项目,对个人来说,根本就是个工人,随便找个人就能短时间内把你替换掉。你的价值根本无法体现。

4. 外包项目很辛苦

日本项目的另一个特点,是工期要求非常的严格。要求哪天完成,那么你绝对不能延期,否则就会付出金钱的代价。因此往往是劳动密集型开发。我们这个项目,当时就集中了五十人,并且由于公司人手不够,还借调几家外公司的人员。几乎就是没日没夜的干。没有周末,平时必须到最后一班公交车到之前才能下班。

然而就算这样,你还得不到应有的待遇。薪水比国内部和国际部低很多。每个人实际的工时居然还要打六折。也许,很多人员只有一个目的,那就是能够有机会出国,因此一直忍耐。

我想,如果我稍微学点日语,做个外包项目的Leader或者Manager都不是问题。但我不想过这样的生活。

总之,站着程序员的角度,做外包项目实在是痛苦,对自己的未来也很难产生竞争力;站着管理者的角度,却又有许多值得我们学习的地方。

分享到:
评论

相关推荐

    Cocos2d学习资料

    第七章: 横向滚屏射击游戏 第八章: 完成滚屏射击游戏 第九章: 粒子效果 第十章: 瓷砖地图(Tilemap)基础知识 第十一章: 45度角瓷砖地图(Isometric_Tilemaps) 第十二章: 物理引擎 第十三章: 弹球游戏

    mplus 8 用户手册 Chapter2 开始使用 Mplus.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter13 示例:特殊功能.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter18 输出、保存数据和绘图命令.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter4 探索性因素分析视图示例.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    开发Linux系统 Shell脚本程序视频教程详细完整版

    内容包括: 第一章:开始shell程序 第二章:命令的输出和输入 第三章:分支和循环语句 第四章:参数解析和扩充 第五章:参数、变量和函数 第六章:字符串、文件和命令 第七章:正则式、sed和awk 第八章:调试和debug...

    mplus 8 用户手册 Chapter7 具有横截面数据视图示例的混合建模.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter3 回归和路径分析视图示例.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter10 多层次混合建模视图示例.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter20 Mplus语言摘要.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter11 缺少数据建模和贝叶斯估计视图示例.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter9 具有复杂调查数据视图示例的多层建模.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter8 采用纵向数据视图示例的混合建模.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter19 蒙特卡洛命令.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter1 导言.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter15 标题、数据、变量和定义命令.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter17 MODEL命令.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter16 分析命令.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter5 确认因子分析和结构方程建模视图示例.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

    mplus 8 用户手册 Chapter12 蒙特卡洛模拟研究查看示例.pdf

    第 2 章:开始使用 Mplus 第 3 章:回归和路径分析视图示例 第四章:探索性因素分析视图示例 第五章:确认因子分析和结构方程建模视图示例 第 6 章:生长建模、生存分析和 N=1 时间序列分析视图示例 第 7 章:...

Global site tag (gtag.js) - Google Analytics