<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>kabbesy</title>
    <description></description>
    <link>http://kabbesy.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Re: 客户协作 OVER 合同谈判</title>
        <author>kabbesy</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kabbesy.javaeye.com">kabbesy</a>&nbsp;
          链接：<a href="http://kabbesy.javaeye.com/blog/105513" style="color:red;">http://kabbesy.javaeye.com/blog/105513</a>&nbsp;
          发表时间: 2007年07月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <font face="Arial">
<p><font face="Arial">软件合同也是合同，按计价方式分类，有：固定总价合同，成本加酬金合同，单价合同，计量估价合同。冰云原文主要提到的是1、3。其中&ldquo;改良的单价合同&rdquo;看描述，应该还是固定总价。只不过固定的人性化一些，双方合作更亲密些。</font></p>
<p><font face="Arial">固定总价合同作为最常见的计价方式，是有其合理性的：风险可控，投入可预期。<br />
成本加酬金合同很不错，但人为因素太高。在中国，人们还只习惯于对产品定价；还不习惯对满意程度的酬金进行定价。<br />
单价合同非常敏捷，短周期交付，甚至于短周期支付。但这对甲方要求实在太高了，如何有效对各个功能定价并且拿出大把时间来跟着一起敏捷，相信是大部分甲方信息部门做不到的。<br />
计量估价合同是固定总价合同中的一个改良，它将依据更多的细节目标，对总价进行一个相对精确的预估。相对于那些拍脑袋拍出来或者打单子砍出来的固定总价合同，计量估价貌似先进不少。</font></p>
<p><font face="Arial">但问题是：我认为，<strong>计价方式并不是这个问题的关键</strong>。</font></p>
<p><font face="Arial">企业选择控制风险，而不选择追求敏捷带来的利益最大化，是存在其合理性的。对于大部分企业而言，信息化系统本身只是一个支撑系统，而非生产系统。它的收益也多体现在自动计算能力带来的成本降低上，如典型的OA和MIS。这样&ldquo;只有投入没有产出&rdquo;的东西，除非有着很好的先期咨询，否则万难将甲方对项目的重视程度提高。企业作为经营实体，最需要的是投资100万，收益200万；而不是投资100万做个系统，再抽调200个员工参加一周的培训，最后在5年内可以给企业节省30万纸张费用，并且将工作效率从现在提高到XX，从而造成300万的潜在盈利。除非XX的提升太明显，否则核算收益率时，5年内员工工作效率的提升，多半摊销不到OA系统上面来。</font></p>
<p><font face="Arial">要解决合同计价方式，关键还是在咨询阶段让甲方提高对IT项目的重视程度。只有真正重视了，才有机会让客户也敏捷起来。这时候，想选什么计价方式，都好办了。<br />
</font></p>
</font>
          <br/>
          <span style="color:red;">
            <a href="http://kabbesy.javaeye.com/blog/105513#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 26 Jul 2007 00:49:26 +0800</pubDate>
        <link>http://kabbesy.javaeye.com/blog/105513</link>
        <guid>http://kabbesy.javaeye.com/blog/105513</guid>
      </item>
      <item>
        <title>declarative-caching</title>
        <author>kabbesy</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kabbesy.javaeye.com">kabbesy</a>&nbsp;
          链接：<a href="http://kabbesy.javaeye.com/blog/35232" style="color:red;">http://kabbesy.javaeye.com/blog/35232</a>&nbsp;
          发表时间: 2006年11月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          其实，声明式缓存服务，也就是利用AOP对方法拦截，然后根据参数等等组成key，控制函数返回值，原理上很简单，但是奇怪的是这里很少有人提及。<br /><br />google上最多的就是这篇直接关于spring的<br />http://dev2dev.bea.com/pub/a/2006/05/declarative-caching.html<br />其中使用的就是出自springmodules-cache模块的服务（最新是0.6了）<br />https://springmodules.dev.java.net/<br /><br />搜了搜老帖子，除了buaawhl在一篇cache相关缓存规划的帖子里提到外，就没有别的了。周末折腾了一下，发现了一些不理解的地方：<br /><br />对于声明式缓存服务，主要体现在cache(key,model)（也就是put & get）和flush(<span style="color: red">model</span>)上面，而对于几乎所有编程式缓存框架都提供的remove(key,model)却没有支持。<br />这样子的策略，如果要让某个缓存对象失效，居然必须要flush整个缓存（或者说某个key name下的），将直接导致缓存失效频度很高，命中率下降比较多。springmodules自己的论坛和issue也有关于这个内容。<br />http://forum.springframework.org/showthread.php?t=25163&highlight=cache<br /><br />http://opensource.atlassian.com/projects/spring/browse/MOD-165<br /><br />由于springmodules还处于0.6阶段，我又尝试着找了一下其它的declarative-caching实现。<br />如ibatis的sqlmap中，可以通过配置对statement进行缓存，但一旦flush也是整个statement相关缓存全部清空，而不是对某个key进行remove。<br /><br />网上还有一个个人项目，忘记从哪里搜到的了，也是这个样子，略过不说了。<br /><br /><br /><br />现在的问题是：<br />为什么AOP出现这么久，从最开始cache就作为AOP的一个应用亮点被提出，而反反复复好些年过去，却一直没有一个成型的解决方案？（甚至于jdon都因此被批的……）<br />为什么现有的几个声明式缓存服务，都是在缓存失效这一点上纠缠不清？
          <br/>
          <span style="color:red;">
            <a href="http://kabbesy.javaeye.com/blog/35232#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 20 Nov 2006 17:41:41 +0800</pubDate>
        <link>http://kabbesy.javaeye.com/blog/35232</link>
        <guid>http://kabbesy.javaeye.com/blog/35232</guid>
      </item>
  </channel>
</rss>