水清则无鱼--走出软件作坊:三五个人十来条枪 如何成为开发正规军(八)
[
2008/08/27 14:13 | by Else ]
2008/08/27 14:13 | by Else ]
我的朋友开了家屁小公司,纯粹的三五个人十来条枪。每年还不死,但活的也很辛苦。平时做的也就是两三万的单子,运气好能做8-10万的单子。那天,突然给我打了电话,说要请我吃饭。
饭肯定是不能白吃的。朋友告诉我:唉,烦心啊。客户不成熟,是麻烦事。客户太成熟,也是个麻烦事。
我说,此话怎讲?
我朋友说:你看,我过去跟单,客户对软件不懂,但他却知道有个华军软件园,里面有可以免费下载的管理软件。我报个两万的价格
饭肯定是不能白吃的。朋友告诉我:唉,烦心啊。客户不成熟,是麻烦事。客户太成熟,也是个麻烦事。
我说,此话怎讲?
我朋友说:你看,我过去跟单,客户对软件不懂,但他却知道有个华军软件园,里面有可以免费下载的管理软件。我报个两万的价格
客服顾问的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(六)
[
2008/08/27 14:11 | by Else ]
2008/08/27 14:11 | by Else ]
这段时间,写完了项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三) 、实施经理的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(五)。于是想一气呵成,干脆把客服支持的工具箱也一便写完得了。从此,开发、实施、支持三大部门,都有各自的七种武器。
我们一开始客服人员的武器只有电话。但是电话却有以下几个问题:
1一般客户打来的电话疑问,都不是一句话能说清与搞定的。所以,客服人员需要问客户不少问题,以确诊客户到底问题出在哪里了。而客户也不能马上回答客服人员提出的诊断:如,你看看某个目录下的文件是什么时间的,你看看数据库某个表的主键在不在?这些问题都需要客户不断来回看,有时候技术水平低的客户都找不到客服人员说的那个配置项,有时候抽查,一个电话打了1个多小时。客户也累,问题也说不清,客服人员也累。虽然是戴着耳麦(如果是普通电话,我们能想象的出这个客服人员的形象:脖子歪着,夹着电话,一手敲键盘,一手拿鼠标),但是累啊。打完了电话,客服人员大呼耳膜都疼。
我们一开始客服人员的武器只有电话。但是电话却有以下几个问题:
1一般客户打来的电话疑问,都不是一句话能说清与搞定的。所以,客服人员需要问客户不少问题,以确诊客户到底问题出在哪里了。而客户也不能马上回答客服人员提出的诊断:如,你看看某个目录下的文件是什么时间的,你看看数据库某个表的主键在不在?这些问题都需要客户不断来回看,有时候技术水平低的客户都找不到客服人员说的那个配置项,有时候抽查,一个电话打了1个多小时。客户也累,问题也说不清,客服人员也累。虽然是戴着耳麦(如果是普通电话,我们能想象的出这个客服人员的形象:脖子歪着,夹着电话,一手敲键盘,一手拿鼠标),但是累啊。打完了电话,客服人员大呼耳膜都疼。
实施经理的工具箱--走出软件作坊:三五个人十来条枪 如何成为开发正规军(五)
[
2008/08/27 14:10 | by Else ]
2008/08/27 14:10 | by Else ]
前段时间, 项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三) 写完后,发现写的有些偏,偏向了开发经理,而没有顾及项目实施经理。在项目实施的时候,有些独特的地方,需要有独特的工具来帮助。
前天晚上,和一位做了多年实施项目带领的朋友吃饭。
我笑着跟他说:实施,能不能不实施?!不去人,也不搞实施,把软件卖了就OK,你们做好IT咨询就可以,把什么数据准备、培训、协调业务部门和信息科需求、推动上线、报表制作都让客户做。咱也不赚他的实施费用。因为你们是个合伙成立的小公司,你们如果也是从开发到定制化到实施到支持,你们根本没有那么多人,项目周期又这么长,销售价格竞争又如此激烈,你们赚不了几个钱。实施尤其是最耗成本的,你们好不容易拿到的单,实施完剩不了多少,所以你们这么多年公司也没有大发展,不断在年年求生存。
前天晚上,和一位做了多年实施项目带领的朋友吃饭。
我笑着跟他说:实施,能不能不实施?!不去人,也不搞实施,把软件卖了就OK,你们做好IT咨询就可以,把什么数据准备、培训、协调业务部门和信息科需求、推动上线、报表制作都让客户做。咱也不赚他的实施费用。因为你们是个合伙成立的小公司,你们如果也是从开发到定制化到实施到支持,你们根本没有那么多人,项目周期又这么长,销售价格竞争又如此激烈,你们赚不了几个钱。实施尤其是最耗成本的,你们好不容易拿到的单,实施完剩不了多少,所以你们这么多年公司也没有大发展,不断在年年求生存。
人,是人,真的是人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(四)
[
2008/08/27 14:07 | by Else ]
2008/08/27 14:07 | by Else ]
写了《三五个人十来条枪 如何走出软件作坊成为开发正规军》(一)、(二)、(三)后,每篇都点击上万跟贴评论无数。
有网友评论我之前的几篇博文:分析的不错,方案似乎也很能解决问题!不过必须满足一个潜条件:一定要找到非常合适人。现实中,就连最基本的程序员,找个合格的也不容易(聪明伶俐的养不住、经验丰富的养不起、迟钝呆傻的没法要、碰上心术不正的还够你喝一水壶的)
还有网友评论:楼主所说的很多方法,都是假设了客户还不错、对项目的重视程度、习惯于正规化的程度都还过得去,而楼上有些朋友的质疑则是指出这些资源不一定满足的情况;
但是跟贴最多的评论就是:现实问题描述的很精确,但解决方案不现实,太理想化,老板根本不可能给你人。如果真的发慈悲心,也是给你一个新人让你哭死。你想主导项目,省省吧,死了你的心吧,一切都是老板说了算。而且,你敢和客户说个不字,看来你是不想要你的饭碗了。还是乖乖敲好你的代码,多干活,多跟客户搞好关系。高手做啥都是高手,低能再培养再有方法管理他也是低能。你这样研究,只能吃饱饭瞎想瞎扯蛋,有你这工夫,早就把项目做好了。
种种评论来看,一切的根源都是人,是人。大家都觉得我的方法要想实施,必须老板支持,员工也是高素质的,客户也是高素质的。而三者要想凑到一起具备,根本不可能。所以我的方法算是理想的痴人说梦。
有网友评论我之前的几篇博文:分析的不错,方案似乎也很能解决问题!不过必须满足一个潜条件:一定要找到非常合适人。现实中,就连最基本的程序员,找个合格的也不容易(聪明伶俐的养不住、经验丰富的养不起、迟钝呆傻的没法要、碰上心术不正的还够你喝一水壶的)
还有网友评论:楼主所说的很多方法,都是假设了客户还不错、对项目的重视程度、习惯于正规化的程度都还过得去,而楼上有些朋友的质疑则是指出这些资源不一定满足的情况;
但是跟贴最多的评论就是:现实问题描述的很精确,但解决方案不现实,太理想化,老板根本不可能给你人。如果真的发慈悲心,也是给你一个新人让你哭死。你想主导项目,省省吧,死了你的心吧,一切都是老板说了算。而且,你敢和客户说个不字,看来你是不想要你的饭碗了。还是乖乖敲好你的代码,多干活,多跟客户搞好关系。高手做啥都是高手,低能再培养再有方法管理他也是低能。你这样研究,只能吃饱饭瞎想瞎扯蛋,有你这工夫,早就把项目做好了。
种种评论来看,一切的根源都是人,是人。大家都觉得我的方法要想实施,必须老板支持,员工也是高素质的,客户也是高素质的。而三者要想凑到一起具备,根本不可能。所以我的方法算是理想的痴人说梦。
项目经理的工具箱---走出软件作坊:三五个人十来条枪 如何成为开发正规军(三)
[
2008/08/27 14:01 | by Else ]
2008/08/27 14:01 | by Else ]
自从写了关于《三五个人十来条枪 如何走出软件作坊成为开发正规军》走出软件作坊:三五个人十来条枪 如何成为开发正规军(二),系列文章后,收到了很多网友的评论,也收到了很多网友的疑问请教。而大部分人都已经当上了项目经理,手下有个2-3个人或5-6个人。少部分人还在上学或者才毕业出来1-2年,询问的还是学什么语言和什么才是核心技术的之类问题。
从接到的请教来看,许多中国国内软件公司都是以项目为主,有单做单,没单就干靠,靠的时间长了老板心毛了就裁人,来活了就招人,就这样反反复复。所以,大量的公司没有开发部(因为除了销售,开发部从开发到实施到支持都全做),当然也没有开发部经理,只有项目经理。更不用提技术总监和CTO。即使有个技术总监的头衔,也是为了给客户的名片,而手下也就5-6个人,项目一来,技术总监也需要编码和实施,其实就是一个项目经理。
从接到的请教来看,许多中国国内软件公司都是以项目为主,有单做单,没单就干靠,靠的时间长了老板心毛了就裁人,来活了就招人,就这样反反复复。所以,大量的公司没有开发部(因为除了销售,开发部从开发到实施到支持都全做),当然也没有开发部经理,只有项目经理。更不用提技术总监和CTO。即使有个技术总监的头衔,也是为了给客户的名片,而手下也就5-6个人,项目一来,技术总监也需要编码和实施,其实就是一个项目经理。
走出软件作坊:三五个人十来条枪 如何成为开发正规军(二)
[
2008/08/27 13:49 | by Else ]
2008/08/27 13:49 | by Else ]
我的一个朋友也看到了我的博文,他是做某个行业企业管理软件的。他说:你这个方法,在我从事的行业不适用。
我对他从事的那个信息化的行业还是有一定了解的。
他们的实施模式是:
1一个实施项目,大约50万的签单额,做完验收后给最后的20%-30%的尾款。
2他们是一家小公司,为了多做项目多赚钱(企业都希望利润保持的很高,如果毛利低,做软件就不合适了,受的苦和压力和不规律性比其他行业多的多),所以一个项目只派一个人去,而这个人需要培训、辅助导入旧系统数据、清洗合并数据、规范化数据、报表制作、需求协调、推动切换上线、现场运行监控、个性化定制修改代码。
我对他从事的那个信息化的行业还是有一定了解的。
他们的实施模式是:
1一个实施项目,大约50万的签单额,做完验收后给最后的20%-30%的尾款。
2他们是一家小公司,为了多做项目多赚钱(企业都希望利润保持的很高,如果毛利低,做软件就不合适了,受的苦和压力和不规律性比其他行业多的多),所以一个项目只派一个人去,而这个人需要培训、辅助导入旧系统数据、清洗合并数据、规范化数据、报表制作、需求协调、推动切换上线、现场运行监控、个性化定制修改代码。
技术总监和CTO的区别 浅谈CTO的作用----软件公司如何开源节流(一)
[
2008/08/27 13:38 | by Else ]
2008/08/27 13:38 | by Else ]
我一直在思考软件公司如何开源节流。
当然,老板也在思考开源节流。
当然,老板思考的开源节流在公司运营层面上,而我作为CTO,我考虑的则是在产品运营角度上来思考这个问题。否则,一个软件公司,它的生存与发展就是靠软件产品,除此之外没有别的收入来源,那么作为负责产品的人再觉得没有责任思考这个关乎公司盈利与发展的问题,那么要把这个问题甩给天天忙销售忙资金忙公司管理的老板么?那要你这个CTO干吗?难道就是为了让你当个工头管住一帮人么?
有的公司光有技术总监,没有CTO。技术了得,但和公司战略发展不贴身,光有技术发挥不了,公司的业务发展也沾不上他的技术的光。原因就是技术总监在思考产品,却没有思考产品和公司战略发展的结合。
而且,一个产品要想成功,销售能支撑和发展一个公司,是很难的。不是你做出一个产品就能成功。而且产品也不是一个独立的东西,它的成功要关联许多人。
当然,老板也在思考开源节流。
当然,老板思考的开源节流在公司运营层面上,而我作为CTO,我考虑的则是在产品运营角度上来思考这个问题。否则,一个软件公司,它的生存与发展就是靠软件产品,除此之外没有别的收入来源,那么作为负责产品的人再觉得没有责任思考这个关乎公司盈利与发展的问题,那么要把这个问题甩给天天忙销售忙资金忙公司管理的老板么?那要你这个CTO干吗?难道就是为了让你当个工头管住一帮人么?
有的公司光有技术总监,没有CTO。技术了得,但和公司战略发展不贴身,光有技术发挥不了,公司的业务发展也沾不上他的技术的光。原因就是技术总监在思考产品,却没有思考产品和公司战略发展的结合。
而且,一个产品要想成功,销售能支撑和发展一个公司,是很难的。不是你做出一个产品就能成功。而且产品也不是一个独立的东西,它的成功要关联许多人。
不使用代码生成器是对自己和公司的欺骗
[
2008/08/27 09:46 | by Else ]
2008/08/27 09:46 | by Else ]
原文地址:
1:代码生成器万能论。
在当前的软件技术水平上,代码生成器确实能替代很大一部分手工的编码工作,但代码生成器现在基本还处在代码级别,还没有上升到领域级别。只有生成器上升到领域级别,才能基本告别手工编码。在现在所处在的代码级别上,还是有不少的代码需要手工去编写。事实上,一些有实力的大公司已经开始了这方面的工作,比较SAP,用户基本不用编码就能生成一个自己所需要的ERP系统,微软所做的CRM,WorkFlow也上升到了领域级别。可有人就认为代码生成器不能全部达到自己的目的而拒绝使用,实际上这是一种误解。世界上可以说没有100%完全自己满意的东西,当我们还是需要去使用它。这里面对有一个适应,调整的过程。代码生成器也是如此。
2:现在的代码生成器由于质量问题,生成的代码不能满足我的需要,或者需要我修改的地方太多,没有很好的考虑变化和维护。
我们承认,现在的代码生成器的整体生成水平不高,代码生成器种类繁多,真正优秀的产品不多,这是影响代码生成器实际使用的一个重要原因。但我信息,会有更多优秀的代码生成器出现。这个问题的答案是应该选用和编写能满足自己实际需要的代码生成器,使用代码生成器是不是真正的提供了工作效率,提高了软件的质量。
1:代码生成器万能论。
在当前的软件技术水平上,代码生成器确实能替代很大一部分手工的编码工作,但代码生成器现在基本还处在代码级别,还没有上升到领域级别。只有生成器上升到领域级别,才能基本告别手工编码。在现在所处在的代码级别上,还是有不少的代码需要手工去编写。事实上,一些有实力的大公司已经开始了这方面的工作,比较SAP,用户基本不用编码就能生成一个自己所需要的ERP系统,微软所做的CRM,WorkFlow也上升到了领域级别。可有人就认为代码生成器不能全部达到自己的目的而拒绝使用,实际上这是一种误解。世界上可以说没有100%完全自己满意的东西,当我们还是需要去使用它。这里面对有一个适应,调整的过程。代码生成器也是如此。
2:现在的代码生成器由于质量问题,生成的代码不能满足我的需要,或者需要我修改的地方太多,没有很好的考虑变化和维护。
我们承认,现在的代码生成器的整体生成水平不高,代码生成器种类繁多,真正优秀的产品不多,这是影响代码生成器实际使用的一个重要原因。但我信息,会有更多优秀的代码生成器出现。这个问题的答案是应该选用和编写能满足自己实际需要的代码生成器,使用代码生成器是不是真正的提供了工作效率,提高了软件的质量。
Appendix D. Default style sheet for HTML 4
[
2008/08/25 17:40 | by Else ]
2008/08/25 17:40 | by Else ]
This appendix is informative, not normative.
This style sheet describes the typical formatting of all HTML 4 ([HTML4]) elements based on extensive research into current UA practice. Developers are encouraged to use it as a default style sheet in their implementations.
The full presentation of some HTML elements cannot be expressed in CSS 2.1, including replaced elements ("img", "object"), scripting elements ("script", "applet"), form control elements, and frame elements.
For other elements, the legacy presentation can be described in CSS but the solution removes the element. For example, the FONT element can be replaced by attaching CSS declarations to other elements (e.g., DIV). Likewise, legacy presentation of presentational attributes (e.g., the "border" attribute on TABLE) can be described in CSS, but the markup in the source document must be changed.
This style sheet describes the typical formatting of all HTML 4 ([HTML4]) elements based on extensive research into current UA practice. Developers are encouraged to use it as a default style sheet in their implementations.
The full presentation of some HTML elements cannot be expressed in CSS 2.1, including replaced elements ("img", "object"), scripting elements ("script", "applet"), form control elements, and frame elements.
For other elements, the legacy presentation can be described in CSS but the solution removes the element. For example, the FONT element can be replaced by attaching CSS declarations to other elements (e.g., DIV). Likewise, legacy presentation of presentational attributes (e.g., the "border" attribute on TABLE) can be described in CSS, but the markup in the source document must be changed.
dw cs4 改进了flash的链接代码
[
2008/08/25 16:02 | by Else ]
2008/08/25 16:02 | by Else ]
现在的代码
<script src="../../Scripts/swffix_modified.js" type="text/javascript"></script>
<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="177" height="91">
<param name="movie" value="images/logo.swf" />
<!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="images/logo.swf" width="177" height="91">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="swfversion" value="8.0.35.0" />
<!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don’t want users to see the prompt. -->
<param name="expressinstall" value="../../Scripts/expressInstall.swf" />
<!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
<div>
<h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
<object id="FlashID" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="177" height="91">
<param name="movie" value="images/logo.swf" />
<!-- Next object tag is for non-IE browsers. So hide it from IE using IECC. -->
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="images/logo.swf" width="177" height="91">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="opaque" />
<param name="swfversion" value="8.0.35.0" />
<!-- This param tag prompts users with Flash Player 6.0 r65 and higher to download the latest version of Flash Player. Delete it if you don’t want users to see the prompt. -->
<param name="expressinstall" value="../../Scripts/expressInstall.swf" />
<!-- The browser displays the following alternative content for users with Flash Player 6.0 and older. -->
<div>
<h4>Content on this page requires a newer version of Adobe Flash Player.</h4>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>













