给公司老总的一封信

A总、B总:
你们好!
    这几天我一直在想,我们DotNet团队、我们公司的产品研发应该走什么样的一条路比较好。这里我很想把我的一些想法跟你们说一下。
    其实有一些话我早就想说了,但是我总是有一个顾虑,就是我初来咋到,而且整个工作时间也不长,就冒冒失失的提这样那样的意见是不是合适,会不会被认为是多事,所以我一直放在心里而没有说出来。但是我现在觉得,既然我真的打算在这个公司长期的呆下去,那么就应该把心里的想法说出来。
   
    来公司这么几个月,我想我对公司的情况多少也比较了解一些了,虽然其他研发组的情况我没有去过问,但是在旁听中多少还是能了解到一些的。给我的感觉是,公司的研发部门不是很像是一个搞研发的,而是像一个普通的经营或者生产性部门。
    虽然在来咱们公司以前我只在一家公司呆过,但从书籍、报刊和网络中,我想我还是了解到了一些其他公司的运作方式。我觉得,作为搞研发的,应该采取以项目为中心,然后通过多种方式充分调动员工积极性的一种运作方式。
   
    先说说我原来公司的项目运行过程吧。我原来的公司一周实行40小时工作制,这是在理论上的一个规定,不做这样的规定,是不容易招到员工的,也不符合国家劳动法的有关规定。做这样的规定,是从制度上来保障员工的合法权益,从而调动员工的积极性。而在实际的运作上,并不是这样。也可能是因为比较小的原因吧,公司采用的是典型的项目中心制。以一个为期六个月左右的项目为例,项目会分为若干个阶段,也就是若干个里程碑,六个月的项目可能就是大概5、6个里程碑,在每个里程碑中间,也是理论上40小时工作制,也就是说做进度计划的时候按这个标准来做,实际上常常是没有双休日的,或者周末两天来工作一天,每天晚上下班后也可能会继续加班,总之这一切都相当的灵活,由项目经理来决定。如果晚上加班,公司会提供工作餐,加班到晚上十点以后的话,公司报销回家打出租车的费用。周末加班也是如此。每一个里程碑达到后,会根据这一段时间内加班的情况安排一定量的休假,项目结项后也会安排一段时间的休整,这些休假的时间显然是比正规应该休假的时间要少,一般来说一个里程碑结束后是一到两天,整个项目结束后是5到10天,会安排在某个周末之前或之后和周末连在一块,这样方便员工安排自己的休假。总的来说,这些措施会有力的提高员工的积极性,提高团队的战斗力,我原来老总说着就好比用拳头打人,要能收回来才能更有力的打出去。
    在项目运作方面,由于我原来的公司是日资企业,所以做事情带有很强的日系软件企业的作风,就是很重视设计,一般来说,一个项目在设计阶段消耗的时间占到了整个项目周期的二分之以上甚至更多。项目设计详细到了界面一级,就是每个Coder拿到手的开发任务详细到了界面都已经画了出来,Coder只负责实现。这样也随之而来的一个问题是对于大企业,Coder们不知道自己到底在做什么东西,我原来的公司还好,设计是大家一起做的,然后拿到手的开发任务还是这么项目其目的是有两个,一是为了培养帮助实习生,二是为了统一风格。
    另外一个经验是积极采用构件化开发。这个是我到原来公司半年后由我提出来的,所有的构件也都是我写的。我们把在项目中常常要用的功能提取出来单独做成构件,从而使生产力大幅提高。如对数据库的读写、用户身份和权限的认证,异常管理、数据级多语言处理、页面状态保存等等,这样构件的开发使得在开发项目时直接引用即可,效率非常高。咱们公司的AbleCRM能仅仅4个人月开发出来,这是主因。尤其是我开发的页面状态保存构件,实现了无限的页面跳转间保存用户的查询、排序信息,据我在CSDN论坛等等一些地方的了解,目前还没有同类的解决方案。
   
    好了,以上是我对以前我的开发经验的一个回顾,下面我想谈一些我后面的设想。对于公司其他项目组的运作方式我当然不做评价,我只说说我希望我的DotNet项目组的运作方式是怎样的。
    1。后面项目的开发不要像AbleCRM那样紧迫,应该给我留出足够的时间来做设计和文档。我希望后面的项目能够走入正轨。
    2。从理论上,应该实行40小时工作制,一周工作五天,这是留住员工的一个基本前提。
    3。在下个项目开始前,尽可能早的再招到三名程序员充实到我的小组。尽管小组后面的项目我还不是很清楚,但是多少有一些了解了,连我一起5名成员是需要的。而且一个配合默契的团队远比若干个单独的程序员重要的多,我需要一段时间来磨合。
    4。以项目为中心,在项目开始后,我会让我的团队保持最高的效率工作,尽快地实现目标,为达到此目的,加班加点是正常的,但要由我来灵活控制,里程碑达到后和项目完成后安排一定时间的休假,这些由我来控制的东西应当向上级备案。
    5。前期以设计为重,在项目中设计占的比重应该相当大,设计详细到界面一级,但后面模块的设计可以和前面模块的编码同时进行。
    6。注意充实小组的构件库,在项目开始前和完成后(尤其是完成后)应当有一段时间来做分析和总结,把一些好的东西、能够在以后的项目中用得上的部分进行整理深化,以便将来直接使用。
    7。加强管理,以上这些说到底其实是知识的一个积累,我们不能让这种积累因为某个或某些人事的变动而影响公司或者项目的运作,采用域管理和使用一些协作工具是其中很重要的一点,代码和文档都必须放在服务器上。这项工作在DS组被搁置了,但在我的DotNet组必须坚持下去,我不会让我的小组养成自由随意的作风。
   
    然后我想谈谈公司的一个技术发展方向。作为我们公司产品的一个独特性,这注定我们有一些产品是必定运行于Windows平台上的,别的项目我不清楚,但对DS我多少了解一些。既然我们的产品运行于Windows平台上,那么我们应当对微软的技术方向做一些跟踪,使用一些微软的新技术,我知道对一个公司来做,技术转型是比较痛苦的,但是面对微软、面对市场,我们是不得不经历一些阵痛的。但不知道,是否愿意经历这个阵痛,是否愿意再学一些东西,不知道公司里一直做C++的,有多少愿意转向一个自己还很陌生的平台,就算仍然在C++上,又有多少由自己原来的VC++6.0升级到称之为2003的VC++7.1。但我对此是有信心的,因为既然我们选择信息领域作为自己一生的发展方向,就应该要准备好随时学习新的东西,随时淘汰自己熟悉的旧的东西。
    可能这样做是有一些风险的,但是既然选择了在这个市场上竞争,又怎能不面对风险?如果不愿意面对风险,又如何在竞争中占得先机?
    这几天帮助DS组做判卷工具,做得有些痛苦,这也是我这么些天了还未能完全完成的一个原因,DS项目的结果文件居然是TXT文档,老实说,这在我看来实在是令人匪夷所思,实在是有些可笑。究其原因,一是传统的Win32平台对其他的数据交换格式如XML支持得不好分析起来很困难,二是在设计时没有考虑可扩展性、后续开发的问题。这给后续的开发,比如说目前对我的判卷工具的开发造成了困难,我必须用正则表达式来分析整个文档,由此带来的后果是:运行效率低下,尽管我采取了种种办法来尽力提高性能,但正则表达式本身决定了性能无法提高太多;分析不够严格,这是一个判卷工具,尽管说这个工具不会用来做诸如高考之类的考试判卷,但这毕竟仍然是考试,判出来的结果是代表了一定的意义的,然而你说由于纯文本格式的天然不确定性导致我的系统判卷得分不够准确,这样用户怎么想。
    除此之外,我还旁听到了一些DS系统的其他问题,如网络传输问题、缓冲区溢出问题、系统兼容性问题等等。于是我就开始考虑用DotNet来开发的可行性。可能是我对DS系统了解得还不够深入的原因吧,目前来说,我所知道的DS涉及到的可能比较重要的技术就是网络通信、DirectX这样的一些操作。对于网络通信,最直接的是直接Soket编程,但明显更好一些的作法是采用.Net Remoting,这样使得DS的网络编程明显高效、安全稳定得多,.net的名字表明了这是它的强项。DirectX呢,DirectX 9提供了Managed API,这样DotNet开发这类的应用程序一样会很方便,而DotNet的类型安全决定了系统的缓冲区错误将成为历史,托管代码也使得操作系统的兼容性问题也能够迎刃而解,由此而产生的代价是系统性能可能会有一定的、少量的降低,但是绝对比java要高得多;开发过程中可能会遇到一些技术问题,但一定能解决;开发人员由此需要重新学习很多东西,这是最大的代价,要看他们是不是愿意学了。
    这些想法几天天我曾经和B总谈到过这些,不过当时她要开会,没有能深入的谈,当时我说本来这些我想等到以后再提出来,比如说下一个或下几个版本中会考虑一下,但是葛总鼓励我既然想到了就尽早提出来,所以我这里就把这些想法说了出来。
    我考虑到的另外一个项目是我们DotNet组将要做的网络语言学习系统。为这个问题曾经和袭总沟通过,开始的项目是做成一个纯B/S的项目。但是我仍然觉得,这是不合适的,我想我做了一年多的B/S系统了,我自信我对b/S还是比较了解的。B/S不是万精油,有很多功能B/S将永远无法实现,如果看看这段时间的有关报道,我们可以很清晰的看到这一点,他们称为C/S浴火重生,或者说是凤凰涅磐,微软也要淘汰B/S了,IE6是它的最后一个版本,不会再做进一步的开发了。确实,B/S可是实现很多的功能,但是这些都有局限,很多功能都严格受制于IE6.0,如果不是,功能将失效,用户禁用了Javascript或者安装了弹出窗口拦截器,功能也将失效,何况还有很多功能根本就无法实现。所以我不推荐使用B/S,如果确有必要,可以再开发一个功能简化的Web版,只提供一些基本的操作功能。这些都统一调用系统的WebServices接口。
       
    以上是我这段时间的想法和请求,希望公司能够认真考虑。
    此致
敬礼!

Bill
2004年6月6日


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值