【郭林专刊】云哥中国 I T 民工

希望在这个地方和大家一起分享资源 交流技术 懂得分享 就是成功

【郭林专刊】过来人的总结

 

2011年前,开发主要集中在模块级别。11年后很多独立开发工作,学习到很多知识,同时也看到非常多的不足。仅谈昨天的成就不能指导今天的前进,而深挖不足却可以让我们更加清醒。

 不足一:目标不明确

我们开发一个东西,除了功能点知道以外,其他一概不清楚。例如FTP服务器,我们的目标是什么?要支持多少个用户,要达到怎样的并发数?是局域网还是公网运行?是否7*24小时运行?

 1 如果仅仅是XXX上的低压力使用,根本无需采用重量级的编写逻辑。像intel的UPNP库就提供了一个非常简单的HTTP服务器。

2 如果是一个类似Serv-U的使用场景,那我们现在开发的远远不够。

我曾经加入过一个高性能服务器开发的论坛。人家发的帖子,问的问题完全是我未知的,这让我恐慌。

更为搞笑的是推出一个产品,有没有问问用户到底要什么?清不清楚CDN未来是什么发展趋势?如果人家将来造出了核弹,而我们现在即使开发出更先进的炸弹,最终会输的。姚总已经在思考是否缩减产品数量的同时,这种产品的推出有没有经过全面论证?一味模仿CDN,连界面都类似,谁来为后果负责?

 

不足二: 没有设计,开发方式原始

这个原因是不足一导致的,因为目标是什么都不清楚,当然会没有设计。然而,很多时候是在具体模块的研发过程中,我们也没有设计,没有方案讨论和验证。而且大部分情况下,时间并非紧迫。

 这个不足导致的后果就是技术没有积累,开发非常不正规,类似软件手工作坊。尤其是现在研究院没有以前项目开发的各种约束。读研的时候,申请科学基金还有一套正规流程,并需要专家论证,而我们现在作为商业公司却没有这个。这可能是整个公司的普遍现状。

不足三:过于乐观,学院派气息浓厚

我们网络开发水平才处于初期,在极度缺乏经验,专业人才的情况下,试图推出所谓的流媒体服务器,汇聚中心,跃跃欲试。请问:

1 这么多中心,每个是干什么的?目标是什么?客户是谁?开发周期多少?能带来多大经济效益?

2 市面上同等服务器的开发,用了多少人力物力?就他们的市场情况,我们有能力打败他们吗?

在09年6月的时候,我曾提到了P2P,后来专门集中研究过P2P技术,从此再也没有提过。因为我觉得以我们现在的水平和能力以及公司给予的支持(例如时间,资源,人力)不可能在1到2年内开发一个商用的P2P出来。(一个商业可用的P2P系统,初期至少需要在IDC部署5000台机器,才会有一定效益,我们能做到这个吗?)

我们经常满足的现状就是从书上,网上学会了一点知识,验证一下,就号称自己掌握了某某技术,甚至想造一个轱辘然后拿去卖钱。这样有百害无一利。推荐的做法是看看已知的公司或产品花了多少时间和人力,我们只可能比它多,不可能少。

不足四: 步伐太快,缺乏思考

这里体现在两方面:

1 关于移植。有谁考虑过Win7平台是否提供了API满足现有XP平台下我们费尽功夫开发的某个库的功能?有谁考虑过Win7平台下是否现有结构需要重构以获得更好的性能?尤其是移植到linux平台,是否有更加符合linux平台下的设计结构?我们到底要效率还是要统一?我们在XP下设计库的时候是否又充分考虑到不同平台的情况了吗?(我们仅考虑了非常低级的API接口的一致)。MSDN2008指出,vista集成有后台智能传输服务(BITS),P2P服务,UPNP服务,我们是自己造轮子好,还是站在巨人的肩膀上好?

2 关于头文件,领导精神确实可嘉,值得学习,但做为技术型领导,这个是本职工作,比尔盖茨都需要不断钻研和学习。但问题是,咱们目前所掌握的知识足以指导网络开发吗?这种设计的模式是合理的吗?这种又不是公司首创的技术,我们的设计和其他公司的设计有比较过吗?设计方案有论证吗?

不足五:没有职业规划的概念

 多年来,公司的员工职业规划基本没有。从我角度看,职业的发展不是加官进爵的事情。而是一个拥有更多资源和影响力来领导并带领团队成员一起战斗并取得胜利,因为胜利更大了,自然报酬会增加。而我们目前的状况是薪水加了,干活更多了,资源却很少有增加。(就好比考上大学了,按道理能有机会获得更好的师资,图书,能得到更多的学习机会等)。

不足六:缺乏反馈机制和通道

从根本上扼杀了给领导展示能从谏如流的气魄的机会。

 

那么我们该做什么?

1 快速建立工作规范。对于这种积重难返并有现成解决方法的问题,必须采取西医手术刀方式快刀入手。

2 全面审视现有工作,综合考虑人力、专业技能等各方面因素,合并资源,合理制定工作计划。人家一个项目一个研究就涉及几百号人,研究院50多个人处处开花。

3 加强管理知识、心理学知识培训。关注技术水平的上升,同时要注重管理水平的上升,否则都是独孤求败,成不了气候。要培养影响力,要能召集到追随者。

4 挖人。礼贤下士,三顾茅庐怎么可能挖不到人呢?没有专家,没有高手,没有标杆人物,就没有发展。

5 加强技术积累,例如多核并行程序设计技术,这是紧跟硬件发展的技术,研究院可以开展相关研究,开发公共库,主要集中在分布式数据结构,分布式内存管理,任务分解与调度。(多机分布式计算,想都不要想了。)要充分认识到难度,当前每一项技术要研究到可以熟练使用甚至小规模创新的程度,都需要1年到数年的时间,还得依赖研究者的水平。

阅读更多
个人分类: IT行业
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭