Tairan's Story

「知之真切笃实处即是行,行之明觉精察处即是知,知行工夫不可离。」


独立程序员接定制软件开发项目总结

定制软件开发中陷阱重重,主要的原因是客户对自己的需求不清楚。很奇怪吧? 客户竟然对自己想要什么东西说不清楚。事实上,在软件开发领域这是常有的事情。软件这玩意抽象,看得见摸不着,甚至看都看不见。让对技术一无所知的人来描述自己想要什么样的软件,太困难了。 这样的事实对乐天派的程序员来讲就是一个噩梦,这里引用西乔姐在 Twitter 上发表的一段话:

@arthur369: 千万不要相信那些在谈需求的时候说:“做一个和XX一样的就行了” 的人。其实这种人最好就不要和他一起做事。因为最后结果只有2种,1、你白做了(需求一定会变动数次);2、做出来一个垃圾。”

最近我就接到一个这样的项目,刚开始的版本是对照着某软件的前一个发行版做,然后又变成了要具有此软件当前版本的某些功能,最后又发现客户的客户已经有一个类似的软件,于是乎又开始向模仿此软件+改进的方向前进,漫漫长路多折腾,如此多的波折才算拿到最终的需求。真正的需求拿到了开始加班加点的做了,可麻烦的事情还有。

这是一个远程的项目,我在南边,客户在北面, 还好在同一个国家,都说中国话。沟通的次数那叫一个寒碜,三、五天都不一定能接上头,接头的方式基本是邮件和IM,电联不多,软件本身的开发经费就不高,如果直接电联估计都支援给中国移动了。

在项目进行中第一次改变需求的时候,我是做好了心理准备的,毕竟那么多前辈的经验摆在那里。此时我在想借由着自己快速迭代,不断的改进软件原型来拿到真正的需求,理论上这种方式是可行的,总会拿到最终的需求,然后做下去就是了。可现实是残酷的,没有充足的时间,即使你承接项目不要多少钱,客户那边随着时间的流逝也会损失很多本该赚到的利润,咱都是凡人,耗不起呐。

和此类不甚明白软件开发的客户打交道还有个问题,软件里面的实现似乎并那么重要,漂亮好用的UI才是让他们看起来软件是如此美妙的东西。作为独立工作的程序员,大多对外在美没有多少的品味,黑客们更是喜欢默默无闻、稳定可靠后台运行的程序。缺少在美的层次上的交流,后端代码交流更是一团糟,客户说在这里加个东西然后这样动,你后端的东西写的不好则会伤筋动骨。

总之,定制软件开发的项目成本很高,劳神费力不讨好。因为程序员不但要保证有一个很快的开发速度来适应软件的变化,同时也要担负起教育客户的重任,还要培养出对美欣赏的品味。通常此类软件开发过程中得到的物质报酬不多,好处是对于软件开发的新手来讲,通过那么几次定制软件开发的折腾可以快速成长,怎么说也能成为一个快速山寨的熟手。如果你是一个拿着不错的薪水的在职人员,我看还是算了,与其浪费如此之多的精力和少的可怜的报酬,还不如好好钻研自己本身工作上的业务,或者干脆多陪陪身边的人吧。

No Comments » | Tags: | Categories: Technology, Thinking, 我的声音
论人生

这篇文章已经躺在我的硬盘中一个月有余,题目起的有点大,正因此我总是觉得自己写出来的东西不够深刻。不过我还是先把它放出来,现在不放又不知道多久才能放出来。借此希望能够引起一些看客的共鸣,最好能得到一些中肯的建议,让我完善自己的思想。

文章全文如下:

论人生
========

在岔路口
爱丽丝问猫:我该选择哪一条路?
猫:那要看你去什么地方?
爱丽丝:随便什么地方都行。
猫:那你选择任何一条路都可以。

人生就是岔路口的选择题,一条是随便走一条路,另一条是选择一条通向自己目的地的路。

不管你做出什么选择都没有对和错,人生就是如此,出生后一步步地走向死亡。

当你随便选择一条路,可能你在认为这是顺其自然,路通向何方走着瞧。我认为这是很浪漫的选择,能顺其自然则不会感受到被自然规律所束缚的痛苦。然而做出这样的选择,则说明你有足够的信心和一份不用为物质所担忧的心。如果没有这些,这个浪漫的选择会被现实打击地粉碎,并不断的折磨你。当你认为你是在顺其自然的时候,请回忆一下,你是否为之前的一个决定,例如没有得到更好的收入、浪费了好机会而后悔?如果你回答是,那么你真的没有足够的能力去浪漫。

如果选择的是另一条通向自己目的地的路,恭喜你,你选择了一条充满荆棘的痛苦之路,但当你接近或者达到终点的时候会充满着幸福。选择这一条路,在世人眼中你是功利地,世俗的。其实我说这是条现实之路,当然现实并不是说让你势利,而是脚踏实地的一步步的前进。人的能力总是有限的,如果你认不清自己的能力,那么通常你会高估自己,而高估自己的结果就是不断的碰壁。

在人生的路上,很多人遇到的问题是在这两条路门口徘徊,想浪漫,但没有资本,想现实,却不知目的地是何方。

一颗聪明的大脑加上一笔丰厚的遗产足以让你做出浪漫的选择。如果你没有那么还是现实一点比较好,意欲带来的痛苦总是自己心甘情愿忍受的。

实事求是的做出自己的选择,无论是在宝马车里哭,还是在自行车上笑都应该是无怨无悔的。

1 Comment » | Tags: | Categories: Thinking, 我的声音
国进民退

[这里是一块墓碑,因为这里的一句话,网站被维护了。默哀...]

最近国内比较热闹的话题是“国进民退”,虽然种种迹象表明国家并没有“国进民退”的指导方针,但并妨碍我们去分析以下这种话题的后面是什么。

对于党和国家,咱无法作任何评论,那来看看我所在的IT行业的相似者。

同样众所周知的是Microsoft是一个桌面操作系统的垄断者。我们将历史的镜头移到Windows早期的时代,那时桌面平台是百花齐放,尤其是开发环境。有《Borland传奇》中提到的C++之战,有John carmark英雄般领导的OpenGL和DirectX的3D图形之战,Sun公司出奇招的Java登录桌面之战。

如今,再来看看Windows这个昔日的战场,凭借微软自身的平台优势,现在只有微软第一,其他的都是微型软件供应商,用Joel的话说就是微软不屑的那些剩下来的软件开发商。

只要你选择了微软的操作系统,那么开发工具是微软的,开发语言是微软的,办公软件是微软的,数据库是微软的,web服务器是微软的,甚至开发方式、思维模式也都是微软的。

即使有一天你在微软的地盘悄悄的成长,一旦被微软看中,对不起,你被吸入微软了。搭上一个垄断者的贼船,后果只有一个,牺牲自己来为这个垄断的机器提供能量!

微软作为垄断者需要不断的吸收更多的能量来维持自身的发展,上了路就由不得自己,即使在互联网时代微软想再续往日的辉煌也无法摆脱垄断者的本性像黑洞般的自我吞噬。

EOF

2 Comments » | Tags:, | Categories: Thinking, 我的声音
只言片语

智慧是由内而外的。

如果你说不好,写不好,那是你肚子里没货。

写作,有话要说的时候就写出来了。如果你是为了其他的目的而写作,只能是将垃圾塞进纸里。

不能直言他人的缺点,尤其是平庸之辈,因为你伤了他的自尊心,他会像疯狗一样咬你,如果是有智慧的却会因此而感激你。

学习是学出来的,不是教的。当然有一个好的教导者则会让你学的更好。

这个世界是彩色的,不是非对即错的。

童话、小说都是虚假的,在没有认清真实的世界之前,不要去接触它们。

难道我们就不能为梦想而做点什么吗?

No Comments » | Tags: | Categories: Thinking, 我的声音
上海动物园游记

其实我并不喜欢去动物园,因为看到那些关在笼子里的动物就看到了关在cubicle中的自己,在狭小的空间中无助、孤独的存在着。

虽然不怎么喜欢去动物园,为了让孩子看到真实的动物,还是有必要偶尔去看看的。就像虽然不喜欢上班但是为了讨生活也要偶尔出卖劳力一样。

动物园里的动物们,我在野外没有接触过,也没有机会去野外,但是看到动物园里到处散落的麻雀好像也比那些笼中之物自在。虽然仅仅是一块玻璃、或者一些铁丝相隔,两边的世界却如此的大不相同。

动物园里的动物也许可悲,可是在cubicle的人是不是更可悲呢?动物一旦进入动物园,除了老死再无出笼之日,而人却可以自由的选择,即使有人强留你,现在的劳动法也能在一个月后还你自由之身。有选择的人啊,行动吧,笼子外的天地更广阔!

话又说回来,不是所有的动物都适合去野外的,尤其是那些习惯了在动物园内的生活,弱不禁风的家伙。 是你吗?

No Comments » | Tags:, | Categories: Thinking, 我的声音, 泰然游记
博客改版记

我一直想拥有一个简洁的博客主题,因为我始终坚信简单就是美。在更换这个主题之前使用的是从WordPress下载的whitebox主题,选用WhiteBox主题的主要原因也是在于它的简单,虽然离我的要求还有点距离,不过也算是不错的了。

作为一个在互联网上公开的博客,主要目的就是写自己想说的话给别人看,当然有时仅仅是为了给自己看。无论如何,”看”,是博客对外的主要功能(对内的功能是写)。那么主题样式首先就应该为这个“看”所服务。让看客更方便、更舒服的去关注内容,而不是用脸上那一层厚厚的遮羞粉来刺激看客的视觉神经。

从WordPress的网站上没找到一个比WhiteBox更符合要求的主题了,既然没有现成的,那就自己动手做,合适的东西总是定制的。

在构思了几个草图之后就开始动手了,因为没有美工方面的技能无法从自上而下的实现构思,于是自下而上的用记事本来一转一瓦的堆切成了我的选择。自下而上的推进实在痛苦,在痛苦的间隙我在w3c的网站上找到了理想的样式。http://www.w3.org/html/

主题的样式找到了,可是这也不能直接就用。在对照着其他主题的源码,开始了自己开发WordPress主题之路。

WordPress主题的开发还是比较容易的,去实现几个特定的文件就可以有自己的主题了。

经过一天多的学习+修补,总算可以投入使用了。做软件产品是一个渐进的过程,第一版上线之后还是有很大的改进空间以及也会有不少隐藏角落的Bug。随着时间的推进,慢慢的来优化这个主题吧。

在测试新样式的时候,IE浏览器总是给你刺激,明明按照标准来写的代码到了IE这里却变了样。一个网友说IE的容错性最好,一想到这个我就对着垃圾桶吐了口浓痰。

IE在容错方面的表现其实是用自己的财力制造壁垒,当大家都遵守标准开发的时候,IE没有什么优势。但是互联网的网站并不都是遵守标准开发的,有些人图省事自作聪明的把代码写的像狗屎一样,而且这样的人还不少。于是IE给这些写狗屎代码的人擦屁股,借此博得他们的好感,毕竟让他们可以更懒,更不负责人的写代码。此时MS的财力优势显示出来了,他可以雇佣大量的测试人员来发现不符合标准的写法,然后在现有的基础上强行的去兼容。就这样,大家看到了今天的IE,已经肥的拽不动了,而且还不好重写。

鉴于IE如此低劣的表现,以及垄断的事实,本博客也就勉强的兼容它了。博客主题的样式以Firefox和Chrome测试为主,除非有什么明显的IE上的失常表现,我才去修理它。所以这里推荐你使用Firefox 或者 Chrome 来浏览本博客。

声明:除了得到使用时的快感以外,本人没有得到任何其他来自Firefox或者Chrome的好处。

1 Comment » | Tags:,,,, | Categories: Technology, Thinking, 我的声音
瞧,搭讪犯

搭讪犯本质上和露阴癖没什么两样,都是在寻求一种和平常不一般的刺激体验。

在开始搭讪之前,内心里做着痛苦的挣扎,总是担心万一失败了怎么办。呼吸急促,心跳加速,终于鼓起勇气走到对方面前开口说声:”Hi”。就像在门口莽撞之后终于插了进来。此时若遇到对方的迎合,就像真的在做爱一样。言语中不断的变换着话题,在寻找机会,给对方留下好感。当对方表示愿意继续交往,并留下联系方式后随之而来的就是久违的高潮。

没有做不完的爱,搭讪也会结束,对于搭讪结果的满意程度影响着后面的心情,有高潮带来的余温会持续很久,也有会因为兴奋过后没有得到高潮的愤愤之情。

随着时间的流逝,即使再美妙的高潮久了以后也不会像刚结束时那样的耐人寻味。再次搭讪的动力又来了。

搭讪犯的这种行为有时也会带来副作用,一次成功的搭讪也许会成就美满而短暂的姻缘,同时也可能会让人上瘾,如吸毒一样。

上面所说的是目的性并不是很强的搭讪犯,另外还有一种职业的搭讪犯,就是大家很排斥的那种推销的家伙,一些人开始被搭讪时也如同搭讪者一样觉得刺激,可是正当激情时推销员的那种目的性裸露出来就像绿头苍蝇飞到嘴里一样恶心,里面还有屎!

1 Comment » | Tags: | Categories: Thinking, 我的声音
Windows Live Admin Center

在今天的经济危机中,微软能给我们带来什么省钱的方案呢?对于中小企业来说,微软的Windows Live Admin Center ( Windows Live 管理中心)绝对是个好东西!我给他五颗星的评价!

Windows Live 管理中心 是个什么东西呢?
简单来说就是让微软的Hotmail来为你的域名提供免费的电子邮件托管服务。(也就是企业邮局啦)

如今的电子商务时代,如果公司的名片上印的电子邮箱地址是(@163.com, @126.com, @yahoo.com.cn)都有点不好意思拿出去,于是开始上马企业邮局。企业邮局如果自己维护,除了价格不菲外(硬件,软件,托管费),还有很多技术上的问题要处理。这样的话还要加个人来负责维护等等,反正开销不少。如果直接购买别人的企业邮局,可总觉得不太放心,毕竟现在国内过硬的企业邮局提供商还是很少的。

Windows Live 管理中心的前身是 Custom Domains。这个服务其实已经推出了有很长一段时间了。只是之前收发邮件总要登录到hotmail网站上,很不方便。现在配合 Live Mail 就可以直接在客户端访问,这样显得更专业了。:)

下面简单的介绍下,如何使用 Live Mail + Windows Live Admin Center 来创建自己的企业邮局

要求,用户要有自己的国际域名和一个Windows Live ID(能登陆hotmail的帐号)。

进入到 Windows Live 管理中心 http://domains.live.com/?mkt=zh-cn 并使用自己的 Windows Live ID 登录,然后按照提示一步步做。
其中 增加 DNS 记录类型: MX 需要在你的域名管理界面操作。在域名管理界面中叫 邮件交换记录 (MX)

在使用Live Mail收发邮件之前,需要注意的是。由于当前使用的自己域名为后缀的邮箱如@tairan.net 那么增加帐号时并不能自动的为你选择Hotmail。你可以先把自己的邮箱后缀修改成 @hotmail.com,注册完帐号后,在修改回来,然后就可以使用 Live Mail 收发自己域名的邮件了。或者在注册时选择HTTP协议的邮箱,在服务器地址一栏填上 http://mail.services.live.com/DeltaSync_v2.0.0/sync.aspx 也可以达到相同的目的。

现在去享受难得微软提供的免费的好服务吧!如果在使用过程中有什么疑问,记得留言哦!

No Comments » | Tags:,, | Categories: Technology, Thinking, 我的声音
The IDE is good or evil?

从Java世界的eclipse,netbeans到.NET世界的Visual Studio(VSTS), IDE的很多强大的功能为我们的开发带来了不少的便利,但有时候IDE也给我们带来了很多的烦恼,比如当没有IDE支持的时候,有些人竟然会写不出代码。这到底是IDE好还是坏?

首先可以肯定的一点是 IDE 是用来提高工作效率的。但他不能代替你去思考。所以在使用IDE这些便利的功能时,需要对IDE有一定的认识。

比如
IDE 是通过什么方式来帮我们管理源代码,以及如何知道我们的编译顺序的。
IDE 是根据什么方式来进行智能提示的?
为什么IDE可以协助我们进行debug?

现在IDE的智能提示很强大,而我们在使用智能提示之前是不是先要清楚每个对象是干什么的?对象里面的方法属性是干嘛的?

如果离开了智能提示,就不知道该怎么写代码,那么即使写出的代码也靠不住。

在学习阶段还是多用文本编辑器(VIM, Notepad++)来写代码,当把程序的各个生命周期(编码,编译,链接,运行等)搞清楚,把所用的语言的各个特性,以及使用相关类库的功能搞清楚再用IDE来帮助你在生产开发时节省体力。

No Comments » | Tags:, | Categories: Technology, Thinking, 我的声音
Don’t up-to-date

不要最新的!

貌似很多程序员都喜欢尝新,不停的追赶这语言那技术。此时之前,我也是其中的一份子,而且还比较狂热。这几天遇到的一些事情让我懂得,最新的不一定是最合适的。

说说是什么事情让我停止狂热的追赶最新的东西吧:
现在Python 3.0 已经发布一段时间了,并且大叔告诉我们现在还有很多周边软件没有跟上,所以除非是新项目,还是保守点选择2.6 比较合适。于是乎,就选择2.6.1吧
谁知 安装 trac 以及相关软件的时候,有个装不上,>_< 因为忘记记录存档想不起是哪个软件了,真对不起自己和大家!

再说说Apache吧,一直都选择2.2.x来玩,搭建SVN服务器等。CollabNet 做的集成包真的很好用,安装也简单!可用这个Apache2.2 安装 MOD_SCGI 却死活启动不了服务,从Google的结果来看,虽然有人提出自己编译MOD_SCGI for Apache 2.2,可也是意淫了一下说:“应该很容易”,– 谁不知道在Windows 上玩这些成本有多高!
无奈退而求其次,有换了个Apache2.0.x用用。

盲目的求新会走很多弯路不过也能获得一些经验! 兰迪教授说:当得不到想得到的东西时,就得到了经验。

虽说不要最新的,也没说一直守旧不前进,使用开源软件时最好用当前版本的前一个次版本最佳。 一来是软件经过了一段时间的考验,二是周边的软件也都跟上了。不至于走两步退一步。

===========================
Trac + Apache + SCGI 的安装方法比较容易,性能稳定方面自己倒是没有测试过。主要参考了这篇文章 Subversion无痛起步 — Trac 0.10b1 + Apache 2

No Comments » | Tags:,,, | Categories: Technology, Thinking, 我的声音


我的豆瓣

二维码快速链接
QR Code fuer diese Seite